Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package chezmoi for openSUSE:Factory checked 
in at 2024-06-25 23:07:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/chezmoi (Old)
 and      /work/SRC/openSUSE:Factory/.chezmoi.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "chezmoi"

Tue Jun 25 23:07:17 2024 rev:55 rq:1183046 version:2.49.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/chezmoi/chezmoi.changes  2024-06-11 
18:33:15.109550862 +0200
+++ /work/SRC/openSUSE:Factory/.chezmoi.new.18349/chezmoi.changes       
2024-06-25 23:07:57.123343714 +0200
@@ -1,0 +2,7 @@
+Mon Jun 24 17:01:13 UTC 2024 - Filippo Bonazzi <filippo.bona...@suse.com>
+
+- Update to version 2.49.1:
+  - Fixes
+    * fix: Accept line-endings template directive as well as line-ending
+
+-------------------------------------------------------------------

Old:
----
  chezmoi-2.49.0.obscpio

New:
----
  chezmoi-2.49.1.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ chezmoi.spec ++++++
--- /var/tmp/diff_new_pack.5jrpUP/_old  2024-06-25 23:07:59.511430766 +0200
+++ /var/tmp/diff_new_pack.5jrpUP/_new  2024-06-25 23:07:59.515430912 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           chezmoi
-Version:        2.49.0
+Version:        2.49.1
 Release:        0
 Summary:        A multi-host manager for dotfiles
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.5jrpUP/_old  2024-06-25 23:07:59.547432079 +0200
+++ /var/tmp/diff_new_pack.5jrpUP/_new  2024-06-25 23:07:59.547432079 +0200
@@ -2,7 +2,7 @@
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
     <param name="url">https://github.com/twpayne/chezmoi.git</param>
-    <param name="revision">v2.49.0</param>
+    <param name="revision">v2.49.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
   </service>

++++++ chezmoi-2.49.0.obscpio -> chezmoi-2.49.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.49.0/.github/workflows/govulncheck.yml 
new/chezmoi-2.49.1/.github/workflows/govulncheck.yml
--- old/chezmoi-2.49.0/.github/workflows/govulncheck.yml        2024-06-10 
21:28:41.000000000 +0200
+++ new/chezmoi-2.49.1/.github/workflows/govulncheck.yml        2024-06-23 
13:05:46.000000000 +0200
@@ -16,7 +16,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
     - name: go-version
       id: go-version
       run: |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.49.0/.github/workflows/installer.yml 
new/chezmoi-2.49.1/.github/workflows/installer.yml
--- old/chezmoi-2.49.0/.github/workflows/installer.yml  2024-06-10 
21:28:41.000000000 +0200
+++ new/chezmoi-2.49.1/.github/workflows/installer.yml  2024-06-23 
13:05:46.000000000 +0200
@@ -17,7 +17,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
     - id: filter
       uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36
       with:
@@ -36,8 +36,8 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
-    - uses: reviewdog/action-misspell@8cd4a880dd86b1b175092c18c23cdec31283d654
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
+    - uses: reviewdog/action-misspell@30433ca7be17888deb78a32521706fb65defbf3f
       with:
         locale: US
         ignore: ackward
@@ -54,7 +54,7 @@
     env:
       BINARY: ${{ matrix.os == 'windows-2022' && 'bin/chezmoi.exe' || 
'bin/chezmoi' }}
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
     - name: test-${{ matrix.os }}-local
       shell: bash
       run: |
@@ -77,7 +77,7 @@
     env:
       BINARY: ${{ matrix.os == 'windows-2022' && 'bin/chezmoi.exe' || 
'bin/chezmoi' }}
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
     - name: test-${{ matrix.os }}-local-pwsh
       shell: pwsh
       run: |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.49.0/.github/workflows/main.yml 
new/chezmoi-2.49.1/.github/workflows/main.yml
--- old/chezmoi-2.49.0/.github/workflows/main.yml       2024-06-10 
21:28:41.000000000 +0200
+++ new/chezmoi-2.49.1/.github/workflows/main.yml       2024-06-23 
13:05:46.000000000 +0200
@@ -12,7 +12,7 @@
   - cron: 32 2 * * *
 env:
   ACTIONLINT_VERSION: 1.7.1 # https://github.com/rhysd/actionlint/releases
-  AGE_VERSION: 1.1.1 # https://github.com/FiloSottile/age/releases
+  AGE_VERSION: 1.2.0 # https://github.com/FiloSottile/age/releases
   CHOCOLATEY_VERSION: 2.2.2 # https://github.com/chocolatey/choco/releases
   EDITORCONFIG_CHECKER_VERSION: 3.0.1 # 
https://github.com/editorconfig-checker/editorconfig-checker/releases
   FIND_TYPOS_VERSION: 0.0.3 # https://github.com/twpayne/find-typos/tags
@@ -20,7 +20,7 @@
   GOFUMPT_VERSION: 0.6.0 # https://github.com/mvdan/gofumpt/releases
   GOLANGCI_LINT_VERSION: 1.59.1 # 
https://github.com/golangci/golangci-lint/releases
   GOLINES_VERSION: 0.12.2 # https://github.com/segmentio/golines/releases
-  GORELEASER_VERSION: 2.0.0 # https://github.com/goreleaser/goreleaser/releases
+  GORELEASER_VERSION: 2.0.1 # https://github.com/goreleaser/goreleaser/releases
   GOVERSIONINFO_VERSION: 1.4.0 # 
https://github.com/josephspurrier/goversioninfo/releases
   RAGE_VERSION: 0.10.0 # https://github.com/str4d/rage/releases
 jobs:
