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)

Reply via email to