Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package frizbee for openSUSE:Factory checked in at 2026-01-30 18:29:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/frizbee (Old) and /work/SRC/openSUSE:Factory/.frizbee.new.1995 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "frizbee" Fri Jan 30 18:29:46 2026 rev:4 rq:1330024 version:0.1.8 Changes: -------- --- /work/SRC/openSUSE:Factory/frizbee/frizbee.changes 2025-06-03 17:52:32.427119514 +0200 +++ /work/SRC/openSUSE:Factory/.frizbee.new.1995/frizbee.changes 2026-01-30 18:33:53.582759349 +0100 @@ -1,0 +2,93 @@ +Fri Jan 30 10:20:47 UTC 2026 - Johannes Kastl <[email protected]> + +- Update to version 0.1.8: + * Update goreleaser (#345) + * chore(deps): update sigstore/cosign-installer action to v4 + (#320) + * chore(deps): update golangci/golangci-lint-action action to v9 + (#325) + * chore(deps): update sigstore/cosign-installer action to v3.10.1 + (#319) + * chore(deps): update github/codeql-action digest to b20883b + (#311) + * chore(deps): update anchore/sbom-action action to v0.22.1 + (#307) + * chore(deps): update actions/setup-go digest to 40f1582 (#343) + * chore(deps): update actions/checkout action to v6 (#344) + * Pins go and bumps dependencies (#342) + * chore(deps): update github artifact actions (#321) + * chore(deps): update dependency go to v1.25.2 (#314) + * chore(deps): update github/codeql-action action to v4 (#315) + * chore(deps): bump github.com/moby/buildkit from 0.24.0 to + 0.25.1 (#316) + * chore(deps): update sigstore/cosign-installer action to v3.10.0 + (#306) + * Fix the linter failing (#305) + * Fix tablewriter API compatibility for v1.0.9 dependency upgrade + (#302) + * chore(deps): update golangci/golangci-lint-action action to v8 + (#282) + * chore(deps): update actions/checkout digest to 08eba0b (#287) + * Bump github.com/moby/buildkit from 0.23.2 to 0.24.0 (#299) + * Bump golang.org/x/sync from 0.16.0 to 0.17.0 (#300) + * chore(deps): update aquasecurity/trivy-action action to v0.33.1 + (#301) + * Bump github.com/spf13/cobra from 1.9.1 to 1.10.1 (#296) + * chore(deps): update github/codeql-action digest to d3678e2 + (#289) + * chore(deps): update aquasecurity/trivy-action action to v0.33.0 + (#295) + * chore(deps): update goreleaser/goreleaser-action digest to + e435ccd (#291) + * chore(deps): update anchore/sbom-action action to v0.20.5 + (#292) + * Bump github.com/stretchr/testify from 1.10.0 to 1.11.1 (#294) + * chore(deps): update goreleaser/goreleaser-action action to v6 + (#283) + * chore(deps): update github/codeql-action action to v3 (#281) + * chore(deps): update actions/setup-go action to v5 (#280) + * chore(deps): update actions/checkout action to v4 (#278) + * chore(deps): update actions/download-artifact action to v5 + (#279) + * chore(deps): update slsa-framework/slsa-verifier action to + v2.7.1 (#277) + * chore(deps): update slsa-framework/slsa-github-generator action + to v2.1.0 (#276) + * chore(deps): update actions/setup-go digest to 19bb512 (#264) + * chore(deps): update github/codeql-action digest (#266) + * chore(deps): update golangci/golangci-lint-action digest to + 3a91952 (#267) + * chore(deps): update goreleaser/goreleaser-action digest to + 5742e2a (#268) + * chore(deps): update dependency go to v1.24.6 (#270) + * chore(deps): update actions/checkout digest (#263) + * chore(deps): update coverallsapp/github-action action to v2.3.6 + (#269) + * chore(deps): update actions/download-artifact action to v4.3.0 + (#271) + * chore(deps): update sigstore/cosign-installer action to v3.9.2 + (#275) + * chore(deps): update aquasecurity/trivy-action action to v0.32.0 + (#274) + * chore(deps): update anchore/sbom-action action to v0.20.4 + (#273) + * chore(deps): update actions/upload-artifact action to v4.6.2 + (#272) + * Add renovate.json (#262) + * Bump golang.org/x/sync from 0.14.0 to 0.16.0 (#259) + * fix: strip quotes from uses field (#260) + * Bump github.com/moby/buildkit from 0.22.0 to 0.23.2 (#257) + * Bump github.com/google/go-containerregistry from 0.20.5 to + 0.20.6 (#254) + * Bump github.com/moby/buildkit from 0.21.1 to 0.22.0 (#250) + * Bump github.com/google/go-containerregistry from 0.20.4 to + 0.20.5 (#251) + * Bump github.com/google/go-containerregistry from 0.20.3 to + 0.20.4 (#249) + * Bump golang.org/x/sync from 0.13.0 to 0.14.0 (#244) + * Bump github.com/moby/buildkit from 0.21.0 to 0.21.1 (#243) + * Add SARIF output and upload to Trivy workflow (#241) + * Bump github.com/moby/buildkit from 0.20.2 to 0.21.0 (#240) + * Bump golang.org/x/sync from 0.12.0 to 0.13.0 (#239) + +------------------------------------------------------------------- Old: ---- frizbee-0.1.7.obscpio New: ---- frizbee-0.1.8.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ frizbee.spec ++++++ --- /var/tmp/diff_new_pack.ancSf2/_old 2026-01-30 18:33:54.710806660 +0100 +++ /var/tmp/diff_new_pack.ancSf2/_new 2026-01-30 18:33:54.714806828 +0100 @@ -1,7 +1,7 @@ # # spec file for package frizbee # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,17 +16,15 @@ # -%define __arch_install_post export NO_BRP_STRIP_DEBUG=true - Name: frizbee -Version: 0.1.7 +Version: 0.1.8 Release: 0 Summary: Throw a tag at and it comes back with a checksum License: Apache-2.0 URL: https://github.com/stacklok/frizbee Source: %{name}-%{version}.tar.gz Source1: vendor.tar.gz -BuildRequires: go >= 1.24 +BuildRequires: golang(API) >= 1.25 %description Frizbee is a tool you may throw a tag at and it comes back with a checksum. ++++++ _service ++++++ --- /var/tmp/diff_new_pack.ancSf2/_old 2026-01-30 18:33:54.750808337 +0100 +++ /var/tmp/diff_new_pack.ancSf2/_new 2026-01-30 18:33:54.762808841 +0100 @@ -3,7 +3,7 @@ <param name="url">https://github.com/stacklok/frizbee</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v0.1.7</param> + <param name="revision">v0.1.8</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.ancSf2/_old 2026-01-30 18:33:54.782809680 +0100 +++ /var/tmp/diff_new_pack.ancSf2/_new 2026-01-30 18:33:54.786809848 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/stacklok/frizbee</param> - <param name="changesrevision">ff4166b14b7eaf784b020893476a15a4989ce951</param></service></servicedata> + <param name="changesrevision">b4fa6e325885e635b817c860b427ad937c31ce30</param></service></servicedata> (No newline at EOF) ++++++ frizbee-0.1.7.obscpio -> frizbee-0.1.8.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frizbee-0.1.7/.golangci.yml new/frizbee-0.1.8/.golangci.yml --- old/frizbee-0.1.7/.golangci.yml 2025-03-25 09:54:49.000000000 +0100 +++ new/frizbee-0.1.8/.golangci.yml 2026-01-30 10:33:33.000000000 +0100 @@ -1,52 +1,14 @@ +version: "2" run: issues-exit-code: 1 - timeout: 5m - -linters-settings: - lll: - line-length: 130 - gocyclo: - min-complexity: 15 - gci: - sections: - - standard - - default - - prefix(github.com/stacklok/frizbee) - revive: - # see https://github.com/mgechev/revive#available-rules for details. - ignore-generated-header: true - severity: warning - rules: - - name: blank-imports - severity: warning - - name: context-as-argument - - name: context-keys-type - - name: duplicated-imports - - name: error-naming - # - name: error-strings #BDG: This was enabled for months, but it suddenly started working on 3/2/2022.. come to find out we have TONS of error messages starting with capital... disabling for now(ever?) - - name: error-return - - name: exported - severity: error - - name: if-return - # - name: get-return // BDG: We have a lot of API endpoint handlers named like getFoos but write to response vs return... maybe later can figure that out - - name: identical-branches - - name: indent-error-flow - - name: import-shadowing - - name: package-comments - - name: range-val-in-closure - - name: range-val-address - - name: redefines-builtin-id - - name: struct-tag - - name: unconditional-recursion - - name: unnecessary-stmt - - name: unreachable-code - - name: unused-parameter - - name: unused-receiver - - name: unhandled-error - disabled: true - +output: + formats: + text: + path: stdout + print-linter-name: true + print-issued-lines: true linters: - disable-all: true + default: none enable: - asasalint - asciicheck @@ -62,17 +24,13 @@ - exhaustive - forbidigo - forcetypeassert - - gci - gochecknoglobals - gochecknoinits - gochecksumtype - goconst - gocyclo - - gofmt - goprintffuncname - gosec - - gosimple - - gosimple - govet - importas - inamedparam @@ -88,23 +46,66 @@ - promlinter - revive - staticcheck - - tenv - thelper - tparallel - unparam - unused - usestdlibvars - -issues: - exclude-use-default: false - exclude-rules: - - path: '(.+)_test\.go' - linters: - - lll - -output: - formats: - - format: colored-line-number - print-issued-lines: true - print-linter-name: true - sort-results: true + settings: + gocyclo: + min-complexity: 15 + lll: + line-length: 130 + revive: + severity: warning + rules: + - name: blank-imports + severity: warning + - name: context-as-argument + - name: context-keys-type + - name: duplicated-imports + - name: error-naming + - name: error-return + - name: exported + severity: error + - name: if-return + - name: identical-branches + - name: indent-error-flow + - name: import-shadowing + - name: package-comments + - name: range-val-in-closure + - name: range-val-address + - name: redefines-builtin-id + - name: struct-tag + - name: unconditional-recursion + - name: unnecessary-stmt + - name: unreachable-code + - name: unused-parameter + - name: unused-receiver + - name: unhandled-error + disabled: true + exclusions: + generated: lax + rules: + - linters: + - lll + path: (.+)_test\.go + paths: + - third_party$ + - builtin$ + - examples$ +formatters: + enable: + - gofmt + settings: + gci: + sections: + - standard + - default + - prefix(github.com/stacklok/frizbee) + exclusions: + generated: lax + paths: + - third_party$ + - builtin$ + - examples$ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frizbee-0.1.7/.goreleaser.yaml new/frizbee-0.1.8/.goreleaser.yaml --- old/frizbee-0.1.7/.goreleaser.yaml 2025-03-25 09:54:49.000000000 +0100 +++ new/frizbee-0.1.8/.goreleaser.yaml 2026-01-30 10:33:33.000000000 +0100 @@ -27,11 +27,11 @@ main: ./main.go # This section defines the release format. archives: - - format: tar.gz # we can use binary, but it seems there's an issue where goreleaser skips the sboms + - formats: [tar.gz] # we can use binary, but it seems there's an issue where goreleaser skips the sboms name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}" format_overrides: - goos: windows - format: zip + formats: [zip] # This section defines how to release to winget. # winget: # - name: frizbee @@ -85,10 +85,9 @@ - cmd: cosign args: - "sign-blob" - - "--output-signature=${signature}" - - "--output-certificate=${certificate}" + - "--bundle=${signature}" # cosign v3+: bundles signature and certificate together - "${artifact}" - "--yes" # needed on cosign 2.0.0+ artifacts: archive output: true - certificate: '{{ trimsuffix (trimsuffix .Env.artifact ".zip") ".tar.gz" }}.pem' + signature: "${artifact}.sigstore.json" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frizbee-0.1.7/cmd/actions/list.go new/frizbee-0.1.8/cmd/actions/list.go --- old/frizbee-0.1.7/cmd/actions/list.go 2025-03-25 09:54:49.000000000 +0100 +++ new/frizbee-0.1.8/cmd/actions/list.go 2026-01-30 10:33:33.000000000 +0100 @@ -99,11 +99,15 @@ return nil case "table": table := tablewriter.NewWriter(cmd.OutOrStdout()) - table.SetHeader([]string{"No", "Type", "Name", "Ref"}) + table.Header([]string{"No", "Type", "Name", "Ref"}) for i, a := range res.Entities { - table.Append([]string{strconv.Itoa(i + 1), a.Type, a.Name, a.Ref}) + if err := table.Append([]string{strconv.Itoa(i + 1), a.Type, a.Name, a.Ref}); err != nil { + return fmt.Errorf("failed to append table row: %w", err) + } + } + if err := table.Render(); err != nil { + return fmt.Errorf("failed to render table: %w", err) } - table.Render() return nil default: return fmt.Errorf("unknown output format: %s", output) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frizbee-0.1.7/cmd/image/list.go new/frizbee-0.1.8/cmd/image/list.go --- old/frizbee-0.1.7/cmd/image/list.go 2025-03-25 09:54:49.000000000 +0100 +++ new/frizbee-0.1.8/cmd/image/list.go 2026-01-30 10:33:33.000000000 +0100 @@ -90,11 +90,15 @@ return nil case "table": table := tablewriter.NewWriter(cmd.OutOrStdout()) - table.SetHeader([]string{"No", "Type", "Name", "Ref"}) + table.Header([]string{"No", "Type", "Name", "Ref"}) for i, a := range res.Entities { - table.Append([]string{strconv.Itoa(i + 1), a.Type, a.Name, a.Ref}) + if err := table.Append([]string{strconv.Itoa(i + 1), a.Type, a.Name, a.Ref}); err != nil { + return fmt.Errorf("failed to append table row: %w", err) + } + } + if err := table.Render(); err != nil { + return fmt.Errorf("failed to render table: %w", err) } - table.Render() return nil default: return fmt.Errorf("unknown output format: %s", output) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frizbee-0.1.7/go.mod new/frizbee-0.1.8/go.mod --- old/frizbee-0.1.7/go.mod 2025-03-25 09:54:49.000000000 +0100 +++ new/frizbee-0.1.8/go.mod 2026-01-30 10:33:33.000000000 +0100 @@ -1,46 +1,54 @@ module github.com/stacklok/frizbee -go 1.23.2 -toolchain go1.24.1 +go 1.25.0 require ( github.com/deckarep/golang-set/v2 v2.8.0 - github.com/go-git/go-billy/v5 v5.6.2 - github.com/google/go-containerregistry v0.20.3 + github.com/go-git/go-billy/v5 v5.7.0 + github.com/google/go-containerregistry v0.20.7 github.com/google/go-github/v66 v66.0.0 - github.com/moby/buildkit v0.20.2 - github.com/olekukonko/tablewriter v0.0.5 + github.com/moby/buildkit v0.27.1 + github.com/olekukonko/tablewriter v1.1.3 github.com/puzpuzpuz/xsync v1.5.2 - github.com/spf13/cobra v1.9.1 - github.com/stretchr/testify v1.10.0 - golang.org/x/sync v0.12.0 + github.com/spf13/cobra v1.10.2 + github.com/stretchr/testify v1.11.1 + golang.org/x/sync v0.19.0 gopkg.in/h2non/gock.v1 v1.1.2 gopkg.in/yaml.v3 v3.0.1 ) require ( - github.com/containerd/stargz-snapshotter/estargz v0.16.3 // indirect + github.com/clipperhouse/displaywidth v0.8.0 // indirect + github.com/clipperhouse/stringish v0.1.1 // indirect + github.com/clipperhouse/uax29/v2 v2.4.0 // indirect + github.com/containerd/stargz-snapshotter/estargz v0.18.1 // indirect github.com/containerd/typeurl/v2 v2.2.3 // indirect - github.com/cyphar/filepath-securejoin v0.3.6 // indirect + github.com/cyphar/filepath-securejoin v0.6.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/docker/cli v27.5.1+incompatible // indirect + github.com/docker/cli v29.1.4+incompatible // indirect github.com/docker/distribution v2.8.3+incompatible // indirect - github.com/docker/docker-credential-helpers v0.8.2 // indirect + github.com/docker/docker-credential-helpers v0.9.5 // indirect + github.com/fatih/color v1.18.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/klauspost/compress v1.17.11 // indirect - github.com/mattn/go-runewidth v0.0.9 // indirect + github.com/klauspost/compress v1.18.3 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.19 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect + github.com/olekukonko/errors v1.2.0 // indirect + github.com/olekukonko/ll v0.1.4 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0 // indirect + github.com/opencontainers/image-spec v1.1.1 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/sirupsen/logrus v1.9.3 // indirect - github.com/spf13/pflag v1.0.6 // indirect - github.com/vbatts/tar-split v0.11.6 // indirect - golang.org/x/sys v0.29.0 // indirect - google.golang.org/protobuf v1.36.3 // indirect + github.com/sirupsen/logrus v1.9.4 // indirect + github.com/spf13/pflag v1.0.10 // indirect + github.com/vbatts/tar-split v0.12.2 // indirect + golang.org/x/sys v0.40.0 // indirect + google.golang.org/protobuf v1.36.11 // indirect ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frizbee-0.1.7/go.sum new/frizbee-0.1.8/go.sum --- old/frizbee-0.1.7/go.sum 2025-03-25 09:54:49.000000000 +0100 +++ new/frizbee-0.1.8/go.sum 2026-01-30 10:33:33.000000000 +0100 @@ -1,30 +1,37 @@ -github.com/containerd/stargz-snapshotter/estargz v0.16.3 h1:7evrXtoh1mSbGj/pfRccTampEyKpjpOnS3CyiV1Ebr8= -github.com/containerd/stargz-snapshotter/estargz v0.16.3/go.mod h1:uyr4BfYfOj3G9WBVE8cOlQmXAbPN9VEQpBBeJIuOipU= +github.com/clipperhouse/displaywidth v0.8.0 h1:/z8v+H+4XLluJKS7rAc7uHZTalT5Z+1430ld3lePSRI= +github.com/clipperhouse/displaywidth v0.8.0/go.mod h1:UpOXiIKep+TohQYwvAAM/VDU8v3Z5rnWTxiwueR0XvQ= +github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs= +github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA= +github.com/clipperhouse/uax29/v2 v2.4.0 h1:RXqE/l5EiAbA4u97giimKNlmpvkmz+GrBVTelsoXy9g= +github.com/clipperhouse/uax29/v2 v2.4.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g= +github.com/containerd/stargz-snapshotter/estargz v0.18.1 h1:cy2/lpgBXDA3cDKSyEfNOFMA/c10O1axL69EU7iirO8= +github.com/containerd/stargz-snapshotter/estargz v0.18.1/go.mod h1:ALIEqa7B6oVDsrF37GkGN20SuvG/pIMm7FwP7ZmRb0Q= github.com/containerd/typeurl/v2 v2.2.3 h1:yNA/94zxWdvYACdYO8zofhrTVuQY73fFU1y++dYSw40= github.com/containerd/typeurl/v2 v2.2.3/go.mod h1:95ljDnPfD3bAbDJRugOiShd/DlAAsxGtUBhJxIn7SCk= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= -github.com/cyphar/filepath-securejoin v0.3.6 h1:4d9N5ykBnSp5Xn2JkhocYDkOpURL/18CYMpo6xB9uWM= -github.com/cyphar/filepath-securejoin v0.3.6/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/cyphar/filepath-securejoin v0.6.0 h1:BtGB77njd6SVO6VztOHfPxKitJvd/VPT+OFBFMOi1Is= +github.com/cyphar/filepath-securejoin v0.6.0/go.mod h1:A8hd4EnAeyujCJRrICiOWqjS1AX0a9kM5XL+NwKoYSc= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set/v2 v2.8.0 h1:swm0rlPCmdWn9mESxKOjWk8hXSqoxOp+ZlfuyaAdFlQ= github.com/deckarep/golang-set/v2 v2.8.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= -github.com/docker/cli v27.5.1+incompatible h1:JB9cieUT9YNiMITtIsguaN55PLOHhBSz3LKVc6cqWaY= -github.com/docker/cli v27.5.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v29.1.4+incompatible h1:AI8fwZhqsAsrqZnVv9h6lbexeW/LzNTasf6A4vcNN8M= +github.com/docker/cli v29.1.4+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker-credential-helpers v0.8.2 h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo= -github.com/docker/docker-credential-helpers v0.8.2/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M= -github.com/go-git/go-billy/v5 v5.6.2 h1:6Q86EsPXMa7c3YZ3aLAQsMA0VlWmy43r6FHqa/UNbRM= -github.com/go-git/go-billy/v5 v5.6.2/go.mod h1:rcFC2rAsp/erv7CMz9GczHcuD0D32fWzH+MJAU+jaUU= +github.com/docker/docker-credential-helpers v0.9.5 h1:EFNN8DHvaiK8zVqFA2DT6BjXE0GzfLOZ38ggPTKePkY= +github.com/docker/docker-credential-helpers v0.9.5/go.mod h1:v1S+hepowrQXITkEfw6o4+BMbGot02wiKpzWhGUZK6c= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= +github.com/go-git/go-billy/v5 v5.7.0 h1:83lBUJhGWhYp0ngzCMSgllhUSuoHP1iEWYjsPl9nwqM= +github.com/go-git/go-billy/v5 v5.7.0/go.mod h1:/1IUejTKH8xipsAcdfcSAlUlo2J7lkYV8GTKxAT/L3E= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-containerregistry v0.20.3 h1:oNx7IdTI936V8CQRveCjaxOiegWwvM7kqkbXTpyiovI= -github.com/google/go-containerregistry v0.20.3/go.mod h1:w00pIgBRDVUDFM6bq+Qx8lwNWK+cxgCuX1vd3PIBDNI= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/go-containerregistry v0.20.7 h1:24VGNpS0IwrOZ2ms2P1QE3Xa5X9p4phx0aUgzYzHW6I= +github.com/google/go-containerregistry v0.20.7/go.mod h1:Lx5LCZQjLH1QBaMPeGwsME9biPeo1lPx6lbGj/UmzgM= github.com/google/go-github/v66 v66.0.0 h1:ADJsaXj9UotwdgK8/iFZtv7MLc8E8WBl62WLd/D/9+M= github.com/google/go-github/v66 v66.0.0/go.mod h1:+4SO9Zkuyf8ytMj0csN1NR/5OTR+MfqPp8P8dVlcvY4= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= @@ -35,28 +42,38 @@ github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= -github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= +github.com/klauspost/compress v1.18.3 h1:9PJRvfbmTabkOX8moIpXPbMMbYN60bWImDDU7L+/6zw= +github.com/klauspost/compress v1.18.3/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= -github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= +github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/moby/buildkit v0.20.2 h1:qIeR47eQ1tzI1rwz0on3Xx2enRw/1CKjFhoONVcTlMA= -github.com/moby/buildkit v0.20.2/go.mod h1:DhaF82FjwOElTftl0JUAJpH/SUIUx4UvcFncLeOtlDI= +github.com/moby/buildkit v0.27.1 h1:qlIWpnZzqCkrYiGkctM1gBD/YZPOJTjtUdRBlI0oBOU= +github.com/moby/buildkit v0.27.1/go.mod h1:99qLrCrIAFgEOiFnCi9Y0Wwp6/qA7QvZ3uq/6wF0IsI= github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32 h1:W6apQkHrMkS0Muv8G/TipAy/FJl/rCYT0+EuS8+Z0z4= github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= -github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= -github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= +github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc= +github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6/go.mod h1:rEKTHC9roVVicUIfZK7DYrdIoM0EOr8mK1Hj5s3JjH0= +github.com/olekukonko/errors v1.2.0 h1:10Zcn4GeV59t/EGqJc8fUjtFT/FuUh5bTMzZ1XwmCRo= +github.com/olekukonko/errors v1.2.0/go.mod h1:ppzxA5jBKcO1vIpCXQ9ZqgDh8iwODz6OXIGKU8r5m4Y= +github.com/olekukonko/ll v0.1.4 h1:QcDaO9quz213xqHZr0gElOcYeOSnFeq7HTQ9Wu4O1wE= +github.com/olekukonko/ll v0.1.4/go.mod h1:b52bVQRRPObe+yyBl0TxNfhesL0nedD4Cht0/zx55Ew= +github.com/olekukonko/tablewriter v1.1.3 h1:VSHhghXxrP0JHl+0NnKid7WoEmd9/urKRJLysb70nnA= +github.com/olekukonko/tablewriter v1.1.3/go.mod h1:9VU0knjhmMkXjnMKrZ3+L2JhhtsQ/L38BbL3CRNE8tM= github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= -github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= +github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= @@ -68,48 +85,48 @@ github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= -github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= -github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= -github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= -github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/vbatts/tar-split v0.11.6 h1:4SjTW5+PU11n6fZenf2IPoV8/tz3AaYHMWjf23envGs= -github.com/vbatts/tar-split v0.11.6/go.mod h1:dqKNtesIOr2j2Qv3W/cHjnvk9I8+G7oAkFDFN6TCBEI= +github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w= +github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g= +github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= +github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/vbatts/tar-split v0.12.2 h1:w/Y6tjxpeiFMR47yzZPlPj/FcPLpXbTUi/9H7d3CPa4= +github.com/vbatts/tar-split v0.12.2/go.mod h1:eF6B6i6ftWQcDqEn3/iGFRFRo8cBIMSJVOpnNdfTMFA= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20250911091902-df9299821621 h1:2id6c1/gto0kaHYyrixvknJ8tUK/Qs5IsmBtrc+FtgU= +golang.org/x/exp v0.0.0-20250911091902-df9299821621/go.mod h1:TwQYMMnGpvZyc+JpB/UAuTNIsVJifOlSkrZkhcvpVUk= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= -golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= +golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= -golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= -golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= +golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= -golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU= +golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -118,14 +135,13 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.36.3 h1:82DV7MYdb8anAVi3qge1wSnMDrnKK7ebr+I0hHRN1BU= -google.golang.org/protobuf v1.36.3/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/h2non/gock.v1 v1.1.2 h1:jBbHXgGBK/AoPVfJh5x4r/WxIrElvbLel8TCZkkZJoY= gopkg.in/h2non/gock.v1 v1.1.2/go.mod h1:n7UGz/ckNChHiK05rDoiC4MYSunEC/lyaUm2WWaDva0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frizbee-0.1.7/internal/traverse/traverse_test.go new/frizbee-0.1.8/internal/traverse/traverse_test.go --- old/frizbee-0.1.7/internal/traverse/traverse_test.go 2025-03-25 09:54:49.000000000 +0100 +++ new/frizbee-0.1.8/internal/traverse/traverse_test.go 2026-01-30 10:33:33.000000000 +0100 @@ -250,9 +250,9 @@ dir bool } -func (f *fileInfoMock) Name() string { return f.name } -func (_ *fileInfoMock) Size() int64 { return 0 } -func (_ *fileInfoMock) Mode() os.FileMode { return 0 } -func (_ *fileInfoMock) ModTime() time.Time { return time.Time{} } -func (f *fileInfoMock) IsDir() bool { return f.dir } -func (_ *fileInfoMock) Sys() interface{} { return nil } +func (f *fileInfoMock) Name() string { return f.name } +func (*fileInfoMock) Size() int64 { return 0 } +func (*fileInfoMock) Mode() os.FileMode { return 0 } +func (*fileInfoMock) ModTime() time.Time { return time.Time{} } +func (f *fileInfoMock) IsDir() bool { return f.dir } +func (*fileInfoMock) Sys() interface{} { return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frizbee-0.1.7/pkg/replacer/actions/actions.go new/frizbee-0.1.8/pkg/replacer/actions/actions.go --- old/frizbee-0.1.7/pkg/replacer/actions/actions.go 2025-03-25 09:54:49.000000000 +0100 +++ new/frizbee-0.1.8/pkg/replacer/actions/actions.go 2026-01-30 10:33:33.000000000 +0100 @@ -120,7 +120,6 @@ restIf interfaces.REST, cfg config.Config, ) (*interfaces.EntityRef, error) { - // If the value is a local path or should be excluded, skip it if isLocal(matchedLine) || shouldExclude(&cfg.GHActions, matchedLine) { return nil, fmt.Errorf("%w: %s", interfaces.ErrReferenceSkipped, matchedLine) @@ -207,8 +206,10 @@ } // ConvertToEntityRef converts an action reference to an EntityRef -func (_ *Parser) ConvertToEntityRef(reference string) (*interfaces.EntityRef, error) { +func (*Parser) ConvertToEntityRef(reference string) (*interfaces.EntityRef, error) { reference = strings.TrimPrefix(reference, prefixUses) + reference = stripQuotes(reference) + refType := ReferenceType separator := "@" // Update the separator in case this is a docker reference with a digest @@ -245,8 +246,22 @@ return false } +// stripQuotes removes single and double quotes from the beginning and end of a string +func stripQuotes(input string) string { + input = strings.TrimSpace(input) + if len(input) >= 2 { + if (input[0] == '\'' && input[len(input)-1] == '\'') || + (input[0] == '"' && input[len(input)-1] == '"') { + return input[1 : len(input)-1] + } + } + return input +} + // ParseActionReference parses an action reference into action and reference. func ParseActionReference(input string) (action string, reference string, err error) { + input = stripQuotes(input) + frags := strings.Split(input, "@") if len(frags) != 2 { return "", "", fmt.Errorf("invalid action reference: %s", input) @@ -275,7 +290,7 @@ } // check branch - if excludeBranch(cfg.Filter.ExcludeBranches, ref) { + if excludeBranch(cfg.ExcludeBranches, ref) { // if a branch is excluded, we won't know if it's a valid reference // but that's OK - we just won't touch that reference return "", fmt.Errorf("%w: %s", interfaces.ErrReferenceSkipped, ref) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frizbee-0.1.7/pkg/replacer/actions/actions_test.go new/frizbee-0.1.8/pkg/replacer/actions/actions_test.go --- old/frizbee-0.1.7/pkg/replacer/actions/actions_test.go 2025-03-25 09:54:49.000000000 +0100 +++ new/frizbee-0.1.8/pkg/replacer/actions/actions_test.go 2026-01-30 10:33:33.000000000 +0100 @@ -217,6 +217,125 @@ } } +func TestParseActionReference_WithQuotes(t *testing.T) { + t.Parallel() + + testCases := []struct { + name string + input string + expectedAction string + expectedRef string + expectError bool + }{ + { + name: "quoted action reference", + input: "'google-github-actions/auth@6fc4af4b145ae7821d527454aa9bd537d1f2dc5f'", + expectedAction: "google-github-actions/auth", + expectedRef: "6fc4af4b145ae7821d527454aa9bd537d1f2dc5f", + expectError: false, + }, + { + name: "double quoted action reference", + input: "\"google-github-actions/auth@6fc4af4b145ae7821d527454aa9bd537d1f2dc5f\"", + expectedAction: "google-github-actions/auth", + expectedRef: "6fc4af4b145ae7821d527454aa9bd537d1f2dc5f", + expectError: false, + }, + { + name: "unquoted action reference", + input: "google-github-actions/auth@6fc4af4b145ae7821d527454aa9bd537d1f2dc5f", + expectedAction: "google-github-actions/auth", + expectedRef: "6fc4af4b145ae7821d527454aa9bd537d1f2dc5f", + expectError: false, + }, + { + name: "invalid action reference", + input: "invalid-action-reference", + expectError: true, + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + t.Parallel() + + action, ref, err := ParseActionReference(tc.input) + + if tc.expectError { + require.Error(t, err) + return + } + + require.NoError(t, err) + require.Equal(t, tc.expectedAction, action) + require.Equal(t, tc.expectedRef, ref) + }) + } +} + +func TestConvertToEntityRef_WithQuotes(t *testing.T) { + t.Parallel() + + parser := New() + + testCases := []struct { + name string + input string + expectedName string + expectedRef string + expectedType string + expectError bool + }{ + { + name: "quoted action reference with uses prefix", + input: "uses: 'google-github-actions/auth@6fc4af4b145ae7821d527454aa9bd537d1f2dc5f'", + expectedName: "google-github-actions/auth", + expectedRef: "6fc4af4b145ae7821d527454aa9bd537d1f2dc5f", + expectedType: "action", + expectError: false, + }, + { + name: "double quoted action reference with uses prefix", + input: "uses: \"google-github-actions/auth@6fc4af4b145ae7821d527454aa9bd537d1f2dc5f\"", + expectedName: "google-github-actions/auth", + expectedRef: "6fc4af4b145ae7821d527454aa9bd537d1f2dc5f", + expectedType: "action", + expectError: false, + }, + { + name: "unquoted action reference with uses prefix", + input: "uses: google-github-actions/auth@6fc4af4b145ae7821d527454aa9bd537d1f2dc5f", + expectedName: "google-github-actions/auth", + expectedRef: "6fc4af4b145ae7821d527454aa9bd537d1f2dc5f", + expectedType: "action", + expectError: false, + }, + { + name: "invalid action reference", + input: "uses: invalid-action-reference", + expectError: true, + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + t.Parallel() + + result, err := parser.ConvertToEntityRef(tc.input) + + if tc.expectError { + require.Error(t, err) + return + } + + require.NoError(t, err) + require.Equal(t, tc.expectedName, result.Name) + require.Equal(t, tc.expectedRef, result.Ref) + require.Equal(t, tc.expectedType, result.Type) + }) + } +} + func TestGetChecksum(t *testing.T) { t.Parallel() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frizbee-0.1.7/pkg/replacer/image/image.go new/frizbee-0.1.8/pkg/replacer/image/image.go --- old/frizbee-0.1.7/pkg/replacer/image/image.go 2025-03-25 09:54:49.000000000 +0100 +++ new/frizbee-0.1.8/pkg/replacer/image/image.go 2026-01-30 10:33:33.000000000 +0100 @@ -141,7 +141,7 @@ } // ConvertToEntityRef converts a container image reference to an EntityRef -func (_ *Parser) ConvertToEntityRef(reference string) (*interfaces.EntityRef, error) { +func (*Parser) ConvertToEntityRef(reference string) (*interfaces.EntityRef, error) { reference = strings.TrimPrefix(reference, prefixImage) reference = strings.TrimPrefix(reference, prefixFROM) var sep string @@ -238,12 +238,12 @@ } imageName := getImageNameFromRef(nameRef) - if slices.Contains(cfg.Images.ImageFilter.ExcludeImages, imageName) { + if slices.Contains(cfg.Images.ExcludeImages, imageName) { return true } tag := nameRef.Identifier() - return slices.Contains(cfg.Images.ImageFilter.ExcludeTags, tag) + return slices.Contains(cfg.Images.ExcludeTags, tag) } // TODO(jakub): this is a bit of a hack, but I didn't find a better way to get just the name diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frizbee-0.1.7/pkg/replacer/replacer.go new/frizbee-0.1.8/pkg/replacer/replacer.go --- old/frizbee-0.1.7/pkg/replacer/replacer.go 2025-03-25 09:54:49.000000000 +0100 +++ new/frizbee-0.1.8/pkg/replacer/replacer.go 2026-01-30 10:33:33.000000000 +0100 @@ -357,15 +357,12 @@ // See if we can match an entity reference in the line foundEntries := re.FindAllString(line, -1) - // nolint:gosimple - if foundEntries != nil { - for _, entry := range foundEntries { - e, err := parser.ConvertToEntityRef(entry) - if err != nil { - continue - } - found.Add(*e) + for _, entry := range foundEntries { + e, err := parser.ConvertToEntityRef(entry) + if err != nil { + continue } + found.Add(*e) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frizbee-0.1.7/pkg/utils/config/config.go new/frizbee-0.1.8/pkg/utils/config/config.go --- old/frizbee-0.1.7/pkg/utils/config/config.go 2025-03-25 09:54:49.000000000 +0100 +++ new/frizbee-0.1.8/pkg/utils/config/config.go 2026-01-30 10:33:33.000000000 +0100 @@ -65,7 +65,7 @@ // GHActions is the GitHub Actions configuration. type GHActions struct { - Filter `yaml:",inline" mapstructure:",inline"` + Filter `yaml:",inline" mapstructure:",squash"` } // Filter is a common configuration for filtering out patterns. @@ -77,7 +77,7 @@ // Images is the image configuration. type Images struct { - ImageFilter `yaml:",inline" mapstructure:",inline"` + ImageFilter `yaml:",inline" mapstructure:",squash"` } // ImageFilter is the image filter configuration. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frizbee-0.1.7/pkg/utils/ghrest/ghrest.go new/frizbee-0.1.8/pkg/utils/ghrest/ghrest.go --- old/frizbee-0.1.7/pkg/utils/ghrest/ghrest.go 2025-03-25 09:54:49.000000000 +0100 +++ new/frizbee-0.1.8/pkg/utils/ghrest/ghrest.go 2026-01-30 10:33:33.000000000 +0100 @@ -63,7 +63,7 @@ } if resp.Response != nil { - resp.Response.Body = io.NopCloser(&buf) + resp.Body = io.NopCloser(&buf) } return resp.Response, err diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frizbee-0.1.7/renovate.json new/frizbee-0.1.8/renovate.json --- old/frizbee-0.1.7/renovate.json 1970-01-01 01:00:00.000000000 +0100 +++ new/frizbee-0.1.8/renovate.json 2026-01-30 10:33:33.000000000 +0100 @@ -0,0 +1,6 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended" + ] +} ++++++ frizbee.obsinfo ++++++ --- /var/tmp/diff_new_pack.ancSf2/_old 2026-01-30 18:33:54.946816558 +0100 +++ /var/tmp/diff_new_pack.ancSf2/_new 2026-01-30 18:33:54.950816726 +0100 @@ -1,5 +1,5 @@ name: frizbee -version: 0.1.7 -mtime: 1742892889 -commit: ff4166b14b7eaf784b020893476a15a4989ce951 +version: 0.1.8 +mtime: 1769765613 +commit: b4fa6e325885e635b817c860b427ad937c31ce30 ++++++ vendor.tar.gz ++++++ ++++ 66688 lines of diff (skipped)
