Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kargo-cli for openSUSE:Factory 
checked in at 2025-11-26 17:18:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kargo-cli (Old)
 and      /work/SRC/openSUSE:Factory/.kargo-cli.new.14147 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kargo-cli"

Wed Nov 26 17:18:16 2025 rev:38 rq:1320121 version:1.8.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/kargo-cli/kargo-cli.changes      2025-11-04 
18:44:39.291228276 +0100
+++ /work/SRC/openSUSE:Factory/.kargo-cli.new.14147/kargo-cli.changes   
2025-11-26 17:18:27.681845611 +0100
@@ -1,0 +2,18 @@
+Wed Nov 26 06:22:50 UTC 2025 - Johannes Kastl 
<[email protected]>
+
+- Update to version 1.8.4:
+  no CLI-related changes
+  * chore(backport release-1.8): chore(deps): bump the go-patch
+    group with 11 updates (#5398)
+  * chore(backport release-1.8): chore(deps/api): bump the go-patch
+    group in /api with 3 updates (#5397)
+  * chore(backport release-1.8): chore(deps): bump golang from
+    1.25.3-trixie to 1.25.4-trixie (#5371)
+  * chore(backport release-1.8): chore(deps): bump the go-patch
+    group with 6 updates (#5370)
+  * chore(backport release-1.8): chore(deps): bump
+    github.com/containerd/containerd from 1.7.28 to 1.7.29 (#5360)
+  * chore(backport release-1.8): fix(test): increase time duration
+    app last operation completion test (#5338)
+
+-------------------------------------------------------------------

Old:
----
  kargo-cli-1.8.3.obscpio

New:
----
  kargo-cli-1.8.4.obscpio

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

Other differences:
------------------
++++++ kargo-cli.spec ++++++
--- /var/tmp/diff_new_pack.HJSXKi/_old  2025-11-26 17:18:30.577967786 +0100
+++ /var/tmp/diff_new_pack.HJSXKi/_new  2025-11-26 17:18:30.601968799 +0100
@@ -19,7 +19,7 @@
 %define executable_name kargo
 
 Name:           kargo-cli
-Version:        1.8.3
+Version:        1.8.4
 Release:        0
 Summary:        CLI for the Kubernetes Application lifecycle orchestration
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.HJSXKi/_old  2025-11-26 17:18:30.977984662 +0100
+++ /var/tmp/diff_new_pack.HJSXKi/_new  2025-11-26 17:18:31.021986518 +0100
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/akuity/kargo</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v1.8.3</param>
+    <param name="revision">v1.8.4</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.HJSXKi/_old  2025-11-26 17:18:31.269996980 +0100
+++ /var/tmp/diff_new_pack.HJSXKi/_new  2025-11-26 17:18:31.301998330 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/akuity/kargo</param>
-              <param 
name="changesrevision">f9635a1b6479f96d11bfbe690f72b786764ed418</param></service></servicedata>
+              <param 
name="changesrevision">dc38d05ff871ace7ae40fc23ef333ca717c96909</param></service></servicedata>
 (No newline at EOF)
 

++++++ kargo-cli-1.8.3.obscpio -> kargo-cli-1.8.4.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kargo-cli-1.8.3/Dockerfile 
new/kargo-cli-1.8.4/Dockerfile
--- old/kargo-cli-1.8.3/Dockerfile      2025-11-03 17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/Dockerfile      2025-11-25 22:45:38.000000000 +0100
@@ -20,7 +20,7 @@
 
####################################################################################################
 # back-end-builder
 
####################################################################################################
-FROM --platform=$BUILDPLATFORM golang:1.25.3-trixie AS back-end-builder
+FROM --platform=$BUILDPLATFORM golang:1.25.4-trixie AS back-end-builder
 
 ARG TARGETOS
 ARG TARGETARCH
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kargo-cli-1.8.3/Dockerfile.dev 
new/kargo-cli-1.8.4/Dockerfile.dev
--- old/kargo-cli-1.8.3/Dockerfile.dev  2025-11-03 17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/Dockerfile.dev  2025-11-25 22:45:38.000000000 +0100
@@ -1,4 +1,4 @@
-FROM golang:1.25.3-trixie
+FROM golang:1.25.4-trixie
 
 ARG TARGETARCH
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kargo-cli-1.8.3/api/go.mod 
new/kargo-cli-1.8.4/api/go.mod
--- old/kargo-cli-1.8.3/api/go.mod      2025-11-03 17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/api/go.mod      2025-11-25 22:45:38.000000000 +0100
@@ -7,9 +7,9 @@
        github.com/gogo/protobuf v1.3.2
        github.com/stretchr/testify v1.11.1
        google.golang.org/protobuf v1.36.10
-       k8s.io/api v0.34.1
-       k8s.io/apiextensions-apiserver v0.34.1
-       k8s.io/apimachinery v0.34.1
+       k8s.io/api v0.34.2
+       k8s.io/apiextensions-apiserver v0.34.2
+       k8s.io/apimachinery v0.34.2
        sigs.k8s.io/yaml v1.6.0
 )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kargo-cli-1.8.3/api/go.sum 
new/kargo-cli-1.8.4/api/go.sum
--- old/kargo-cli-1.8.3/api/go.sum      2025-11-03 17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/api/go.sum      2025-11-25 22:45:38.000000000 +0100
@@ -83,12 +83,12 @@
 gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-k8s.io/api v0.34.1 h1:jC+153630BMdlFukegoEL8E/yT7aLyQkIVuwhmwDgJM=
-k8s.io/api v0.34.1/go.mod h1:SB80FxFtXn5/gwzCoN6QCtPD7Vbu5w2n1S0J5gFfTYk=
-k8s.io/apiextensions-apiserver v0.34.1 
h1:NNPBva8FNAPt1iSVwIE0FsdrVriRXMsaWFMqJbII2CI=
-k8s.io/apiextensions-apiserver v0.34.1/go.mod 
h1:hP9Rld3zF5Ay2Of3BeEpLAToP+l4s5UlxiHfqRaRcMc=
-k8s.io/apimachinery v0.34.1 h1:dTlxFls/eikpJxmAC7MVE8oOeP1zryV7iRyIjB0gky4=
-k8s.io/apimachinery v0.34.1/go.mod 
h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw=
+k8s.io/api v0.34.2 h1:fsSUNZhV+bnL6Aqrp6O7lMTy6o5x2C4XLjnh//8SLYY=
+k8s.io/api v0.34.2/go.mod h1:MMBPaWlED2a8w4RSeanD76f7opUoypY8TFYkSM+3XHw=
+k8s.io/apiextensions-apiserver v0.34.2 
h1:WStKftnGeoKP4AZRz/BaAAEJvYp4mlZGN0UCv+uvsqo=
+k8s.io/apiextensions-apiserver v0.34.2/go.mod 
h1:398CJrsgXF1wytdaanynDpJ67zG4Xq7yj91GrmYN2SE=
+k8s.io/apimachinery v0.34.2 h1:zQ12Uk3eMHPxrsbUJgNF8bTauTVR2WgqJsTmwTE/NW4=
+k8s.io/apimachinery v0.34.2/go.mod 
h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw=
 k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
 k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
 k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 
h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kargo-cli-1.8.3/api/rbac/v1alpha1/annotations.go 
new/kargo-cli-1.8.4/api/rbac/v1alpha1/annotations.go
--- old/kargo-cli-1.8.3/api/rbac/v1alpha1/annotations.go        2025-11-03 
17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/api/rbac/v1alpha1/annotations.go        2025-11-25 
22:45:38.000000000 +0100
@@ -51,6 +51,26 @@
        return strings.TrimPrefix(key, AnnotationKeyOIDCClaimNamePrefix), true
 }
 
+// stringOrArray is a helper type that can unmarshal from either a scalar 
string
+// or an array of strings.
+type stringOrArray []string
+
+func (s *stringOrArray) UnmarshalJSON(data []byte) error {
+       // Try unmarshaling as array first
+       var arr []string
+       if err := json.Unmarshal(data, &arr); err == nil {
+               *s = arr
+               return nil
+       }
+       // Fall back to scalar string
+       var str string
+       if err := json.Unmarshal(data, &str); err != nil {
+               return err
+       }
+       *s = []string{str}
+       return nil
+}
+
 // OIDCClaimsFromAnnotationValue parses the values of the newer, preferred
 // rbac.kargo.akuity.io/claims annotation as well as the values of older
 // annotations with keys of the form rbac.kargo.akuity.io/claim.<name> and
@@ -60,9 +80,13 @@
        claims := make(map[string][]string)
        // hydrate with new style claims
        if _, ok := annotations[AnnotationKeyOIDCClaims]; ok {
-               if err := 
json.Unmarshal([]byte(annotations[AnnotationKeyOIDCClaims]), &claims); err != 
nil {
+               flexClaims := map[string]stringOrArray{}
+               if err := 
json.Unmarshal([]byte(annotations[AnnotationKeyOIDCClaims]), &flexClaims); err 
!= nil {
                        return nil, fmt.Errorf("unmarshaling OIDC claims from 
annotation value: %w", err)
                }
+               for key, val := range flexClaims {
+                       claims[key] = []string(val)
+               }
        }
        // hydrate with old style claims
        for name, values := range annotations {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kargo-cli-1.8.3/api/rbac/v1alpha1/annotations_test.go 
new/kargo-cli-1.8.4/api/rbac/v1alpha1/annotations_test.go
--- old/kargo-cli-1.8.3/api/rbac/v1alpha1/annotations_test.go   2025-11-03 
17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/api/rbac/v1alpha1/annotations_test.go   2025-11-25 
22:45:38.000000000 +0100
@@ -9,7 +9,7 @@
 )
 
 func TestOIDCClaimsFromAnnotationValues(t *testing.T) {
-       for _, test := range []struct {
+       testCases := []struct {
                name           string
                annotations    map[string]string
                expected       map[string][]string
@@ -27,6 +27,18 @@
                        },
                },
                {
+                       name: "new style with bug",
+                       // Some versions incorrectly set the default claim 
annotations upon
+                       // programmatic Project creation.
+                       annotations: map[string]string{
+                               AnnotationKeyOIDCClaims: `{"groups": ["foo", 
"bar"], "email": "[email protected]"}`,
+                       },
+                       expected: map[string][]string{
+                               "groups": {"bar", "foo"},
+                               "email":  {"[email protected]"},
+                       },
+               },
+               {
                        name: "new style with dupes",
                        annotations: map[string]string{
                                AnnotationKeyOIDCClaims: `{"groups": ["foo", 
"foo"], "email": ["[email protected]", "[email protected]"]}`,
@@ -90,16 +102,17 @@
                        shouldErrOut:   true,
                        expectedErrMsg: "unmarshaling OIDC claims from 
annotation value",
                },
-       } {
-               t.Run(test.name, func(t *testing.T) {
-                       got, err := 
OIDCClaimsFromAnnotationValues(test.annotations)
-                       if test.shouldErrOut {
+       }
+       for _, testCase := range testCases {
+               t.Run(testCase.name, func(t *testing.T) {
+                       got, err := 
OIDCClaimsFromAnnotationValues(testCase.annotations)
+                       if testCase.shouldErrOut {
                                require.Error(t, err)
-                               require.ErrorContains(t, err, 
test.expectedErrMsg)
+                               require.ErrorContains(t, err, 
testCase.expectedErrMsg)
                                return
                        }
                        require.NoError(t, err)
-                       require.Equal(t, test.expected, got)
+                       require.Equal(t, testCase.expected, got)
                })
        }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kargo-cli-1.8.3/docs/docs/50-user-guide/20-how-to-guides/30-working-with-warehouses.md
 
new/kargo-cli-1.8.4/docs/docs/50-user-guide/20-how-to-guides/30-working-with-warehouses.md
--- 
old/kargo-cli-1.8.3/docs/docs/50-user-guide/20-how-to-guides/30-working-with-warehouses.md
  2025-11-03 17:35:27.000000000 +0100
+++ 
new/kargo-cli-1.8.4/docs/docs/50-user-guide/20-how-to-guides/30-working-with-warehouses.md
  2025-11-25 22:45:38.000000000 +0100
@@ -97,6 +97,16 @@
     This is a security risk and should only be used in development 
environments.
     :::
 
+- `strictSemvers`: StrictSemvers specifies whether only "strict" semver tags
+  should be considered. `StrictSemvers` specifies whether only "strict" semver
+  tags should be considered. A "strict" semver tag is one containing ALL of
+  major, minor, and patch version components. This is enabled by default, but
+  only has any effect when the `ImageSelectionStrategy` is `SemVer`. This
+  should be disabled cautiously, as it is not uncommon to tag container images
+  with short Git commit hashes, which have the potential to contain numeric
+  characters only and could be mistaken for a semver string containing the
+  major version number only.
+
 #### Image Selection Strategies
 
 For subscriptions to container image repositories, the `imageSelectionStrategy`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kargo-cli-1.8.3/docs/docs/50-user-guide/60-reference-docs/30-promotion-steps/argocd-update.md
 
new/kargo-cli-1.8.4/docs/docs/50-user-guide/60-reference-docs/30-promotion-steps/argocd-update.md
--- 
old/kargo-cli-1.8.3/docs/docs/50-user-guide/60-reference-docs/30-promotion-steps/argocd-update.md
   2025-11-03 17:35:27.000000000 +0100
+++ 
new/kargo-cli-1.8.4/docs/docs/50-user-guide/60-reference-docs/30-promotion-steps/argocd-update.md
   2025-11-25 22:45:38.000000000 +0100
@@ -146,7 +146,8 @@
       sources:
       - repoURL: ${{ chartRepo }}
         chart: my-chart
-        targetRevision: ${{ chartFrom(chartRepo, "my-chart").Version }}
+        desiredRevision: ${{ chartFrom(chartRepo, "my-chart").Version }}
+        updateTargetRevision: true
 ```
 
 ### Updating an Image with Kustomize
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kargo-cli-1.8.3/go.mod new/kargo-cli-1.8.4/go.mod
--- old/kargo-cli-1.8.3/go.mod  2025-11-03 17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/go.mod  2025-11-25 22:45:38.000000000 +0100
@@ -13,15 +13,15 @@
        github.com/Masterminds/semver/v3 v3.4.0
        github.com/adrg/xdg v0.5.3
        github.com/akuity/kargo/api v0.0.0
-       github.com/aws/aws-sdk-go-v2 v1.39.5
-       github.com/aws/aws-sdk-go-v2/config v1.31.16
-       github.com/aws/aws-sdk-go-v2/credentials v1.18.20
-       github.com/aws/aws-sdk-go-v2/service/ecr v1.51.1
-       github.com/aws/aws-sdk-go-v2/service/sts v1.39.0
+       github.com/aws/aws-sdk-go-v2 v1.39.6
+       github.com/aws/aws-sdk-go-v2/config v1.31.20
+       github.com/aws/aws-sdk-go-v2/credentials v1.18.24
+       github.com/aws/aws-sdk-go-v2/service/ecr v1.51.2
+       github.com/aws/aws-sdk-go-v2/service/sts v1.40.2
        github.com/bmatcuk/doublestar/v4 v4.9.1
        github.com/bombsimon/logrusr/v4 v4.1.0
        github.com/coreos/go-oidc/v3 v3.16.0
-       github.com/cyphar/filepath-securejoin v0.5.1
+       github.com/cyphar/filepath-securejoin v0.6.0
        github.com/evanphx/json-patch/v5 v5.9.11
        github.com/expr-lang/expr v1.17.6
        github.com/fatih/structtag v1.2.0
@@ -68,18 +68,18 @@
        google.golang.org/grpc v1.76.0
        google.golang.org/protobuf v1.36.10
        gopkg.in/yaml.v3 v3.0.1
-       helm.sh/helm/v3 v3.19.0
-       k8s.io/api v0.34.1
-       k8s.io/apiextensions-apiserver v0.34.1
-       k8s.io/apimachinery v0.34.1
-       k8s.io/apiserver v0.34.1
-       k8s.io/cli-runtime v0.34.1
-       k8s.io/client-go v0.34.1
+       helm.sh/helm/v3 v3.19.2
+       k8s.io/api v0.34.2
+       k8s.io/apiextensions-apiserver v0.34.2
+       k8s.io/apimachinery v0.34.2
+       k8s.io/apiserver v0.34.2
+       k8s.io/cli-runtime v0.34.2
+       k8s.io/client-go v0.34.2
        k8s.io/klog/v2 v2.130.1
        k8s.io/utils v0.0.0-20250604170112-4c0f3b243397
        oras.land/oras-go/v2 v2.6.0
        sigs.k8s.io/cli-utils v0.37.2
-       sigs.k8s.io/controller-runtime v0.22.3
+       sigs.k8s.io/controller-runtime v0.22.4
        sigs.k8s.io/kustomize/api v0.20.1
        sigs.k8s.io/kustomize/kyaml v0.20.1
        sigs.k8s.io/yaml v1.6.0
@@ -97,21 +97,21 @@
        github.com/Masterminds/sprig/v3 v3.3.0 // indirect
        github.com/Masterminds/squirrel v1.5.4 // indirect
        github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // 
indirect
-       github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.12 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.12 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.12 // indirect
+       github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13 // indirect
        github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect
-       github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2 
// indirect
-       github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.12 // 
indirect
-       github.com/aws/aws-sdk-go-v2/service/sso v1.30.0 // indirect
-       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.4 // indirect
-       github.com/aws/smithy-go v1.23.1 // indirect
+       github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 
// indirect
+       github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 // 
indirect
+       github.com/aws/aws-sdk-go-v2/service/sso v1.30.3 // indirect
+       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.7 // indirect
+       github.com/aws/smithy-go v1.23.2 // indirect
        github.com/benbjohnson/clock v1.3.0 // indirect
        github.com/beorn7/perks v1.0.1 // indirect
        github.com/blang/semver/v4 v4.0.0 // indirect
        github.com/cespare/xxhash/v2 v2.3.0 // indirect
        github.com/chai2010/gettext-go v1.0.2 // indirect
-       github.com/containerd/containerd v1.7.28 // indirect
+       github.com/containerd/containerd v1.7.29 // indirect
        github.com/containerd/errdefs v1.0.0 // indirect
        github.com/containerd/log v0.1.0 // indirect
        github.com/containerd/platforms v0.2.1 // indirect
@@ -224,7 +224,7 @@
        gopkg.in/inf.v0 v0.9.1 // indirect
        gopkg.in/warnings.v0 v0.1.2 // indirect
        gotest.tools/v3 v3.4.0 // indirect
-       k8s.io/component-base v0.34.1 // indirect
+       k8s.io/component-base v0.34.2 // indirect
        k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect
        k8s.io/kubectl v0.34.0 // indirect
        sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kargo-cli-1.8.3/go.sum new/kargo-cli-1.8.4/go.sum
--- old/kargo-cli-1.8.3/go.sum  2025-11-03 17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/go.sum  2025-11-25 22:45:38.000000000 +0100
@@ -44,34 +44,34 @@
 github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod 
h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
 github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 
h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
 github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod 
h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
-github.com/aws/aws-sdk-go-v2 v1.39.5 
h1:e/SXuia3rkFtapghJROrydtQpfQaaUgd1cUvyO1mp2w=
-github.com/aws/aws-sdk-go-v2 v1.39.5/go.mod 
h1:yWSxrnioGUZ4WVv9TgMrNUeLV3PFESn/v+6T/Su8gnM=
-github.com/aws/aws-sdk-go-v2/config v1.31.16 
h1:E4Tz+tJiPc7kGnXwIfCyUj6xHJNpENlY11oKpRTgsjc=
-github.com/aws/aws-sdk-go-v2/config v1.31.16/go.mod 
h1:2S9hBElpCyGMifv14WxQ7EfPumgoeCPZUpuPX8VtW34=
-github.com/aws/aws-sdk-go-v2/credentials v1.18.20 
h1:KFndAnHd9NUuzikHjQ8D5CfFVO+bgELkmcGY8yAw98Q=
-github.com/aws/aws-sdk-go-v2/credentials v1.18.20/go.mod 
h1:9mCi28a+fmBHSQ0UM79omkz6JtN+PEsvLrnG36uoUv0=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.12 
h1:VO3FIM2TDbm0kqp6sFNR0PbioXJb/HzCDW6NtIZpIWE=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.12/go.mod 
h1:6C39gB8kg82tx3r72muZSrNhHia9rjGkX7ORaS2GKNE=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.12 
h1:p/9flfXdoAnwJnuW9xHEAFY22R3A6skYkW19JFF9F+8=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.12/go.mod 
h1:ZTLHakoVCTtW8AaLGSwJ3LXqHD9uQKnOcv1TrpO6u2k=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.12 
h1:2lTWFvRcnWFFLzHWmtddu5MTchc5Oj2OOey++99tPZ0=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.12/go.mod 
h1:hI92pK+ho8HVcWMHKHrK3Uml4pfG7wvL86FzO0LVtQQ=
+github.com/aws/aws-sdk-go-v2 v1.39.6 
h1:2JrPCVgWJm7bm83BDwY5z8ietmeJUbh3O2ACnn+Xsqk=
+github.com/aws/aws-sdk-go-v2 v1.39.6/go.mod 
h1:c9pm7VwuW0UPxAEYGyTmyurVcNrbF6Rt/wixFqDhcjE=
+github.com/aws/aws-sdk-go-v2/config v1.31.20 
h1:/jWF4Wu90EhKCgjTdy1DGxcbcbNrjfBHvksEL79tfQc=
+github.com/aws/aws-sdk-go-v2/config v1.31.20/go.mod 
h1:95Hh1Tc5VYKL9NJ7tAkDcqeKt+MCXQB1hQZaRdJIZE0=
+github.com/aws/aws-sdk-go-v2/credentials v1.18.24 
h1:iJ2FmPT35EaIB0+kMa6TnQ+PwG5A1prEdAw+PsMzfHg=
+github.com/aws/aws-sdk-go-v2/credentials v1.18.24/go.mod 
h1:U91+DrfjAiXPDEGYhh/x29o4p0qHX5HDqG7y5VViv64=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13 
h1:T1brd5dR3/fzNFAQch/iBKeX07/ffu/cLu+q+RuzEWk=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13/go.mod 
h1:Peg/GBAQ6JDt+RoBf4meB1wylmAipb7Kg2ZFakZTlwk=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13 
h1:a+8/MLcWlIxo1lF9xaGt3J/u3yOZx+CdSveSNwjhD40=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13/go.mod 
h1:oGnKwIYZ4XttyU2JWxFrwvhF6YKiK/9/wmE3v3Iu9K8=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13 
h1:HBSI2kDkMdWz4ZM7FjwE7e/pWDEZ+nR95x8Ztet1ooY=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13/go.mod 
h1:YE94ZoDArI7awZqJzBAZ3PDD2zSfuP7w6P2knOzIn8M=
 github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 
h1:WKuaxf++XKWlHWu9ECbMlha8WOEGm0OUEZqm4K/Gcfk=
 github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4/go.mod 
h1:ZWy7j6v1vWGmPReu0iSGvRiise4YI5SkR3OHKTZ6Wuc=
-github.com/aws/aws-sdk-go-v2/service/ecr v1.51.1 
h1:1G4mc5St/5fsa+eKOY/zABuzSRqv0CeUL5Epk5/HYrE=
-github.com/aws/aws-sdk-go-v2/service/ecr v1.51.1/go.mod 
h1:2nWjy9RsAoNBrG9x+XddEg43nDd1q3fMeGlVYeYrW6M=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2 
h1:xtuxji5CS0JknaXoACOunXOYOQzgfTvGAc9s2QdCJA4=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2/go.mod 
h1:zxwi0DIR0rcRcgdbl7E2MSOvxDyyXGBlScvBkARFaLQ=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.12 
h1:MM8imH7NZ0ovIVX7D2RxfMDv7Jt9OiUXkcQ+GqywA7M=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.12/go.mod 
h1:gf4OGwdNkbEsb7elw2Sy76odfhwNktWII3WgvQgQQ6w=
-github.com/aws/aws-sdk-go-v2/service/sso v1.30.0 
h1:xHXvxst78wBpJFgDW07xllOx0IAzbryrSdM4nMVQ4Dw=
-github.com/aws/aws-sdk-go-v2/service/sso v1.30.0/go.mod 
h1:/e8m+AO6HNPPqMyfKRtzZ9+mBF5/x1Wk8QiDva4m07I=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.4 
h1:tBw2Qhf0kj4ZwtsVpDiVRU3zKLvjvjgIjHMKirxXg8M=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.4/go.mod 
h1:Deq4B7sRM6Awq/xyOBlxBdgW8/Z926KYNNaGMW2lrkA=
-github.com/aws/aws-sdk-go-v2/service/sts v1.39.0 
h1:C+BRMnasSYFcgDw8o9H5hzehKzXyAb9GY5v/8bP9DUY=
-github.com/aws/aws-sdk-go-v2/service/sts v1.39.0/go.mod 
h1:4EjU+4mIx6+JqKQkruye+CaigV7alL3thVPfDd9VlMs=
-github.com/aws/smithy-go v1.23.1 
h1:sLvcH6dfAFwGkHLZ7dGiYF7aK6mg4CgKA/iDKjLDt9M=
-github.com/aws/smithy-go v1.23.1/go.mod 
h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0=
+github.com/aws/aws-sdk-go-v2/service/ecr v1.51.2 
h1:aq2N/9UkbEyljIQ7OFcudEgUsJzO8MYucmfsM/k/dmc=
+github.com/aws/aws-sdk-go-v2/service/ecr v1.51.2/go.mod 
h1:1NVD1KuMjH2GqnPwMotPndQaT/MreKkWpjkF12d6oKU=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 
h1:x2Ibm/Af8Fi+BH+Hsn9TXGdT+hKbDd5XOTZxTMxDk7o=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3/go.mod 
h1:IW1jwyrQgMdhisceG8fQLmQIydcT/jWY21rFhzgaKwo=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 
h1:kDqdFvMY4AtKoACfzIGD8A0+hbT41KTKF//gq7jITfM=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13/go.mod 
h1:lmKuogqSU3HzQCwZ9ZtcqOc5XGMqtDK7OIc2+DxiUEg=
+github.com/aws/aws-sdk-go-v2/service/sso v1.30.3 
h1:NjShtS1t8r5LUfFVtFeI8xLAHQNTa7UI0VawXlrBMFQ=
+github.com/aws/aws-sdk-go-v2/service/sso v1.30.3/go.mod 
h1:fKvyjJcz63iL/ftA6RaM8sRCtN4r4zl4tjL3qw5ec7k=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.7 
h1:gTsnx0xXNQ6SBbymoDvcoRHL+q4l/dAFsQuKfDWSaGc=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.7/go.mod 
h1:klO+ejMvYsB4QATfEOIXk8WAEwN4N0aBfJpvC+5SZBo=
+github.com/aws/aws-sdk-go-v2/service/sts v1.40.2 
h1:HK5ON3KmQV2HcAunnx4sKLB9aPf3gKGwVAf7xnx0QT0=
+github.com/aws/aws-sdk-go-v2/service/sts v1.40.2/go.mod 
h1:E19xDjpzPZC7LS2knI9E6BaRFDK43Eul7vd6rSq2HWk=
+github.com/aws/smithy-go v1.23.2 
h1:Crv0eatJUQhaManss33hS5r40CG3ZFH+21XSkqMrIUM=
+github.com/aws/smithy-go v1.23.2/go.mod 
h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0=
 github.com/benbjohnson/clock v1.3.0 
h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A=
 github.com/benbjohnson/clock v1.3.0/go.mod 
h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
 github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -90,8 +90,8 @@
 github.com/cespare/xxhash/v2 v2.3.0/go.mod 
h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/chai2010/gettext-go v1.0.2 
h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk=
 github.com/chai2010/gettext-go v1.0.2/go.mod 
h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA=
-github.com/containerd/containerd v1.7.28 
h1:Nsgm1AtcmEh4AHAJ4gGlNSaKgXiNccU270Dnf81FQ3c=
-github.com/containerd/containerd v1.7.28/go.mod 
h1:azUkWcOvHrWvaiUjSQH0fjzuHIwSPg1WL5PshGP4Szs=
+github.com/containerd/containerd v1.7.29 
h1:90fWABQsaN9mJhGkoVnuzEY+o1XDPbg9BTC9QTAHnuE=
+github.com/containerd/containerd v1.7.29/go.mod 
h1:azUkWcOvHrWvaiUjSQH0fjzuHIwSPg1WL5PshGP4Szs=
 github.com/containerd/errdefs v1.0.0 
h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI=
 github.com/containerd/errdefs v1.0.0/go.mod 
h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M=
 github.com/containerd/log v0.1.0 
h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
@@ -108,8 +108,8 @@
 github.com/creack/pty v1.1.17/go.mod 
h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
 github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
 github.com/creack/pty v1.1.18/go.mod 
h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
-github.com/cyphar/filepath-securejoin v0.5.1 
h1:eYgfMq5yryL4fbWfkLpFFy2ukSELzaJOTaUTuh+oF48=
-github.com/cyphar/filepath-securejoin v0.5.1/go.mod 
h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI=
+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.0/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc 
h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
@@ -617,22 +617,22 @@
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o=
 gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g=
-helm.sh/helm/v3 v3.19.0 h1:krVyCGa8fa/wzTZgqw0DUiXuRT5BPdeqE/sQXujQ22k=
-helm.sh/helm/v3 v3.19.0/go.mod h1:Lk/SfzN0w3a3C3o+TdAKrLwJ0wcZ//t1/SDXAvfgDdc=
-k8s.io/api v0.34.1 h1:jC+153630BMdlFukegoEL8E/yT7aLyQkIVuwhmwDgJM=
-k8s.io/api v0.34.1/go.mod h1:SB80FxFtXn5/gwzCoN6QCtPD7Vbu5w2n1S0J5gFfTYk=
-k8s.io/apiextensions-apiserver v0.34.1 
h1:NNPBva8FNAPt1iSVwIE0FsdrVriRXMsaWFMqJbII2CI=
-k8s.io/apiextensions-apiserver v0.34.1/go.mod 
h1:hP9Rld3zF5Ay2Of3BeEpLAToP+l4s5UlxiHfqRaRcMc=
-k8s.io/apimachinery v0.34.1 h1:dTlxFls/eikpJxmAC7MVE8oOeP1zryV7iRyIjB0gky4=
-k8s.io/apimachinery v0.34.1/go.mod 
h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw=
-k8s.io/apiserver v0.34.1 h1:U3JBGdgANK3dfFcyknWde1G6X1F4bg7PXuvlqt8lITA=
-k8s.io/apiserver v0.34.1/go.mod h1:eOOc9nrVqlBI1AFCvVzsob0OxtPZUCPiUJL45JOTBG0=
-k8s.io/cli-runtime v0.34.1 h1:btlgAgTrYd4sk8vJTRG6zVtqBKt9ZMDeQZo2PIzbL7M=
-k8s.io/cli-runtime v0.34.1/go.mod 
h1:aVA65c+f0MZiMUPbseU/M9l1Wo2byeaGwUuQEQVVveE=
-k8s.io/client-go v0.34.1 h1:ZUPJKgXsnKwVwmKKdPfw4tB58+7/Ik3CrjOEhsiZ7mY=
-k8s.io/client-go v0.34.1/go.mod h1:kA8v0FP+tk6sZA0yKLRG67LWjqufAoSHA2xVGKw9Of8=
-k8s.io/component-base v0.34.1 h1:v7xFgG+ONhytZNFpIz5/kecwD+sUhVE6HU7qQUiRM4A=
-k8s.io/component-base v0.34.1/go.mod 
h1:mknCpLlTSKHzAQJJnnHVKqjxR7gBeHRv0rPXA7gdtQ0=
+helm.sh/helm/v3 v3.19.2 h1:psQjaM8aIWrSVEly6PgYtLu/y6MRSmok4ERiGhZmtUY=
+helm.sh/helm/v3 v3.19.2/go.mod h1:gX10tB5ErM+8fr7bglUUS/UfTOO8UUTYWIBH1IYNnpE=
+k8s.io/api v0.34.2 h1:fsSUNZhV+bnL6Aqrp6O7lMTy6o5x2C4XLjnh//8SLYY=
+k8s.io/api v0.34.2/go.mod h1:MMBPaWlED2a8w4RSeanD76f7opUoypY8TFYkSM+3XHw=
+k8s.io/apiextensions-apiserver v0.34.2 
h1:WStKftnGeoKP4AZRz/BaAAEJvYp4mlZGN0UCv+uvsqo=
+k8s.io/apiextensions-apiserver v0.34.2/go.mod 
h1:398CJrsgXF1wytdaanynDpJ67zG4Xq7yj91GrmYN2SE=
+k8s.io/apimachinery v0.34.2 h1:zQ12Uk3eMHPxrsbUJgNF8bTauTVR2WgqJsTmwTE/NW4=
+k8s.io/apimachinery v0.34.2/go.mod 
h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw=
+k8s.io/apiserver v0.34.2 h1:2/yu8suwkmES7IzwlehAovo8dDE07cFRC7KMDb1+MAE=
+k8s.io/apiserver v0.34.2/go.mod h1:gqJQy2yDOB50R3JUReHSFr+cwJnL8G1dzTA0YLEqAPI=
+k8s.io/cli-runtime v0.34.2 h1:cct1GEuWc3IyVT8MSCoIWzRGw9HJ/C5rgP32H60H6aE=
+k8s.io/cli-runtime v0.34.2/go.mod 
h1:X13tsrYexYUCIq8MarCBy8lrm0k0weFPTpcaNo7lms4=
+k8s.io/client-go v0.34.2 h1:Co6XiknN+uUZqiddlfAjT68184/37PS4QAzYvQvDR8M=
+k8s.io/client-go v0.34.2/go.mod h1:2VYDl1XXJsdcAxw7BenFslRQX28Dxz91U9MWKjX97fE=
+k8s.io/component-base v0.34.2 h1:HQRqK9x2sSAsd8+R4xxRirlTjowsg6fWCPwWYeSvogQ=
+k8s.io/component-base v0.34.2/go.mod 
h1:9xw2FHJavUHBFpiGkZoKuYZ5pdtLKe97DEByaA+hHbM=
 k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
 k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
 k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b 
h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA=
@@ -645,8 +645,8 @@
 oras.land/oras-go/v2 v2.6.0/go.mod 
h1:magiQDfG6H1O9APp+rOsvCPcW1GD2MM7vgnKY0Y+u1o=
 sigs.k8s.io/cli-utils v0.37.2 h1:GOfKw5RV2HDQZDJlru5KkfLO1tbxqMoyn1IYUxqBpNg=
 sigs.k8s.io/cli-utils v0.37.2/go.mod 
h1:V+IZZr4UoGj7gMJXklWBg6t5xbdThFBcpj4MrZuCYco=
-sigs.k8s.io/controller-runtime v0.22.3 
h1:I7mfqz/a/WdmDCEnXmSPm8/b/yRTy6JsKKENTijTq8Y=
-sigs.k8s.io/controller-runtime v0.22.3/go.mod 
h1:+QX1XUpTXN4mLoblf4tqr5CQcyHPAki2HLXqQMY6vh8=
+sigs.k8s.io/controller-runtime v0.22.4 
h1:GEjV7KV3TY8e+tJ2LCTxUTanW4z/FmNB7l327UfMq9A=
+sigs.k8s.io/controller-runtime v0.22.4/go.mod 
h1:+QX1XUpTXN4mLoblf4tqr5CQcyHPAki2HLXqQMY6vh8=
 sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 
h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=
 sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod 
h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
 sigs.k8s.io/kustomize/api v0.20.1 
h1:iWP1Ydh3/lmldBnH/S5RXgT98vWYMaTUL1ADcr+Sv7I=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kargo-cli-1.8.3/pkg/controller/git/bare_repo.go 
new/kargo-cli-1.8.4/pkg/controller/git/bare_repo.go
--- old/kargo-cli-1.8.3/pkg/controller/git/bare_repo.go 2025-11-03 
17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/pkg/controller/git/bare_repo.go 2025-11-25 
22:45:38.000000000 +0100
@@ -98,10 +98,11 @@
        }
        b := &bareRepo{
                baseRepo: &baseRepo{
-                       creds:   clientOpts.Credentials,
-                       dir:     filepath.Join(homeDir, "repo"),
-                       homeDir: homeDir,
-                       url:     repoURL,
+                       creds:       clientOpts.Credentials,
+                       dir:         filepath.Join(homeDir, "repo"),
+                       homeDir:     homeDir,
+                       originalURL: repoURL,
+                       accessURL:   repoURL,
                },
        }
        if err = b.setupClient(homeDir, clientOpts); err != nil {
@@ -113,14 +114,17 @@
        if err = b.saveDirs(); err != nil {
                return nil, err
        }
+       if err = b.saveOriginalURL(); err != nil {
+               return nil, err
+       }
        return b, nil
 }
 
 func (b *bareRepo) clone() error {
-       cmd := b.buildGitCommand("clone", "--bare", b.url, b.dir)
+       cmd := b.buildGitCommand("clone", "--bare", b.accessURL, b.dir)
        cmd.Dir = b.homeDir // Override the cmd.Dir that's set by 
r.buildGitCommand()
        if _, err := libExec.Exec(cmd); err != nil {
-               return fmt.Errorf("error cloning repo %q into %q: %w", b.url, 
b.dir, err)
+               return fmt.Errorf("error cloning repo %q into %q: %w", 
b.originalURL, b.dir, err)
        }
        return nil
 }
@@ -142,7 +146,7 @@
        if err := b.loadHomeDir(); err != nil {
                return nil, fmt.Errorf("error reading repo home dir from 
config: %w", err)
        }
-       if err := b.loadURL(); err != nil {
+       if err := b.loadURLs(); err != nil {
                return nil,
                        fmt.Errorf(`error reading URL of remote "origin" from 
config: %w`, err)
        }
@@ -192,10 +196,11 @@
        }
        return &workTree{
                baseRepo: &baseRepo{
-                       creds:   b.creds,
-                       dir:     path,
-                       homeDir: b.homeDir,
-                       url:     b.url,
+                       creds:       b.creds,
+                       dir:         path,
+                       homeDir:     b.homeDir,
+                       originalURL: b.originalURL,
+                       accessURL:   b.accessURL,
                },
                bareRepo: b,
        }, nil
@@ -242,10 +247,11 @@
        for i, workTreePath := range workTreePaths {
                workTrees[i] = &workTree{
                        baseRepo: &baseRepo{
-                               creds:   b.creds,
-                               dir:     workTreePath,
-                               homeDir: b.homeDir,
-                               url:     b.url,
+                               creds:       b.creds,
+                               dir:         workTreePath,
+                               homeDir:     b.homeDir,
+                               originalURL: b.originalURL,
+                               accessURL:   b.accessURL,
                        },
                        bareRepo: b,
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kargo-cli-1.8.3/pkg/controller/git/bare_repo_test.go 
new/kargo-cli-1.8.4/pkg/controller/git/bare_repo_test.go
--- old/kargo-cli-1.8.3/pkg/controller/git/bare_repo_test.go    2025-11-03 
17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/pkg/controller/git/bare_repo_test.go    2025-11-25 
22:45:38.000000000 +0100
@@ -79,11 +79,12 @@
        require.True(t, ok)
 
        t.Run("can clone", func(t *testing.T) {
-               var repoURL *url.URL
-               repoURL, err = url.Parse(r.url)
+               require.Equal(t, testRepoURL, r.originalURL)
+               var accessURL *url.URL
+               accessURL, err = url.Parse(r.accessURL)
                require.NoError(t, err)
-               repoURL.User = nil
-               require.Equal(t, testRepoURL, repoURL.String())
+               accessURL.User = nil
+               require.Equal(t, testRepoURL, accessURL.String())
                require.NotEmpty(t, r.homeDir)
                var fi os.FileInfo
                fi, err = os.Stat(r.homeDir)
@@ -96,7 +97,7 @@
        })
 
        t.Run("can get the repo url", func(t *testing.T) {
-               require.Equal(t, r.url, r.URL())
+               require.Equal(t, r.originalURL, r.URL())
        })
 
        t.Run("can get the home dir", func(t *testing.T) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kargo-cli-1.8.3/pkg/controller/git/base_repo.go 
new/kargo-cli-1.8.4/pkg/controller/git/base_repo.go
--- old/kargo-cli-1.8.3/pkg/controller/git/base_repo.go 2025-11-03 
17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/pkg/controller/git/base_repo.go 2025-11-25 
22:45:38.000000000 +0100
@@ -17,6 +17,10 @@
 const (
        defaultUsername = "Kargo"
        defaultEmail    = "[email protected]"
+
+       repoDirConfigKey         = "kargo.repoDir"
+       repoHomeDirConfigKey     = "kargo.repoHomeDir"
+       repoOriginalURLConfigKey = "kargo.repoOriginalURL"
 )
 
 // baseRepo implements the common underpinnings of a Git repository with a
@@ -26,7 +30,11 @@
        creds   *RepoCredentials
        dir     string
        homeDir string
-       url     string
+       // Store the URL two ways:
+       // 1. Exactly as it was originally provided
+       // 2. Modified in ways required for internal use by this type's methods
+       originalURL string
+       accessURL   string
 }
 
 // ClientOptions represents options for a repository-specific Git client.
@@ -218,14 +226,15 @@
                return nil
        }
 
-       lowerURL := strings.ToLower(b.url)
+       // Add username@ to the URL that will be used internally...
+       lowerURL := strings.ToLower(b.accessURL)
        if strings.HasPrefix(lowerURL, "http://";) || 
strings.HasPrefix(lowerURL, "https://";) {
-               u, err := url.Parse(b.url)
+               u, err := url.Parse(b.accessURL)
                if err != nil {
-                       return fmt.Errorf("error parsing URL %q: %w", b.url, 
err)
+                       return fmt.Errorf("error parsing URL %q: %w", 
b.accessURL, err)
                }
                u.User = url.User(b.creds.Username)
-               b.url = u.String()
+               b.accessURL = u.String()
        }
 
        return nil
@@ -238,14 +247,14 @@
 func (b *baseRepo) saveDirs() error {
        if _, err := libExec.Exec(b.buildGitCommand(
                "config",
-               "kargo.repoDir",
+               repoDirConfigKey,
                b.dir,
        )); err != nil {
                return fmt.Errorf("error saving repo dir as config: %w", err)
        }
        if _, err := libExec.Exec(b.buildGitCommand(
                "config",
-               "kargo.repoHomeDir",
+               repoHomeDirConfigKey,
                b.homeDir,
        )); err != nil {
                return fmt.Errorf("error saving repo home dir as config: %w", 
err)
@@ -253,13 +262,27 @@
        return nil
 }
 
+// saveOriginalURL saves the original URL of the repository to the repository's
+// configuration. This is useful for reliably determining this information when
+// an existing repository or working tree is loaded from the file system.
+func (b *baseRepo) saveOriginalURL() error {
+       if _, err := libExec.Exec(b.buildGitCommand(
+               "config",
+               repoOriginalURLConfigKey,
+               b.originalURL,
+       )); err != nil {
+               return fmt.Errorf("error saving original URL as config: %w", 
err)
+       }
+       return nil
+}
+
 // loadHomeDir restores the repository's home directory from the repository's
 // configuration. This is useful for reliably determining this information when
 // an existing repository or working tree is loaded from the file system.
 func (b *baseRepo) loadHomeDir() error {
        res, err := libExec.Exec(b.buildGitCommand(
                "config",
-               "kargo.repoHomeDir",
+               repoHomeDirConfigKey,
        ))
        if err != nil {
                return fmt.Errorf("error reading repo home dir from config: 
%w", err)
@@ -268,12 +291,23 @@
        return nil
 }
 
-func (b *baseRepo) loadURL() error {
-       res, err := libExec.Exec(b.buildGitCommand("config", 
"remote.origin.url"))
+// loadURLs restores the repository's original and access URLs from the
+// repository's configuration. This is useful for reliably determining this
+// information when an existing repository or working tree is loaded from the
+// file system.
+func (b *baseRepo) loadURLs() error {
+       res, err := libExec.Exec(b.buildGitCommand("config", 
repoOriginalURLConfigKey))
        if err != nil {
+               return fmt.Errorf(`error getting original URL of remote 
"origin": %w`, err)
+       }
+       b.originalURL = strings.TrimSpace(string(res))
+       if res, err = libExec.Exec(b.buildGitCommand(
+               "config",
+               "remote.origin.url",
+       )); err != nil {
                return fmt.Errorf(`error getting URL of remote "origin": %w`, 
err)
        }
-       b.url = strings.TrimSpace(string(res))
+       b.accessURL = strings.TrimSpace(string(res))
        return nil
 }
 
@@ -324,7 +358,7 @@
                "ls-remote",
                "--heads",
                "--exit-code", // Return 2 if not found
-               b.url,
+               b.accessURL,
                branch,
        ))
        var exitErr *libExec.ExitError
@@ -336,7 +370,7 @@
                return false, fmt.Errorf(
                        "error checking for existence of branch %q in remote 
repo %q: %w",
                        branch,
-                       b.url,
+                       b.originalURL,
                        err,
                )
        }
@@ -344,7 +378,7 @@
 }
 
 func (b *baseRepo) URL() string {
-       return b.url
+       return b.originalURL
 }
 
 func (b *baseRepo) setCmdHome(cmd *exec.Cmd, homeDir string) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kargo-cli-1.8.3/pkg/controller/git/repo.go 
new/kargo-cli-1.8.4/pkg/controller/git/repo.go
--- old/kargo-cli-1.8.3/pkg/controller/git/repo.go      2025-11-03 
17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/pkg/controller/git/repo.go      2025-11-25 
22:45:38.000000000 +0100
@@ -19,7 +19,8 @@
        // HomeDir returns an absolute path to the home directory of the system 
user
        // who has cloned this repo.
        HomeDir() string
-       // URL returns the remote URL of the repository.
+       // URL returns the remote URL of the repository as it was originally 
provided
+       // when the repository was cloned.
        URL() string
        WorkTree
 }
@@ -86,10 +87,11 @@
                        fmt.Errorf("error resolving symlinks in path %s: %w", 
homeDir, err)
        }
        baseRepo := &baseRepo{
-               creds:   clientOpts.Credentials,
-               dir:     filepath.Join(homeDir, "repo"),
-               homeDir: homeDir,
-               url:     repoURL,
+               creds:       clientOpts.Credentials,
+               dir:         filepath.Join(homeDir, "repo"),
+               homeDir:     homeDir,
+               originalURL: repoURL,
+               accessURL:   repoURL,
        }
        r := &repo{
                baseRepo: baseRepo,
@@ -106,6 +108,9 @@
        if err = r.saveDirs(); err != nil {
                return nil, err
        }
+       if err = r.saveOriginalURL(); err != nil {
+               return nil, err
+       }
        return r, nil
 }
 
@@ -123,11 +128,11 @@
        if opts.Depth > 0 {
                args = append(args, "--depth", fmt.Sprint(opts.Depth))
        }
-       args = append(args, r.url, r.dir)
+       args = append(args, r.accessURL, r.dir)
        cmd := r.buildGitCommand(args...)
        cmd.Dir = r.homeDir // Override the cmd.Dir that's set by 
r.buildGitCommand()
        if _, err := libExec.Exec(cmd); err != nil {
-               return fmt.Errorf("error cloning repo %q into %q: %w", r.url, 
r.dir, err)
+               return fmt.Errorf("error cloning repo %q into %q: %w", 
r.originalURL, r.dir, err)
        }
        return nil
 }
@@ -153,7 +158,7 @@
        if err := r.loadHomeDir(); err != nil {
                return nil, fmt.Errorf("error reading repo home dir from 
config: %w", err)
        }
-       if err := r.loadURL(); err != nil {
+       if err := r.loadURLs(); err != nil {
                return nil,
                        fmt.Errorf(`error reading URL of remote "origin" from 
config: %w`, err)
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kargo-cli-1.8.3/pkg/controller/git/repo_test.go 
new/kargo-cli-1.8.4/pkg/controller/git/repo_test.go
--- old/kargo-cli-1.8.3/pkg/controller/git/repo_test.go 2025-11-03 
17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/pkg/controller/git/repo_test.go 2025-11-25 
22:45:38.000000000 +0100
@@ -58,11 +58,12 @@
        require.True(t, ok)
 
        t.Run("can clone", func(t *testing.T) {
-               var repoURL *url.URL
-               repoURL, err = url.Parse(r.url)
+               require.Equal(t, testRepoURL, r.originalURL)
+               var accessURL *url.URL
+               accessURL, err = url.Parse(r.accessURL)
                require.NoError(t, err)
-               repoURL.User = nil
-               require.Equal(t, testRepoURL, repoURL.String())
+               accessURL.User = nil
+               require.Equal(t, testRepoURL, accessURL.String())
                require.NotEmpty(t, r.homeDir)
                var fi os.FileInfo
                fi, err = os.Stat(r.homeDir)
@@ -75,7 +76,7 @@
        })
 
        t.Run("can get the repo url", func(t *testing.T) {
-               require.Equal(t, r.url, r.URL())
+               require.Equal(t, r.originalURL, r.URL())
        })
 
        t.Run("can get the home dir", func(t *testing.T) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kargo-cli-1.8.3/pkg/controller/git/work_tree.go 
new/kargo-cli-1.8.4/pkg/controller/git/work_tree.go
--- old/kargo-cli-1.8.3/pkg/controller/git/work_tree.go 2025-11-03 
17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/pkg/controller/git/work_tree.go 2025-11-25 
22:45:38.000000000 +0100
@@ -112,7 +112,7 @@
        }
        res, err := libExec.Exec(w.buildGitCommand(
                "config",
-               "kargo.repoDir",
+               repoDirConfigKey,
        ))
        if err != nil {
                return nil, fmt.Errorf("error reading repo dir from config: 
%w", err)
@@ -121,7 +121,7 @@
        if err = w.loadHomeDir(); err != nil {
                return nil, fmt.Errorf("error reading repo home dir from 
config: %w", err)
        }
-       if err = w.loadURL(); err != nil {
+       if err = w.loadURLs(); err != nil {
                return nil,
                        fmt.Errorf(`error reading URL of remote "origin" from 
config: %w`, err)
        }
@@ -187,7 +187,10 @@
                // paths within the repo.
                "--",
        )); err != nil {
-               return fmt.Errorf("error checking out branch %q from repo %q: 
%w", branch, w.url, err)
+               return fmt.Errorf(
+                       "error checking out branch %q from repo %q: %w",
+                       branch, w.originalURL, err,
+               )
        }
        return nil
 }
@@ -268,7 +271,10 @@
                // paths within the repo.
                "--",
        )); err != nil {
-               return fmt.Errorf("error creating new branch %q for repo %q: 
%w", branch, w.url, err)
+               return fmt.Errorf(
+                       "error creating new branch %q for repo %q: %w",
+                       branch, w.originalURL, err,
+               )
        }
        return nil
 }
@@ -280,7 +286,10 @@
                branch,
                "--discard-changes",
        )); err != nil {
-               return fmt.Errorf("error creating orphaned branch %q for repo 
%q: %w", branch, w.url, err)
+               return fmt.Errorf(
+                       "error creating orphaned branch %q for repo %q: %w",
+                       branch, w.originalURL, err,
+               )
        }
        return w.Clean()
 }
@@ -288,7 +297,10 @@
 func (w *workTree) CurrentBranch() (string, error) {
        res, err := libExec.Exec(w.buildGitCommand("branch", "--show-current"))
        if err != nil {
-               return "", fmt.Errorf("error checking current branch for repo 
%q: %w", w.url, err)
+               return "", fmt.Errorf(
+                       "error checking current branch for repo %q: %w",
+                       w.originalURL, err,
+               )
        }
        return strings.TrimSpace(string(res)), nil
 }
@@ -300,7 +312,7 @@
                "--force",
                branch,
        )); err != nil {
-               return fmt.Errorf("error deleting branch %q for repo %q: %w", 
branch, w.url, err)
+               return fmt.Errorf("error deleting branch %q for repo %q: %w", 
branch, w.accessURL, err)
        }
        return nil
 }
@@ -413,7 +425,10 @@
 
        commitsBytes, err := libExec.Exec(w.buildGitCommand(args...))
        if err != nil {
-               return nil, fmt.Errorf("error listing commits for repo %q: %w", 
w.url, err)
+               return nil, fmt.Errorf(
+                       "error listing commits for repo %q: %w",
+                       w.originalURL, err,
+               )
        }
 
        var commits []CommitMetadata
@@ -497,7 +512,10 @@
 
 func (w *workTree) ListTags() ([]TagMetadata, error) {
        if _, err := libExec.Exec(w.buildGitCommand("fetch", "origin", 
"--tags")); err != nil {
-               return nil, fmt.Errorf("error fetching tags from repo %q: %w", 
w.url, err)
+               return nil, fmt.Errorf(
+                       "error fetching tags from repo %q: %w",
+                       w.originalURL, err,
+               )
        }
 
        // These formats are quite complex, so we break them down into smaller
@@ -533,7 +551,10 @@
                "refs/tags",
        ))
        if err != nil {
-               return nil, fmt.Errorf("error listing tags for repo %q: %w", 
w.url, err)
+               return nil, fmt.Errorf(
+                       "error listing tags for repo %q: %w",
+                       w.originalURL, err,
+               )
        }
 
        var tags []TagMetadata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kargo-cli-1.8.3/pkg/controller/management/projects/projects.go 
new/kargo-cli-1.8.4/pkg/controller/management/projects/projects.go
--- old/kargo-cli-1.8.3/pkg/controller/management/projects/projects.go  
2025-11-03 17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/pkg/controller/management/projects/projects.go  
2025-11-25 22:45:38.000000000 +0100
@@ -815,7 +815,7 @@
        }
        if creator, ok := 
project.Annotations[kargoapi.AnnotationKeyCreateActor]; ok {
                if parts := strings.SplitN(creator, ":", 2); len(parts) == 2 {
-                       saAnnotations[rbacapi.AnnotationKeyOIDCClaims] = 
fmt.Sprintf("{%q:%q}", parts[0], parts[1])
+                       saAnnotations[rbacapi.AnnotationKeyOIDCClaims] = 
fmt.Sprintf("{%q:[%q]}", parts[0], parts[1])
                }
        }
        for _, saName := range allRoles {
@@ -861,9 +861,9 @@
                                        Resources: []string{"events"},
                                        Verbs:     []string{"get", "list", 
"watch"},
                                },
-                               { // For managing project-level access and 
credentials
+                               { // For managing project-level access, 
credentials, and other config
                                        APIGroups: []string{""},
-                                       Resources: []string{"secrets", 
"serviceaccounts"},
+                                       Resources: []string{"configmaps", 
"secrets", "serviceaccounts"},
                                        Verbs:     []string{"*"},
                                },
                                { // For managing project-level access
@@ -915,7 +915,7 @@
                        Rules: []rbacv1.PolicyRule{
                                {
                                        APIGroups: []string{""},
-                                       Resources: []string{"events", 
"serviceaccounts"},
+                                       Resources: []string{"configmaps", 
"events", "serviceaccounts"},
                                        Verbs:     []string{"get", "list", 
"watch"},
                                },
                                {
@@ -944,9 +944,9 @@
                                },
                        },
                        Rules: []rbacv1.PolicyRule{
-                               { // For viewing events and serviceaccounts
+                               { // For viewing configmaps, events, and 
serviceaccounts
                                        APIGroups: []string{""},
-                                       Resources: []string{"events", 
"serviceaccounts"},
+                                       Resources: []string{"configmaps", 
"events", "serviceaccounts"},
                                        Verbs:     []string{"get", "list", 
"watch"},
                                },
                                { // For viewing project-level access
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kargo-cli-1.8.3/pkg/controller/management/projects/projects_test.go 
new/kargo-cli-1.8.4/pkg/controller/management/projects/projects_test.go
--- old/kargo-cli-1.8.3/pkg/controller/management/projects/projects_test.go     
2025-11-03 17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/pkg/controller/management/projects/projects_test.go     
2025-11-25 22:45:38.000000000 +0100
@@ -19,6 +19,7 @@
        "sigs.k8s.io/controller-runtime/pkg/client/fake"
        "sigs.k8s.io/controller-runtime/pkg/client/interceptor"
 
+       rbacapi "github.com/akuity/kargo/api/rbac/v1alpha1"
        kargoapi "github.com/akuity/kargo/api/v1alpha1"
        "github.com/akuity/kargo/pkg/conditions"
 )
@@ -1937,10 +1938,17 @@
                                        return nil
                                },
                                createServiceAccountFn: func(
-                                       context.Context,
-                                       client.Object,
-                                       ...client.CreateOption,
+                                       _ context.Context,
+                                       obj client.Object,
+                                       _ ...client.CreateOption,
                                ) error {
+                                       sa, ok := obj.(*corev1.ServiceAccount)
+                                       require.True(t, ok)
+                                       require.Equal(
+                                               t,
+                                               `{"email":["[email protected]"]}`,
+                                               
sa.Annotations[rbacapi.AnnotationKeyOIDCClaims],
+                                       )
                                        return nil
                                },
                                createRoleFn: func(
@@ -1965,12 +1973,16 @@
        }
        for _, testCase := range testCases {
                t.Run(testCase.name, func(t *testing.T) {
+                       p := &kargoapi.Project{
+                               ObjectMeta: metav1.ObjectMeta{
+                                       Annotations: map[string]string{
+                                               
kargoapi.AnnotationKeyCreateActor: "email:[email protected]",
+                                       },
+                               },
+                       }
                        testCase.assertions(
                                t,
-                               testCase.reconciler.ensureDefaultUserRoles(
-                                       context.Background(),
-                                       &kargoapi.Project{},
-                               ),
+                               
testCase.reconciler.ensureDefaultUserRoles(context.Background(), p),
                        )
                })
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kargo-cli-1.8.3/pkg/health/checker/builtin/argocd_test.go 
new/kargo-cli-1.8.4/pkg/health/checker/builtin/argocd_test.go
--- old/kargo-cli-1.8.3/pkg/health/checker/builtin/argocd_test.go       
2025-11-03 17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/pkg/health/checker/builtin/argocd_test.go       
2025-11-25 22:45:38.000000000 +0100
@@ -305,7 +305,7 @@
                                OperationState: &argocd.OperationState{
                                        Phase: argocd.OperationSucceeded,
                                        FinishedAt: &metav1.Time{
-                                               Time: 
time.Now().Add(-1*appHealthCooldownDuration + time.Second),
+                                               Time: 
time.Now().Add(-1*appHealthCooldownDuration + appHealthCooldownDuration/2),
                                        },
                                },
                                Health: argocd.HealthStatus{Status: 
argocd.HealthStatusHealthy},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kargo-cli-1.8.3/pkg/server/rbac/policy_rules.go 
new/kargo-cli-1.8.4/pkg/server/rbac/policy_rules.go
--- old/kargo-cli-1.8.3/pkg/server/rbac/policy_rules.go 2025-11-03 
17:35:27.000000000 +0100
+++ new/kargo-cli-1.8.4/pkg/server/rbac/policy_rules.go 2025-11-25 
22:45:38.000000000 +0100
@@ -180,13 +180,13 @@
 // nolint: goconst
 func validateResourceTypeName(resource string) error {
        switch resource {
-       case "analysisruns", "analysistemplates", "events", "freights",
+       case "analysisruns", "analysistemplates", "configmaps", "events", 
"freights",
                "freights/status", "projectconfigs", "promotions", 
"rolebindings", "roles",
                "secrets", "serviceaccounts", "stages", "warehouses":
                return nil
-       case "analysisrun", "analysistemplate", "event", "freight", 
"projectconfig",
-               "promotion", "role", "rolebinding", "secret", "serviceaccount", 
"stage",
-               "warehouse":
+       case "analysisrun", "analysistemplate", "configmap", "event", "freight",
+               "projectconfig", "promotion", "role", "rolebinding", "secret",
+               "serviceaccount", "stage", "warehouse":
                return apierrors.NewBadRequest(
                        fmt.Sprintf(`unrecognized resource type %q; did you 
mean "%ss"?`, resource, resource),
                )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kargo-cli-1.8.3/ui/src/features/freight-timeline/open-container-initiative-utils.ts
 
new/kargo-cli-1.8.4/ui/src/features/freight-timeline/open-container-initiative-utils.ts
--- 
old/kargo-cli-1.8.3/ui/src/features/freight-timeline/open-container-initiative-utils.ts
     2025-11-03 17:35:27.000000000 +0100
+++ 
new/kargo-cli-1.8.4/ui/src/features/freight-timeline/open-container-initiative-utils.ts
     2025-11-25 22:45:38.000000000 +0100
@@ -21,6 +21,10 @@
     return url;
   }
 
+  if (!url) {
+    return '';
+  }
+
   return getGitCommitURL(url, revision);
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kargo-cli-1.8.3/ui/src/features/project/pipelines/nodes/stage-freight.tsx 
new/kargo-cli-1.8.4/ui/src/features/project/pipelines/nodes/stage-freight.tsx
--- 
old/kargo-cli-1.8.3/ui/src/features/project/pipelines/nodes/stage-freight.tsx   
    2025-11-03 17:35:27.000000000 +0100
+++ 
new/kargo-cli-1.8.4/ui/src/features/project/pipelines/nodes/stage-freight.tsx   
    2025-11-25 22:45:38.000000000 +0100
@@ -212,7 +212,7 @@
     }
 
     return (
-      <Flex vertical gap={2}>
+      <Flex vertical gap={2} align='center'>
         {TagComponent}
         <Typography.Text
           className='text-[10px] text-center'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kargo-cli-1.8.3/ui/src/features/project/settings/views/config-maps/config-map-yaml-example.ts
 
new/kargo-cli-1.8.4/ui/src/features/project/settings/views/config-maps/config-map-yaml-example.ts
--- 
old/kargo-cli-1.8.3/ui/src/features/project/settings/views/config-maps/config-map-yaml-example.ts
   2025-11-03 17:35:27.000000000 +0100
+++ 
new/kargo-cli-1.8.4/ui/src/features/project/settings/views/config-maps/config-map-yaml-example.ts
   2025-11-25 22:45:38.000000000 +0100
@@ -1,11 +1,11 @@
-export const configMapYAMLExample = {
+export const configMapYAMLExample = (project?: string) => ({
   apiVersion: 'v1',
   kind: 'ConfigMap',
   metadata: {
     name: 'cm-1',
-    namespace: 'kargo-demo'
+    namespace: project || 'kargo-demo'
   },
   data: {
     foo: 'bar'
   }
-};
+});
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kargo-cli-1.8.3/ui/src/features/project/settings/views/config-maps/upsert-config-maps.tsx
 
new/kargo-cli-1.8.4/ui/src/features/project/settings/views/config-maps/upsert-config-maps.tsx
--- 
old/kargo-cli-1.8.3/ui/src/features/project/settings/views/config-maps/upsert-config-maps.tsx
       2025-11-03 17:35:27.000000000 +0100
+++ 
new/kargo-cli-1.8.4/ui/src/features/project/settings/views/config-maps/upsert-config-maps.tsx
       2025-11-25 22:45:38.000000000 +0100
@@ -34,7 +34,7 @@
 
   const configMapYaml = decodeRawData(getConfigMapQuery.data);
 
-  const [yaml, setYaml] = useState(stringify(configMapYAMLExample));
+  const [yaml, setYaml] = 
useState(stringify(configMapYAMLExample(props.project)));
 
   useEffect(() => {
     if (configMapYaml) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kargo-cli-1.8.3/ui/src/features/project/settings/views/roles/rule-editor.tsx
 
new/kargo-cli-1.8.4/ui/src/features/project/settings/views/roles/rule-editor.tsx
--- 
old/kargo-cli-1.8.3/ui/src/features/project/settings/views/roles/rule-editor.tsx
    2025-11-03 17:35:27.000000000 +0100
+++ 
new/kargo-cli-1.8.4/ui/src/features/project/settings/views/roles/rule-editor.tsx
    2025-11-25 22:45:38.000000000 +0100
@@ -11,6 +11,7 @@
 
 const availableResources = [
   // core
+  'configmaps',
   'events',
   'secrets',
   'serviceaccounts',

++++++ kargo-cli.obsinfo ++++++
--- /var/tmp/diff_new_pack.HJSXKi/_old  2025-11-26 17:18:37.958279132 +0100
+++ /var/tmp/diff_new_pack.HJSXKi/_new  2025-11-26 17:18:37.958279132 +0100
@@ -1,5 +1,5 @@
 name: kargo-cli
-version: 1.8.3
-mtime: 1762187727
-commit: f9635a1b6479f96d11bfbe690f72b786764ed418
+version: 1.8.4
+mtime: 1764107138
+commit: dc38d05ff871ace7ae40fc23ef333ca717c96909
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/kargo-cli/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.kargo-cli.new.14147/vendor.tar.gz differ: char 13, 
line 1

Reply via email to