@@ -31,7 +31,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
     - id: filter
       uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36
       with:
@@ -57,7 +57,7 @@
     permissions:
       security-events: write
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
       with:
         fetch-depth: 1
     - uses: github/codeql-action/init@f079b8493333aace61c81488f8bd40919487bd9f
@@ -69,8 +69,8 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
-    - uses: reviewdog/action-misspell@8cd4a880dd86b1b175092c18c23cdec31283d654
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
+    - uses: reviewdog/action-misspell@30433ca7be17888deb78a32521706fb65defbf3f
       with:
         locale: US
         ignore: ackward
@@ -81,7 +81,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
     - name: test
       env:
         CHEZMOI_GITHUB_TOKEN: ${{ secrets.CHEZMOI_GITHUB_TOKEN }}
@@ -94,7 +94,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
     - name: test
       env:
         CHEZMOI_GITHUB_TOKEN: ${{ secrets.CHEZMOI_GITHUB_TOKEN }}
@@ -107,7 +107,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
     - uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7
       with:
         go-version: ${{ env.GO_VERSION }}
@@ -142,7 +142,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
     - uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7
       with:
         go-version: oldstable
@@ -175,7 +175,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
       with:
         fetch-depth: 0
     - uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7
@@ -240,7 +240,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
       with:
         fetch-depth: 0
     - uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7
@@ -282,7 +282,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
     - uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7
       with:
         go-version: ${{ env.GO_VERSION }}
@@ -300,7 +300,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
     - uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7
       with:
         go-version: ${{ env.GO_VERSION }}
@@ -326,7 +326,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
       with:
         fetch-depth: 0
     - uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7
@@ -382,7 +382,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
     - uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7
       with:
         go-version: stable
@@ -424,7 +424,7 @@
       run: snapcraft whoami
       env:
         SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
       with:
         fetch-depth: 0
     - uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7
@@ -452,7 +452,7 @@
     permissions:
       contents: write
     steps:
-    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
+    - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
       with:
         fetch-depth: 0
     - uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.49.0/Makefile new/chezmoi-2.49.1/Makefile
--- old/chezmoi-2.49.0/Makefile 2024-06-10 21:28:41.000000000 +0200
+++ new/chezmoi-2.49.1/Makefile 2024-06-23 13:05:46.000000000 +0200
@@ -9,6 +9,7 @@
 GOLINES_VERSION=$(shell awk '/GOLINES_VERSION:/ { print $$2 }' 
.github/workflows/main.yml)
 GORELEASER_VERSION=$(shell awk '/GORELEASER_VERSION:/ { print $$2 }' 
.github/workflows/main.yml)
 GOVERSIONINFO_VERSION=$(shell awk '/GOVERSIONINFO_VERSION:/ { print $$2 }' 
.github/workflows/main.yml)
+UPSTREAM=$(shell git remote -v | awk '/github.com[:\/]twpayne\/chezmoi(.git)? 
\(fetch\)/ {print $$1}')
 ifdef VERSION
        GO_LDFLAGS+=-X main.version=${VERSION}
 endif
@@ -121,7 +122,7 @@
        ${GO} run ./internal/cmds/lint-whitespace
        find . -name \*.txtar | xargs ${GO} run ./internal/cmds/lint-txtar
        ./bin/find-typos chezmoi .
-       go run ./internal/cmds/lint-commit-messages origin/master..HEAD
+       go run ./internal/cmds/lint-commit-messages ${UPSTREAM}/master..HEAD
 
 .PHONY: format
 format: ensure-gofumpt ensure-golines
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.49.0/go.mod new/chezmoi-2.49.1/go.mod
--- old/chezmoi-2.49.0/go.mod   2024-06-10 21:28:41.000000000 +0200
+++ new/chezmoi-2.49.1/go.mod   2024-06-23 13:05:46.000000000 +0200
@@ -5,20 +5,20 @@
 toolchain go1.22.0
 
 require (
-       filippo.io/age v1.1.1
-       github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.2
+       filippo.io/age v1.2.0
+       github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0
        github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.1.0
        github.com/Masterminds/sprig/v3 v3.2.3
        github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2
        github.com/Shopify/ejson v1.5.2
        github.com/alecthomas/assert/v2 v2.10.0
-       github.com/aws/aws-sdk-go-v2 v1.27.2
-       github.com/aws/aws-sdk-go-v2/config v1.27.18
-       github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.29.3
+       github.com/aws/aws-sdk-go-v2 v1.30.0
+       github.com/aws/aws-sdk-go-v2/config v1.27.21
+       github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.31.1
        github.com/bmatcuk/doublestar/v4 v4.6.1
        github.com/bradenhilton/mozillainstallhash v1.0.1
        github.com/charmbracelet/bubbles v0.18.0
-       github.com/charmbracelet/bubbletea v0.26.4
+       github.com/charmbracelet/bubbletea v0.26.5
        github.com/charmbracelet/glamour v0.7.0
        github.com/coreos/go-semver v0.3.1
        github.com/fsnotify/fsnotify v1.7.0
@@ -27,7 +27,7 @@
        github.com/google/renameio/v2 v2.0.0
        github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79
        github.com/itchyny/gojq v0.12.16
-       github.com/klauspost/compress v1.17.8
+       github.com/klauspost/compress v1.17.9
        github.com/mitchellh/copystructure v1.2.0
        github.com/mitchellh/mapstructure v1.5.0
        github.com/muesli/combinator v0.3.0
@@ -35,7 +35,7 @@
        github.com/pelletier/go-toml/v2 v2.2.2
        github.com/rogpeppe/go-internal v1.12.0
        github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3
-       github.com/spf13/cobra v1.8.0
+       github.com/spf13/cobra v1.8.1
        github.com/spf13/pflag v1.0.5
        github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a
        github.com/twpayne/go-pinentry/v4 v4.0.0
@@ -44,7 +44,7 @@
        github.com/twpayne/go-xdg/v6 v6.1.3
        github.com/ulikunitz/xz v0.5.12
        github.com/zalando/go-keyring v0.2.5
-       github.com/zricethezav/gitleaks/v8 v8.18.3
+       github.com/zricethezav/gitleaks/v8 v8.18.4
        go.etcd.io/bbolt v1.3.10
        golang.org/x/crypto v0.24.0
        golang.org/x/oauth2 v0.21.0
@@ -72,16 +72,16 @@
        github.com/alecthomas/repr v0.4.0 // indirect
        github.com/alessio/shellescape v1.4.2 // indirect
        github.com/atotto/clipboard v0.1.4 // indirect
-       github.com/aws/aws-sdk-go-v2/credentials v1.17.18 // indirect
-       github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.5 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.9 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.9 // indirect
+       github.com/aws/aws-sdk-go-v2/credentials v1.17.21 // indirect
+       github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.8 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.12 // indirect
        github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
        github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 
// indirect
-       github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.11 // 
indirect
-       github.com/aws/aws-sdk-go-v2/service/sso v1.20.11 // indirect
-       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.5 // indirect
-       github.com/aws/aws-sdk-go-v2/service/sts v1.28.12 // indirect
+       github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.14 // 
indirect
+       github.com/aws/aws-sdk-go-v2/service/sso v1.21.1 // indirect
+       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.1 // indirect
+       github.com/aws/aws-sdk-go-v2/service/sts v1.29.1 // indirect
        github.com/aws/smithy-go v1.20.2 // indirect
        github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
        github.com/aymerick/douceur v0.2.0 // indirect
@@ -92,7 +92,7 @@
        github.com/charmbracelet/x/input v0.1.2 // indirect
        github.com/charmbracelet/x/term v0.1.1 // indirect
        github.com/charmbracelet/x/windows v0.1.2 // indirect
-       github.com/cloudflare/circl v1.3.8 // indirect
+       github.com/cloudflare/circl v1.3.9 // indirect
        github.com/creack/pty/v2 v2.0.0-20231209135443-03db72c7b76c // indirect
        github.com/cyphar/filepath-securejoin v0.2.5 // indirect
        github.com/danieljoos/wincred v1.2.1 // indirect
@@ -149,10 +149,10 @@
        github.com/subosito/gotenv v1.6.0 // indirect
        github.com/xanzy/ssh-agent v0.3.3 // indirect
        github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
-       github.com/yuin/goldmark v1.7.1 // indirect
+       github.com/yuin/goldmark v1.7.2 // indirect
        github.com/yuin/goldmark-emoji v1.0.2 // indirect
        go.uber.org/multierr v1.11.0 // indirect
-       golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect
+       golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect
        golang.org/x/net v0.26.0 // indirect
        golang.org/x/text v0.16.0 // indirect
        golang.org/x/tools v0.22.0 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.49.0/go.sum new/chezmoi-2.49.1/go.sum
--- old/chezmoi-2.49.0/go.sum   2024-06-10 21:28:41.000000000 +0200
+++ new/chezmoi-2.49.1/go.sum   2024-06-23 13:05:46.000000000 +0200
@@ -1,3 +1,5 @@
+c2sp.org/CCTV/age v0.0.0-20240306222714-3ec4d716e805 
h1:u2qwJeEvnypw+OCPUHmoZE3IqwfuN5kgDfo5MLzpNM0=
+c2sp.org/CCTV/age v0.0.0-20240306222714-3ec4d716e805/go.mod 
h1:FomMrUJ2Lxt5jCLmZkG3FHa72zUprnhd3v/Z18Snm4w=
 cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM=
 cloud.google.com/go v0.112.1/go.mod 
h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4=
 cloud.google.com/go/compute v1.24.0 
h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg=
@@ -14,14 +16,14 @@
 cloud.google.com/go/storage v1.35.1/go.mod 
h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8=
 dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
 dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
-filippo.io/age v1.1.1 h1:pIpO7l151hCnQ4BdyBujnGP2YlUo0uj6sAVNHGBvXHg=
-filippo.io/age v1.1.1/go.mod h1:l03SrzDUrBkdBx8+IILdnn2KZysqQdbEBUQ4p3sqEQE=
-filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek=
-filippo.io/edwards25519 v1.0.0/go.mod 
h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns=
+filippo.io/age v1.2.0 h1:vRDp7pUMaAJzXNIWJVAZnEf/Dyi4Vu4wI8S1LBzufhE=
+filippo.io/age v1.2.0/go.mod h1:JL9ew2lTN+Pyft4RiNGguFfOpewKwSHm5ayKD/A4004=
+filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
+filippo.io/edwards25519 v1.1.0/go.mod 
h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
 github.com/Azure/azure-sdk-for-go/sdk/azcore v1.12.0 
h1:1nGuui+4POelzDwI7RG56yfQJHCnKvwfMoU7VsEp+Zg=
 github.com/Azure/azure-sdk-for-go/sdk/azcore v1.12.0/go.mod 
h1:99EvauvlcJ1U06amZiksfYz/3aFGyIhWGHVyiZXtBAI=
-github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.2 
h1:FDif4R1+UUR+00q6wquyX90K7A8dN+R5E8GEadoP7sU=
-github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.2/go.mod 
h1:aiYBYui4BJ/BJCAIKs92XiPyQfTaBWqvHujDwKb6CBU=
+github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 
h1:tfLQ34V6F7tVSwoTf/4lH5sE0o6eCJuNDTmH09nDpbc=
+github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0/go.mod 
h1:9kIvujWAA58nmPmWB1m23fyWic1kYZMxD9CxaWn4Qpg=
 github.com/Azure/azure-sdk-for-go/sdk/internal v1.9.0 
h1:H+U3Gk9zY56G3u872L82bk4thcsy2Gghb9ExT4Zvm1o=
 github.com/Azure/azure-sdk-for-go/sdk/internal v1.9.0/go.mod 
h1:mgrmMSgaLp9hmax62XQTd0N4aAqSE5E0DulSpVYK7vc=
 github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.1.0 
h1:h4Zxgmi9oyZL2l8jeg1iRTqPloHktywWcu0nlJmo1tA=
@@ -62,32 +64,32 @@
 github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod 
h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
 github.com/atotto/clipboard v0.1.4 
h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=
 github.com/atotto/clipboard v0.1.4/go.mod 
h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
-github.com/aws/aws-sdk-go-v2 v1.27.2 
h1:pLsTXqX93rimAOZG2FIYraDQstZaaGVVN4tNw65v0h8=
-github.com/aws/aws-sdk-go-v2 v1.27.2/go.mod 
h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM=
-github.com/aws/aws-sdk-go-v2/config v1.27.18 
h1:wFvAnwOKKe7QAyIxziwSKjmer9JBMH1vzIL6W+fYuKk=
-github.com/aws/aws-sdk-go-v2/config v1.27.18/go.mod 
h1:0xz6cgdX55+kmppvPm2IaKzIXOheGJhAufacPJaXZ7c=
-github.com/aws/aws-sdk-go-v2/credentials v1.17.18 
h1:D/ALDWqK4JdY3OFgA2thcPO1c9aYTT5STS/CvnkqY1c=
-github.com/aws/aws-sdk-go-v2/credentials v1.17.18/go.mod 
h1:JuitCWq+F5QGUrmMPsk945rop6bB57jdscu+Glozdnc=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.5 
h1:dDgptDO9dxeFkXy+tEgVkzSClHZje/6JkPW5aZyEvrQ=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.5/go.mod 
h1:gjvE2KBUgUQhcv89jqxrIxH9GaKs1JbZzWejj/DaHGA=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.9 
h1:cy8ahBJuhtM8GTTSyOkfy6WVPV1IE+SS5/wfXUYuulw=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.9/go.mod 
h1:CZBXGLaJnEZI6EVNcPd7a6B5IC5cA/GkRWtu9fp3S6Y=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.9 
h1:A4SYk07ef04+vxZToz9LWvAXl9LW0NClpPpMsi31cz0=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.9/go.mod 
h1:5jJcHuwDagxN+ErjQ3PU3ocf6Ylc/p9x+BLO/+X4iXw=
+github.com/aws/aws-sdk-go-v2 v1.30.0 
h1:6qAwtzlfcTtcL8NHtbDQAqgM5s6NDipQTkPxyH/6kAA=
+github.com/aws/aws-sdk-go-v2 v1.30.0/go.mod 
h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM=
+github.com/aws/aws-sdk-go-v2/config v1.27.21 
h1:yPX3pjGCe2hJsetlmGNB4Mngu7UPmvWPzzWCv1+boeM=
+github.com/aws/aws-sdk-go-v2/config v1.27.21/go.mod 
h1:4XtlEU6DzNai8RMbjSF5MgGZtYvrhBP/aKZcRtZAVdM=
+github.com/aws/aws-sdk-go-v2/credentials v1.17.21 
h1:pjAqgzfgFhTv5grc7xPHtXCAaMapzmwA7aU+c/SZQGw=
+github.com/aws/aws-sdk-go-v2/credentials v1.17.21/go.mod 
h1:nhK6PtBlfHTUDVmBLr1dg+WHCOCK+1Fu/WQyVHPsgNQ=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.8 
h1:FR+oWPFb/8qMVYMWN98bUZAGqPvLHiyqg1wqQGfUAXY=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.8/go.mod 
h1:EgSKcHiuuakEIxJcKGzVNWh5srVAQ3jKaSrBGRYvM48=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12 
h1:SJ04WXGTwnHlWIODtC5kJzKbeuHt+OUNOgKg7nfnUGw=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12/go.mod 
h1:FkpvXhA92gb3GE9LD6Og0pHHycTxW7xGpnEh5E7Opwo=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.12 
h1:hb5KgeYfObi5MHkSSZMEudnIvX30iB+E21evI4r6BnQ=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.12/go.mod 
h1:CroKe/eWJdyfy9Vx4rljP5wTUjNJfb+fPz1uMYUhEGM=
 github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 
h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
 github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod 
h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
 github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 
h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs=
 github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod 
h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.11 
h1:o4T+fKxA3gTMcluBNZZXE9DNaMkJuUL1O3mffCUjoJo=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.11/go.mod 
h1:84oZdJ+VjuJKs9v1UTC9NaodRZRseOXCTgku+vQJWR8=
-github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.29.3 
h1:+pg3v9mWOmnR01Pxd0dcsDWSLN0GWbcFiKf2YgZ4+SY=
-github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.29.3/go.mod 
h1:M9TqBwpQ7AC6zu1Yji7vijRliqir7hxjuRcnxIk7jCc=
-github.com/aws/aws-sdk-go-v2/service/sso v1.20.11 
h1:gEYM2GSpr4YNWc6hCd5nod4+d4kd9vWIAWrmGuLdlMw=
-github.com/aws/aws-sdk-go-v2/service/sso v1.20.11/go.mod 
h1:gVvwPdPNYehHSP9Rs7q27U1EU+3Or2ZpXvzAYJNh63w=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.5 
h1:iXjh3uaH3vsVcnyZX7MqCoCfcyxIrVE9iOQruRaWPrQ=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.5/go.mod 
h1:5ZXesEuy/QcO0WUnt+4sDkxhdXRHTu2yG0uCSH8B6os=
-github.com/aws/aws-sdk-go-v2/service/sts v1.28.12 
h1:M/1u4HBpwLuMtjlxuI2y6HoVLzF5e2mfxHCg7ZVMYmk=
-github.com/aws/aws-sdk-go-v2/service/sts v1.28.12/go.mod 
h1:kcfd+eTdEi/40FIbLq4Hif3XMXnl5b/+t/KTfLt9xIk=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.14 
h1:zSDPny/pVnkqABXYRicYuPf9z2bTqfH13HT3v6UheIk=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.14/go.mod 
h1:3TTcI5JSzda1nw/pkVC9dhgLre0SNBFj2lYS4GctXKI=
+github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.31.1 
h1:fMhrWVym3nTAcf3eT9XsYcfN1kgQ/7ZuVLGHjPAn6Ms=
+github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.31.1/go.mod 
h1:tBCf2+VgRT/Lk9KIlKpTxyCunzxHcP8BFPqcck5I9mM=
+github.com/aws/aws-sdk-go-v2/service/sso v1.21.1 
h1:sd0BsnAvLH8gsp2e3cbaIr+9D7T1xugueQ7V/zUAsS4=
+github.com/aws/aws-sdk-go-v2/service/sso v1.21.1/go.mod 
h1:lcQG/MmxydijbeTOp04hIuJwXGWPZGI3bwdFDGRTv14=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.1 
h1:1uEFNNskK/I1KoZ9Q8wJxMz5V9jyBlsiaNrM7vA3YUQ=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.1/go.mod 
h1:z0P8K+cBIsFXUr5rzo/psUeJ20XjPN0+Nn8067Nd+E4=
+github.com/aws/aws-sdk-go-v2/service/sts v1.29.1 
h1:myX5CxqXE0QMZNja6FA1/FSE3Vu1rVmeUmpJMMzeZg0=
+github.com/aws/aws-sdk-go-v2/service/sts v1.29.1/go.mod 
h1:N2mQiucsO0VwK9CYuS4/c2n6Smeh1v47Rz3dWCPFLdE=
 github.com/aws/smithy-go v1.20.2 
h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q=
 github.com/aws/smithy-go v1.20.2/go.mod 
h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
 github.com/aymanbagabas/go-osc52/v2 v2.0.1 
h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
@@ -104,8 +106,8 @@
 github.com/bwesterb/go-ristretto v1.2.3/go.mod 
h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
 github.com/charmbracelet/bubbles v0.18.0 
h1:PYv1A036luoBGroX6VWjQIE9Syf2Wby2oOl/39KLfy0=
 github.com/charmbracelet/bubbles v0.18.0/go.mod 
h1:08qhZhtIwzgrtBjAcJnij1t1H0ZRjwHyGsy6AL11PSw=
-github.com/charmbracelet/bubbletea v0.26.4 
h1:2gDkkzLZaTjMl/dQBpNVtnvcCxsh/FCkimep7FC9c40=
-github.com/charmbracelet/bubbletea v0.26.4/go.mod 
h1:P+r+RRA5qtI1DOHNFn0otoNwB4rn+zNAzSj/EXz6xU0=
+github.com/charmbracelet/bubbletea v0.26.5 
h1:90pqTPElAReb/qQUgSMUresTkfwVr0Wx+zczeHHOgxk=
+github.com/charmbracelet/bubbletea v0.26.5/go.mod 
h1:dz8CWPlfCCGLFbBlTY4N7bjLiyOGDJEnd2Muu7pOWhk=
 github.com/charmbracelet/glamour v0.7.0 
h1:2BtKGZ4iVJCDfMF229EzbeR1QRKLWztO9dMtjmqZSng=
 github.com/charmbracelet/glamour v0.7.0/go.mod 
h1:jUMh5MeihljJPQbJ/wf4ldw2+yBP59+ctV36jASy7ps=
 github.com/charmbracelet/harmonica v0.2.0 
h1:8NxJWRWg/bzKqqEaaeFNipOu77YR5t8aSwG4pgaUBiQ=
@@ -121,16 +123,16 @@
 github.com/charmbracelet/x/windows v0.1.2 
h1:Iumiwq2G+BRmgoayww/qfcvof7W/3uLoelhxojXlRWg=
 github.com/charmbracelet/x/windows v0.1.2/go.mod 
h1:GLEO/l+lizvFDBPLIOk+49gdX49L9YWMB5t+DZd0jkQ=
 github.com/cloudflare/circl v1.3.3/go.mod 
h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
-github.com/cloudflare/circl v1.3.8 
h1:j+V8jJt09PoeMFIu2uh5JUyEaIHTXVOHslFoLNAKqwI=
-github.com/cloudflare/circl v1.3.8/go.mod 
h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU=
+github.com/cloudflare/circl v1.3.9 
h1:QFrlgFYf2Qpi8bSpVPK1HBvWpx16v/1TZivyo7pGuBE=
+github.com/cloudflare/circl v1.3.9/go.mod 
h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU=
 github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 
h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY=
 github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81/go.mod 
h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
 github.com/coreos/go-semver v0.3.1 
h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
 github.com/coreos/go-semver v0.3.1/go.mod 
h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
 github.com/coreos/go-systemd/v22 v22.5.0 
h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
 github.com/coreos/go-systemd/v22 v22.5.0/go.mod 
h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
-github.com/cpuguy83/go-md2man/v2 v2.0.3 
h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM=
-github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod 
h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/cpuguy83/go-md2man/v2 v2.0.4 
h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4=
+github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod 
h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
 github.com/creack/pty v1.1.21 h1:1/QdRyBaHHJP61QkWMXlOIBfsgdDeeKfK8SYVUWJKf0=
 github.com/creack/pty v1.1.21/go.mod 
h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
 github.com/creack/pty/v2 v2.0.0-20231209135443-03db72c7b76c 
h1:5l8y/PgjeX1aUyZxXabtAf2ahCYQaqWzlFzQgU16o0U=
@@ -272,8 +274,8 @@
 github.com/jtolds/gls v4.20.0+incompatible/go.mod 
h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
 github.com/kevinburke/ssh_config v1.2.0 
h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
 github.com/kevinburke/ssh_config v1.2.0/go.mod 
h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
-github.com/klauspost/compress v1.17.8 
h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU=
-github.com/klauspost/compress v1.17.8/go.mod 
h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
+github.com/klauspost/compress v1.17.9 
h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
+github.com/klauspost/compress v1.17.9/go.mod 
h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
 github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
 github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
 github.com/kr/pretty v0.1.0/go.mod 
h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
@@ -322,8 +324,6 @@
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod 
h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/reflect2 v1.0.2 
h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
 github.com/modern-go/reflect2 v1.0.2/go.mod 
h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
-github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5 
h1:8Q0qkMVC/MmWkpIdlvZgcv2o2jrlF6zqVOh7W5YHdMA=
-github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod 
h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8=
 github.com/montanaflynn/stats v0.7.0 
h1:r3y12KyNxj/Sb/iOE46ws+3mS1+MZca1wlHQFPsY/JU=
 github.com/montanaflynn/stats v0.7.0/go.mod 
h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow=
 github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 
h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=
@@ -406,8 +406,8 @@
 github.com/spf13/cast v1.3.1/go.mod 
h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
 github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0=
 github.com/spf13/cast v1.6.0/go.mod 
h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
-github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
-github.com/spf13/cobra v1.8.0/go.mod 
h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
+github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
+github.com/spf13/cobra v1.8.1/go.mod 
h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
 github.com/spf13/jwalterweatherman v1.1.0 
h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
 github.com/spf13/jwalterweatherman v1.1.0/go.mod 
h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
 github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
@@ -452,14 +452,14 @@
 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod 
h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
 github.com/yuin/goldmark v1.3.7/go.mod 
h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 github.com/yuin/goldmark v1.4.13/go.mod 
h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
-github.com/yuin/goldmark v1.7.1 h1:3bajkSilaCbjdKVsKdZjZCLBNPL9pYzrCakKaf4U49U=
-github.com/yuin/goldmark v1.7.1/go.mod 
h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E=
+github.com/yuin/goldmark v1.7.2 h1:NjGd7lO7zrUn/A7eKwn5PEOt4ONYGqpxSEeZuduvgxc=
+github.com/yuin/goldmark v1.7.2/go.mod 
h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E=
 github.com/yuin/goldmark-emoji v1.0.2 
h1:c/RgTShNgHTtc6xdz2KKI74jJr6rWi7FPgnP9GAsO5s=
 github.com/yuin/goldmark-emoji v1.0.2/go.mod 
h1:RhP/RWpexdp+KHs7ghKnifRoIs/Bq4nDS7tRbCkOwKY=
 github.com/zalando/go-keyring v0.2.5 
h1:Bc2HHpjALryKD62ppdEzaFG6VxL6Bc+5v0LYpN8Lba8=
 github.com/zalando/go-keyring v0.2.5/go.mod 
h1:HL4k+OXQfJUWaMnqyuSOc0drfGPX2b51Du6K+MRgZMk=
-github.com/zricethezav/gitleaks/v8 v8.18.3 
h1:t+tMrQCMMlT/binrVyp8PMYs5vjiKBfph3WncYSE9j8=
-github.com/zricethezav/gitleaks/v8 v8.18.3/go.mod 
h1:3EFYK+ZNDHPNQinyZTVGHG7/sFsApEZ9DrCGA1AP63M=
+github.com/zricethezav/gitleaks/v8 v8.18.4 
h1:mWOfVGO8ksok21iOb7h4DZMcUxyvsol8l6o1uNOQxww=
+github.com/zricethezav/gitleaks/v8 v8.18.4/go.mod 
h1:3EFYK+ZNDHPNQinyZTVGHG7/sFsApEZ9DrCGA1AP63M=
 go.etcd.io/bbolt v1.3.10 h1:+BqfJTcCzTItrop8mq/lbzL8wSGtj94UO/3U31shqG0=
 go.etcd.io/bbolt v1.3.10/go.mod h1:bK3UQLPJZly7IlNmV7uVHJDxfe5aK9Ll93e/74Y9oEQ=
 go.etcd.io/etcd/api/v3 v3.5.12 h1:W4sw5ZoU2Juc9gBWuLk5U6fHfNVyY1WC5g9uiXZio/c=
@@ -498,8 +498,8 @@
 golang.org/x/crypto v0.7.0/go.mod 
h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
 golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI=
 golang.org/x/crypto v0.24.0/go.mod 
h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM=
-golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 
h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM=
-golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod 
h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI=
+golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 
h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY=
+golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod 
h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI=
 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
 golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
 golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.49.0/internal/chezmoi/interpreter.go 
new/chezmoi-2.49.1/internal/chezmoi/interpreter.go
--- old/chezmoi-2.49.0/internal/chezmoi/interpreter.go  2024-06-10 
21:28:41.000000000 +0200
+++ new/chezmoi-2.49.1/internal/chezmoi/interpreter.go  2024-06-23 
13:05:46.000000000 +0200
@@ -7,8 +7,8 @@
 
 // An Interpreter interprets scripts.
 type Interpreter struct {
-       Command string   `mapstructure:"command"`
-       Args    []string `mapstructure:"args"`
+       Command string   `json:"command" mapstructure:"command" yaml:"command"`
+       Args    []string `json:"args"    mapstructure:"args"    yaml:"args"`
 }
 
 // ExecCommand returns the *exec.Cmd to interpret name.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.49.0/internal/chezmoi/sourcestate_test.go 
new/chezmoi-2.49.1/internal/chezmoi/sourcestate_test.go
--- old/chezmoi-2.49.0/internal/chezmoi/sourcestate_test.go     2024-06-10 
21:28:41.000000000 +0200
+++ new/chezmoi-2.49.1/internal/chezmoi/sourcestate_test.go     2024-06-23 
13:05:46.000000000 +0200
@@ -853,6 +853,21 @@
                                "",
                        ),
                },
+               {
+                       name: "line_endings_lf",
+                       dataStr: "" +
+                               "unix\n" +
+                               "\n" +
+                               "windows\r\n" +
+                               "\r\n" +
+                               "# chezmoi:template:line-endings=lf\n",
+                       expectedStr: chezmoitest.JoinLines(
+                               "unix",
+                               "",
+                               "windows",
+                               "",
+                       ),
+               },
        } {
                t.Run(tc.name, func(t *testing.T) {
                        s := NewSourceState()
@@ -1903,11 +1918,25 @@
                        },
                },
                {
+                       name:    "line_endings_crlf",
+                       dataStr: "chezmoi:template:line-endings=crlf",
+                       expected: TemplateOptions{
+                               LineEnding: "\r\n",
+                       },
+               },
+               {
                        name:    "line_ending_quoted",
                        dataStr: `chezmoi:template:line-ending="\n"`,
                        expected: TemplateOptions{
                                LineEnding: "\n",
                        },
+               },
+               {
+                       name:    "line_endings_quoted",
+                       dataStr: `chezmoi:template:line-endings="\n"`,
+                       expected: TemplateOptions{
+                               LineEnding: "\n",
+                       },
                },
        } {
                t.Run(tc.name, func(t *testing.T) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.49.0/internal/chezmoi/template.go 
new/chezmoi-2.49.1/internal/chezmoi/template.go
--- old/chezmoi-2.49.0/internal/chezmoi/template.go     2024-06-10 
21:28:41.000000000 +0200
+++ new/chezmoi-2.49.1/internal/chezmoi/template.go     2024-06-23 
13:05:46.000000000 +0200
@@ -85,7 +85,7 @@
                        switch key {
                        case "left-delimiter":
                                o.LeftDelimiter = value
-                       case "line-ending":
+                       case "line-ending", "line-endings":
                                switch string(keyValuePairMatch[2]) {
                                case "crlf":
                                        o.LineEnding = "\r\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.49.0/internal/cmd/config_tags_test.go 
new/chezmoi-2.49.1/internal/cmd/config_tags_test.go
--- old/chezmoi-2.49.0/internal/cmd/config_tags_test.go 1970-01-01 
01:00:00.000000000 +0100
+++ new/chezmoi-2.49.1/internal/cmd/config_tags_test.go 2024-06-23 
13:05:46.000000000 +0200
@@ -0,0 +1,96 @@
+package cmd
+
+import (
+       "fmt"
+       "reflect"
+       "strings"
+       "testing"
+)
+
+var expectedTags = []string{"json", "yaml", "mapstructure"}
+
+func TestExportedFieldsHaveMatchingMarshalTags(t *testing.T) {
+       failed, errmsg := 
verifyTagsArePresentAndMatch(reflect.TypeFor[ConfigFile]())
+       if failed {
+               t.Error(errmsg)
+       }
+}
+
+func fieldTypesNeedsVerification(ft reflect.Type) []reflect.Type {
+       kind := ft.Kind()
+       if kind < reflect.Array || kind == reflect.String { // its a ~scalar 
type
+               return []reflect.Type{}
+       } else if kind == reflect.Struct {
+               return []reflect.Type{ft}
+       }
+       switch kind {
+       case reflect.Pointer:
+               fallthrough
+       case reflect.Array:
+               fallthrough
+       case reflect.Slice:
+               return fieldTypesNeedsVerification(ft.Elem())
+       case reflect.Map:
+               return append(fieldTypesNeedsVerification(ft.Key()), 
fieldTypesNeedsVerification(ft.Elem())...)
+       default:
+               return []reflect.Type{} // ... we'll assume interface types, 
funcs, chans are okay.
+       }
+}
+
+func verifyTagsArePresentAndMatch(structType reflect.Type) (failed bool, 
errmsg string) {
+       name := structType.Name()
+       fields := reflect.VisibleFields(structType)
+       failed = false
+
+       var errs strings.Builder
+
+       for _, f := range fields {
+               if !f.IsExported() {
+                       continue
+               }
+
+               ts := f.Tag
+               tagValueGroups := make(map[string][]string)
+
+               for _, tagName := range expectedTags {
+                       tagValue, tagPresent := ts.Lookup(tagName)
+
+                       if !tagPresent {
+                               errs.WriteString(fmt.Sprintf("\n%s field %s is 
missing a `%s:` tag", name, f.Name, tagName))
+                               failed = true
+                       }
+
+                       matchingTags, notFirstOccurrence := 
tagValueGroups[tagValue]
+                       if notFirstOccurrence {
+                               tagValueGroups[tagValue] = append(matchingTags, 
tagName)
+                       } else {
+                               tagValueGroups[tagValue] = []string{tagName}
+                       }
+               }
+
+               if len(tagValueGroups) > 1 {
+                       errs.WriteString(fmt.Sprintf("\n%s field %s has 
non-matching tag names:", name, f.Name))
+
+                       for value, tagsMatching := range tagValueGroups {
+                               if len(tagsMatching) == 1 {
+                                       errs.WriteString(fmt.Sprintf("\n    %s 
says \"%s\"", tagsMatching[0], value))
+                               } else {
+                                       errs.WriteString(fmt.Sprintf("\n    
(%s) each say \"%s\"", strings.Join(tagsMatching, ", "), value))
+                               }
+                       }
+                       failed = true
+               }
+
+               verifyTypes := fieldTypesNeedsVerification(f.Type)
+               for _, ft := range verifyTypes {
+                       subFailed, suberrs := verifyTagsArePresentAndMatch(ft)
+                       if subFailed {
+                               errs.WriteString(fmt.Sprintf("\n In %s.%s:", 
name, f.Name))
+                               errs.WriteString(strings.ReplaceAll(suberrs, 
"\n", "\n    "))
+                               failed = true
+                       }
+               }
+       }
+
+       return failed, errs.String()
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.49.0/internal/cmd/config_test.go 
new/chezmoi-2.49.1/internal/cmd/config_test.go
--- old/chezmoi-2.49.0/internal/cmd/config_test.go      2024-06-10 
21:28:41.000000000 +0200
+++ new/chezmoi-2.49.1/internal/cmd/config_test.go      2024-06-23 
13:05:46.000000000 +0200
@@ -1,11 +1,14 @@
 package cmd
 
 import (
+       "fmt"
        "io"
        "io/fs"
        "path/filepath"
+       "reflect"
        "runtime"
        "strconv"
+       "strings"
        "testing"
 
        "github.com/alecthomas/assert/v2"
@@ -16,6 +19,43 @@
        "github.com/twpayne/chezmoi/v2/internal/chezmoitest"
 )
 
+func TestTagFieldNamesMatch(t *testing.T) {
+       fields := reflect.VisibleFields(reflect.TypeFor[ConfigFile]())
+       expectedTags := []string{"json", "yaml", "mapstructure"}
+
+       for _, f := range fields {
+               ts := f.Tag
+               tagValueGroups := make(map[string][]string)
+
+               for _, tagName := range expectedTags {
+                       tagValue, tagPresent := ts.Lookup(tagName)
+
+                       if !tagPresent {
+                               t.Errorf("ConfigFile field %s is missing a %s 
tag", f.Name, tagName)
+                       }
+
+                       matchingTags, notFirstOccurrence := 
tagValueGroups[tagValue]
+                       if notFirstOccurrence {
+                               tagValueGroups[tagValue] = append(matchingTags, 
tagName)
+                       } else {
+                               tagValueGroups[tagValue] = []string{tagName}
+                       }
+               }
+
+               if len(tagValueGroups) > 1 {
+                       valueMsgs := []string{}
+                       for value, tagsMatching := range tagValueGroups {
+                               if len(tagsMatching) == 1 {
+                                       valueMsgs = append(valueMsgs, 
fmt.Sprintf("%s says \"%s\"", tagsMatching[0], value))
+                               } else {
+                                       valueMsgs = append(valueMsgs, 
fmt.Sprintf("(%s) each say \"%s\"", strings.Join(tagsMatching, ", "), value))
+                               }
+                       }
+                       t.Errorf("ConfigFile field %s has non-matching tag 
names:\n    %s", f.Name, strings.Join(valueMsgs, "\n    "))
+               }
+       }
+}
+
 func TestAddTemplateFuncPanic(t *testing.T) {
        chezmoitest.WithTestFS(t, nil, func(fileSystem vfs.FS) {
                config := newTestConfig(t, fileSystem)

++++++ chezmoi.obsinfo ++++++
--- /var/tmp/diff_new_pack.5jrpUP/_old  2024-06-25 23:07:59.931446077 +0200
+++ /var/tmp/diff_new_pack.5jrpUP/_new  2024-06-25 23:07:59.935446223 +0200
@@ -1,5 +1,5 @@
 name: chezmoi
-version: 2.49.0
-mtime: 1718047721
-commit: 2e0573779db0c42717585ac8abc4ad1ab814dfb2
+version: 2.49.1
+mtime: 1719140746
+commit: b4b55659c69fb13a502903c16dcdd566b988eece
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/chezmoi/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.chezmoi.new.18349/vendor.tar.gz differ: char 5, 
line 1

Reply via email to