Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package updatecli for openSUSE:Factory checked in at 2025-07-14 10:52:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/updatecli (Old) and /work/SRC/openSUSE:Factory/.updatecli.new.7373 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "updatecli" Mon Jul 14 10:52:05 2025 rev:24 rq:1292492 version:0.104.0 Changes: -------- --- /work/SRC/openSUSE:Factory/updatecli/updatecli.changes 2025-07-09 17:29:38.122621059 +0200 +++ /work/SRC/openSUSE:Factory/.updatecli.new.7373/updatecli.changes 2025-07-14 10:57:47.559780198 +0200 @@ -1,0 +2,25 @@ +Sun Jul 13 12:04:24 UTC 2025 - Johannes Kastl <opensuse_buildserv...@ojkastl.de> + +- Update to version 0.104.0: + * Features + - feat: Allow to customize temporary working branch created by + Updatecli @olblak (#5589) + * Bug Fixes + - fix: avoid loading partial when not needed @olblak (#5618) + * Maintenance + - deps: bump golangci-lint to v2.2.2 @updateclibot[bot] (#5619) + - deps(go): bump module golang.org/x/net to v0.42.0 + @updateclibot[bot] (#5617) + - deps(go): bump module golang.org/x/mod to v0.26.0 + @updateclibot[bot] (#5593) + - deps(go): bump module golang.org/x/text to v0.27.0 + @updateclibot[bot] (#5600) + - deps: Bump Golang version to 1.24.5 @updateclibot[bot] + (#5579) + - deps(go): bump module github.com/fluxcd/source-controller/api + to v1.6.2 @updateclibot[bot] (#5588) + - deps: bump golangci-lint to v2.2.1 @updateclibot[bot] (#5570) + - deps(go): bump module helm.sh/helm/v3 to v3.18.4 + @updateclibot[bot] (#5556) + +------------------------------------------------------------------- Old: ---- updatecli-0.103.1.obscpio New: ---- updatecli-0.104.0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ updatecli.spec ++++++ --- /var/tmp/diff_new_pack.gs03H4/_old 2025-07-14 10:57:50.755912694 +0200 +++ /var/tmp/diff_new_pack.gs03H4/_new 2025-07-14 10:57:50.759912860 +0200 @@ -17,7 +17,7 @@ Name: updatecli -Version: 0.103.1 +Version: 0.104.0 Release: 0 Summary: A Declarative Dependency Management tool License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.gs03H4/_old 2025-07-14 10:57:50.975921815 +0200 +++ /var/tmp/diff_new_pack.gs03H4/_new 2025-07-14 10:57:51.027923970 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/updatecli/updatecli</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v0.103.1</param> + <param name="revision">v0.104.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.gs03H4/_old 2025-07-14 10:57:51.171929940 +0200 +++ /var/tmp/diff_new_pack.gs03H4/_new 2025-07-14 10:57:51.207931433 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/updatecli/updatecli</param> - <param name="changesrevision">7ecaffd7f134d85fc4481f194372d1d52c4dbe08</param></service></servicedata> + <param name="changesrevision">ca9e27fe59af8a55ea3dde94a7e8a0bfe35b4655</param></service></servicedata> (No newline at EOF) ++++++ updatecli-0.103.1.obscpio -> updatecli-0.104.0.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/README.adoc new/updatecli-0.104.0/README.adoc --- old/updatecli-0.103.1/README.adoc 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/README.adoc 2025-07-13 08:25:50.000000000 +0200 @@ -52,7 +52,7 @@ Once you have the three files locally, you can execute the following command ``` -cosign verify-blob --certificate-identity-regexp "https://github.com/updatecli/updatecli" --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' --cert https://github.com/updatecli/updatecli/releases/download/v0.103.0/checksums.txt.pem --signature https://github.com/updatecli/updatecli/releases/download/v0.103.0/checksums.txt.sig checksums.txt +cosign verify-blob --certificate-identity-regexp "https://github.com/updatecli/updatecli" --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' --cert https://github.com/updatecli/updatecli/releases/download/v0.103.1/checksums.txt.pem --signature https://github.com/updatecli/updatecli/releases/download/v0.103.1/checksums.txt.sig checksums.txt ``` A successful output looks like @@ -76,7 +76,7 @@ **Verify Container signature** ``` -cosign verify --certificate-identity-regexp "https://github.com/updatecli/updatecli" --certificate-oidc-issuer "https://token.actions.githubusercontent.com" ghcr.io/updatecli/updatecli:v0.103.0 +cosign verify --certificate-identity-regexp "https://github.com/updatecli/updatecli" --certificate-oidc-issuer "https://token.actions.githubusercontent.com" ghcr.io/updatecli/updatecli:v0.103.1 ``` == Documentation diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/go.mod new/updatecli-0.104.0/go.mod --- old/updatecli-0.103.1/go.mod 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/go.mod 2025-07-13 08:25:50.000000000 +0200 @@ -1,6 +1,6 @@ module github.com/updatecli/updatecli -go 1.24.4 +go 1.24.5 require ( dario.cat/mergo v1.0.2 @@ -26,7 +26,7 @@ github.com/stretchr/testify v1.10.0 golang.org/x/oauth2 v0.30.0 gopkg.in/yaml.v3 v3.0.1 - helm.sh/helm/v3 v3.18.3 + helm.sh/helm/v3 v3.18.4 sigs.k8s.io/yaml v1.5.0 ) @@ -38,7 +38,7 @@ github.com/beevik/etree v1.5.1 github.com/drone/go-scm v1.40.1 github.com/fluxcd/helm-controller/api v1.3.0 - github.com/fluxcd/source-controller/api v1.6.0 + github.com/fluxcd/source-controller/api v1.6.2 github.com/goccy/go-yaml v1.18.0 github.com/google/go-containerregistry v0.20.5 github.com/google/go-github/v69 v69.2.0 @@ -60,7 +60,7 @@ github.com/yuin/goldmark v1.7.12 github.com/zclconf/go-cty v1.16.3 golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 - golang.org/x/text v0.26.0 + golang.org/x/text v0.27.0 golang.org/x/time v0.11.0 gopkg.in/ini.v1 v1.67.0 oras.land/oras-go/v2 v2.6.0 @@ -300,29 +300,29 @@ github.com/xlab/treeprint v1.2.0 // indirect gitlab.com/gitlab-org/api/client-go v0.129.0 go.opencensus.io v0.24.0 // indirect - golang.org/x/crypto v0.39.0 // indirect - golang.org/x/mod v0.25.0 - golang.org/x/net v0.41.0 - golang.org/x/sync v0.15.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/term v0.32.0 // indirect - golang.org/x/tools v0.33.0 // indirect + golang.org/x/crypto v0.40.0 // indirect + golang.org/x/mod v0.26.0 + golang.org/x/net v0.42.0 + golang.org/x/sync v0.16.0 // indirect + golang.org/x/sys v0.34.0 // indirect + golang.org/x/term v0.33.0 // indirect + golang.org/x/tools v0.34.0 // indirect google.golang.org/api v0.215.0 // indirect google.golang.org/grpc v1.68.1 // indirect google.golang.org/protobuf v1.36.5 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 - k8s.io/api v0.33.1 // indirect - k8s.io/apiextensions-apiserver v0.33.1 // indirect - k8s.io/apimachinery v0.33.1 // indirect - k8s.io/apiserver v0.33.1 // indirect - k8s.io/cli-runtime v0.33.1 // indirect - k8s.io/client-go v0.33.1 // indirect - k8s.io/component-base v0.33.1 // indirect + k8s.io/api v0.33.2 // indirect + k8s.io/apiextensions-apiserver v0.33.2 // indirect + k8s.io/apimachinery v0.33.2 // indirect + k8s.io/apiserver v0.33.2 // indirect + k8s.io/cli-runtime v0.33.2 // indirect + k8s.io/client-go v0.33.2 // indirect + k8s.io/component-base v0.33.2 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect - k8s.io/kubectl v0.33.1 // indirect + k8s.io/kubectl v0.33.2 // indirect k8s.io/utils v0.0.0-20250321185631-1f6e0b77f77e // indirect sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect sigs.k8s.io/kustomize/api v0.19.0 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/go.sum new/updatecli-0.104.0/go.sum --- old/updatecli-0.103.1/go.sum 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/go.sum 2025-07-13 08:25:50.000000000 +0200 @@ -284,8 +284,8 @@ github.com/fluxcd/pkg/apis/kustomize v1.10.0/go.mod h1:UsqMV4sqNa1Yg0pmTsdkHRJr7bafBOENIJoAN+3ezaQ= github.com/fluxcd/pkg/apis/meta v1.12.0 h1:XW15TKZieC2b7MN8VS85stqZJOx+/b8jATQ/xTUhVYg= github.com/fluxcd/pkg/apis/meta v1.12.0/go.mod h1:+son1Va60x2eiDcTwd7lcctbI6C+K3gM7R+ULmEq1SI= -github.com/fluxcd/source-controller/api v1.6.0 h1:IxfjUczJ2pzbXIef6iQ0RHEH4AYA9anJfTGK8dzwODM= -github.com/fluxcd/source-controller/api v1.6.0/go.mod h1:ZJcAi0nemsnBxjVgmJl0WQzNvB0rMETxQMTdoFosmMw= +github.com/fluxcd/source-controller/api v1.6.2 h1:UmodAeqLIeF29HdTqf2GiacZyO+hJydJlepDaYsMvhc= +github.com/fluxcd/source-controller/api v1.6.2/go.mod h1:ZJcAi0nemsnBxjVgmJl0WQzNvB0rMETxQMTdoFosmMw= github.com/foxcpp/go-mockdns v1.1.0 h1:jI0rD8M0wuYAxL7r/ynTrCQQq0BVqfB99Vgk7DlmewI= github.com/foxcpp/go-mockdns v1.1.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -826,8 +826,8 @@ golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM= -golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= +golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM= +golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= @@ -838,8 +838,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 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.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= -golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= +golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -860,8 +860,8 @@ golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw= -golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= +golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs= +golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= @@ -872,8 +872,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= -golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -908,8 +908,8 @@ golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA= +golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -918,8 +918,8 @@ golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= -golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= -golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= +golang.org/x/term v0.33.0 h1:NuFncQrRcaRvVmgRkvM3j/F00gWIAlcmlB8ACEKmGIg= +golang.org/x/term v0.33.0/go.mod h1:s18+ql9tYWp1IfpV9DmCtQDDSRBUjKaw9M1eAv5UeF0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -928,8 +928,8 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= -golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= +golang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4= +golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -943,8 +943,8 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= -golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= +golang.org/x/tools v0.34.0 h1:qIpSLOxeCYGg9TrcJokLBG4KFA6d795g0xkBkiESGlo= +golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1012,30 +1012,30 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q= gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA= -helm.sh/helm/v3 v3.18.3 h1:+cvyGKgs7Jt7BN3Klmb4SsG4IkVpA7GAZVGvMz6VO4I= -helm.sh/helm/v3 v3.18.3/go.mod h1:wUc4n3txYBocM7S9RjTeZBN9T/b5MjffpcSsWEjSIpw= +helm.sh/helm/v3 v3.18.4 h1:pNhnHM3nAmDrxz6/UC+hfjDY4yeDATQCka2/87hkZXQ= +helm.sh/helm/v3 v3.18.4/go.mod h1:WVnwKARAw01iEdjpEkP7Ii1tT1pTPYfM1HsakFKM3LI= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.33.1 h1:tA6Cf3bHnLIrUK4IqEgb2v++/GYUtqiu9sRVk3iBXyw= -k8s.io/api v0.33.1/go.mod h1:87esjTn9DRSRTD4fWMXamiXxJhpOIREjWOSjsW1kEHw= -k8s.io/apiextensions-apiserver v0.33.1 h1:N7ccbSlRN6I2QBcXevB73PixX2dQNIW0ZRuguEE91zI= -k8s.io/apiextensions-apiserver v0.33.1/go.mod h1:uNQ52z1A1Gu75QSa+pFK5bcXc4hq7lpOXbweZgi4dqA= -k8s.io/apimachinery v0.33.1 h1:mzqXWV8tW9Rw4VeW9rEkqvnxj59k1ezDUl20tFK/oM4= -k8s.io/apimachinery v0.33.1/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM= -k8s.io/apiserver v0.33.1 h1:yLgLUPDVC6tHbNcw5uE9mo1T6ELhJj7B0geifra3Qdo= -k8s.io/apiserver v0.33.1/go.mod h1:VMbE4ArWYLO01omz+k8hFjAdYfc3GVAYPrhP2tTKccs= -k8s.io/cli-runtime v0.33.1 h1:TvpjEtF71ViFmPeYMj1baZMJR4iWUEplklsUQ7D3quA= -k8s.io/cli-runtime v0.33.1/go.mod h1:9dz5Q4Uh8io4OWCLiEf/217DXwqNgiTS/IOuza99VZE= -k8s.io/client-go v0.33.1 h1:ZZV/Ks2g92cyxWkRRnfUDsnhNn28eFpt26aGc8KbXF4= -k8s.io/client-go v0.33.1/go.mod h1:JAsUrl1ArO7uRVFWfcj6kOomSlCv+JpvIsp6usAGefA= -k8s.io/component-base v0.33.1 h1:EoJ0xA+wr77T+G8p6T3l4efT2oNwbqBVKR71E0tBIaI= -k8s.io/component-base v0.33.1/go.mod h1:guT/w/6piyPfTgq7gfvgetyXMIh10zuXA6cRRm3rDuY= +k8s.io/api v0.33.2 h1:YgwIS5jKfA+BZg//OQhkJNIfie/kmRsO0BmNaVSimvY= +k8s.io/api v0.33.2/go.mod h1:fhrbphQJSM2cXzCWgqU29xLDuks4mu7ti9vveEnpSXs= +k8s.io/apiextensions-apiserver v0.33.2 h1:6gnkIbngnaUflR3XwE1mCefN3YS8yTD631JXQhsU6M8= +k8s.io/apiextensions-apiserver v0.33.2/go.mod h1:IvVanieYsEHJImTKXGP6XCOjTwv2LUMos0YWc9O+QP8= +k8s.io/apimachinery v0.33.2 h1:IHFVhqg59mb8PJWTLi8m1mAoepkUNYmptHsV+Z1m5jY= +k8s.io/apimachinery v0.33.2/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM= +k8s.io/apiserver v0.33.2 h1:KGTRbxn2wJagJowo29kKBp4TchpO1DRO3g+dB/KOJN4= +k8s.io/apiserver v0.33.2/go.mod h1:9qday04wEAMLPWWo9AwqCZSiIn3OYSZacDyu/AcoM/M= +k8s.io/cli-runtime v0.33.2 h1:koNYQKSDdq5AExa/RDudXMhhtFasEg48KLS2KSAU74Y= +k8s.io/cli-runtime v0.33.2/go.mod h1:gnhsAWpovqf1Zj5YRRBBU7PFsRc6NkEkwYNQE+mXL88= +k8s.io/client-go v0.33.2 h1:z8CIcc0P581x/J1ZYf4CNzRKxRvQAwoAolYPbtQes+E= +k8s.io/client-go v0.33.2/go.mod h1:9mCgT4wROvL948w6f6ArJNb7yQd7QsvqavDeZHvNmHo= +k8s.io/component-base v0.33.2 h1:sCCsn9s/dG3ZrQTX/Us0/Sx2R0G5kwa0wbZFYoVp/+0= +k8s.io/component-base v0.33.2/go.mod h1:/41uw9wKzuelhN+u+/C59ixxf4tYQKW7p32ddkYNe2k= 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-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4= k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff/go.mod h1:5jIi+8yX4RIb8wk3XwBo5Pq2ccx4FP10ohkbSKCZoK8= -k8s.io/kubectl v0.33.1 h1:OJUXa6FV5bap6iRy345ezEjU9dTLxqv1zFTVqmeHb6A= -k8s.io/kubectl v0.33.1/go.mod h1:Z07pGqXoP4NgITlPRrnmiM3qnoo1QrK1zjw85Aiz8J0= +k8s.io/kubectl v0.33.2 h1:7XKZ6DYCklu5MZQzJe+CkCjoGZwD1wWl7t/FxzhMz7Y= +k8s.io/kubectl v0.33.2/go.mod h1:8rC67FB8tVTYraovAGNi/idWIK90z2CHFNMmGJZJ3KI= k8s.io/utils v0.0.0-20250321185631-1f6e0b77f77e h1:KqK5c/ghOm8xkHYhlodbp6i6+r+ChV2vuAuVRdFbLro= k8s.io/utils v0.0.0-20250321185631-1f6e0b77f77e/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= oras.land/oras-go/v2 v2.6.0 h1:X4ELRsiGkrbeox69+9tzTu492FMUu7zJQW6eJU+I2oc= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/pkg/core/engine/utils.go new/updatecli-0.104.0/pkg/core/engine/utils.go --- old/updatecli-0.103.1/pkg/core/engine/utils.go 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/pkg/core/engine/utils.go 2025-07-13 08:25:50.000000000 +0200 @@ -15,6 +15,12 @@ // a list of files that can be used as helpers. func sanitizeUpdatecliManifestFilePath(rawFilePaths []string) (sanitizedFilePaths, sanitizedPartialPaths []string) { for _, rawFilePath := range rawFilePaths { + // Only sanitize Updatecli manifest which are not partial manifests. + rawBaseFilePath := filepath.Base(rawFilePath) + if strings.HasPrefix(rawBaseFilePath, "_") { + continue + } + rawFileInfo, err := os.Stat(rawFilePath) if err != nil { logrus.Error(fmt.Sprintf("Loading Updatecli manifest %q: %s", rawFilePath, err)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/pkg/plugins/scms/bitbucket/main.go new/updatecli-0.104.0/pkg/plugins/scms/bitbucket/main.go --- old/updatecli-0.103.1/pkg/plugins/scms/bitbucket/main.go 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/pkg/plugins/scms/bitbucket/main.go 2025-07-13 08:25:50.000000000 +0200 @@ -101,6 +101,31 @@ // The working branch created by Updatecli looks like "updatecli_<pipelineID>". // The working branch can be disabled using the "workingBranch" parameter set to false. Branch string `yaml:",omitempty"` + // WorkingBranchPrefix defines the prefix used to create a working branch. + // + // compatible: + // * scm + // + // default: + // updatecli + // + // remark: + // A working branch is composed of three components: + // 1. WorkingBranchPrefix + // 2. Target Branch + // 3. PipelineID + // + // If WorkingBranchPrefix is set to '', then + // the working branch will look like "<branch>_<pipelineID>". + WorkingBranchPrefix *string `yaml:",omitempty"` + // WorkingBranchSeparator defines the separator used to create a working branch. + // + // compatible: + // * scm + // + // default: + // "_" + WorkingBranchSeparator *string `yaml:",omitempty"` // "submodules" defines if Updatecli should checkout submodules. // // compatible: @@ -123,11 +148,13 @@ // Spec contains inputs coming from updatecli configuration Spec Spec // client handle the api authentication - client *scm.Client - pipelineID string - nativeGitHandler gitgeneric.GitHandler - workingBranch bool - force bool + client *scm.Client + pipelineID string + nativeGitHandler gitgeneric.GitHandler + workingBranch bool + workingBranchPrefix string + workingBranchSeparator string + force bool } // New returns a new valid Bitbucket Cloud object. @@ -163,6 +190,16 @@ s.Branch = "main" } + workingBranchhPrefix := "updatecli" + if s.WorkingBranchPrefix != nil { + workingBranchhPrefix = *s.WorkingBranchPrefix + } + + workingBranchSeparator := "_" + if s.WorkingBranchSeparator != nil { + workingBranchSeparator = *s.WorkingBranchSeparator + } + workingBranch := true if s.WorkingBranch != nil { workingBranch = *s.WorkingBranch @@ -200,12 +237,14 @@ nativeGitHandler := gitgeneric.GoGit{} g := Bitbucket{ - Spec: s, - client: c, - pipelineID: pipelineID, - nativeGitHandler: &nativeGitHandler, - workingBranch: workingBranch, - force: force, + Spec: s, + client: c, + pipelineID: pipelineID, + nativeGitHandler: &nativeGitHandler, + workingBranch: workingBranch, + workingBranchPrefix: workingBranchhPrefix, + workingBranchSeparator: workingBranchSeparator, + force: force, } g.setDirectory() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/pkg/plugins/scms/bitbucket/scm.go new/updatecli-0.104.0/pkg/plugins/scms/bitbucket/scm.go --- old/updatecli-0.103.1/pkg/plugins/scms/bitbucket/scm.go 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/pkg/plugins/scms/bitbucket/scm.go 2025-07-13 08:25:50.000000000 +0200 @@ -3,6 +3,7 @@ import ( "fmt" "os" + "strings" "github.com/sirupsen/logrus" "github.com/updatecli/updatecli/pkg/plugins/resources/bitbucket/client" @@ -14,7 +15,8 @@ targetBranch = b.Spec.Branch if len(b.pipelineID) > 0 && b.workingBranch { - workingBranch = b.nativeGitHandler.SanitizeBranchName(fmt.Sprintf("updatecli_%s_%s", targetBranch, b.pipelineID)) + workingBranch = b.nativeGitHandler.SanitizeBranchName( + strings.Join([]string{b.workingBranchPrefix, targetBranch, b.pipelineID}, b.workingBranchSeparator)) } return sourceBranch, workingBranch, targetBranch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/pkg/plugins/scms/git/main.go new/updatecli-0.104.0/pkg/plugins/scms/git/main.go --- old/updatecli-0.103.1/pkg/plugins/scms/git/main.go 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/pkg/plugins/scms/git/main.go 2025-07-13 08:25:50.000000000 +0200 @@ -59,6 +59,31 @@ // For more information, please refer to the following issue: // https://github.com/updatecli/updatecli/issues/1139 Branch string `yaml:",omitempty"` + // WorkingBranchPrefix defines the prefix used to create a working branch. + // + // compatible: + // * scm + // + // default: + // updatecli + // + // remark: + // A working branch is composed of three components: + // 1. WorkingBranchPrefix + // 2. Target Branch + // 3. PipelineID + // + // If WorkingBranchPrefix is set to '', then + // the working branch will look like "<branch>_<pipelineID>". + WorkingBranchPrefix *string `yaml:",omitempty"` + // WorkingBranchSeparator defines the separator used to create a working branch. + // + // compatible: + // * scm + // + // default: + // "_" + WorkingBranchSeparator *string `yaml:",omitempty"` // "user" specifies the user associated with new git commit messages created by Updatecli // // compatible: @@ -136,8 +161,10 @@ // nativeGitHandler is the native git handler nativeGitHandler gitgeneric.GitHandler // workingBranch is used to create a temporary branch to work on. - workingBranch bool - pipelineID string + workingBranch bool + workingBranchPrefix string + workingBranchSeparator string + pipelineID string } // New returns a new git object @@ -154,6 +181,16 @@ s.Branch = "main" } + workingBranchPrefix := "updatecli" + if s.WorkingBranchPrefix != nil { + workingBranchPrefix = *s.WorkingBranchPrefix + } + + workingBranchSeparator := "_" + if s.WorkingBranchSeparator != nil { + workingBranchSeparator = *s.WorkingBranchSeparator + } + var workingBranch bool switch s.WorkingBranch { case nil: @@ -181,10 +218,12 @@ nativeGitHandler := gitgeneric.GoGit{} return &Git{ - spec: s, - nativeGitHandler: &nativeGitHandler, - workingBranch: workingBranch, - pipelineID: pipelineID, + spec: s, + nativeGitHandler: &nativeGitHandler, + workingBranch: workingBranch, + workingBranchPrefix: workingBranchPrefix, + workingBranchSeparator: workingBranchSeparator, + pipelineID: pipelineID, }, nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/pkg/plugins/scms/git/scm.go new/updatecli-0.104.0/pkg/plugins/scms/git/scm.go --- old/updatecli-0.103.1/pkg/plugins/scms/git/scm.go 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/pkg/plugins/scms/git/scm.go 2025-07-13 08:25:50.000000000 +0200 @@ -1,8 +1,8 @@ package git import ( - "fmt" "os" + "strings" "github.com/sirupsen/logrus" ) @@ -13,7 +13,8 @@ targetBranch = g.spec.Branch if g.workingBranch && len(g.pipelineID) > 0 { - workingBranch = g.nativeGitHandler.SanitizeBranchName(fmt.Sprintf("updatecli_%s_%s", targetBranch, g.pipelineID)) + workingBranch = g.nativeGitHandler.SanitizeBranchName( + strings.Join([]string{g.workingBranchPrefix, targetBranch, g.pipelineID}, g.workingBranchSeparator)) } return sourceBranch, workingBranch, targetBranch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/pkg/plugins/scms/gitea/main.go new/updatecli-0.104.0/pkg/plugins/scms/gitea/main.go --- old/updatecli-0.103.1/pkg/plugins/scms/gitea/main.go 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/pkg/plugins/scms/gitea/main.go 2025-07-13 08:25:50.000000000 +0200 @@ -101,6 +101,31 @@ // The working branch created by Updatecli looks like "updatecli_<pipelineID>". // The working branch can be disabled using the "workingBranch" parameter set to false. Branch string `yaml:",omitempty"` + // WorkingBranchPrefix defines the prefix used to create a working branch. + // + // compatible: + // * scm + // + // default: + // updatecli + // + // remark: + // A working branch is composed of three components: + // 1. WorkingBranchPrefix + // 2. Target Branch + // 3. PipelineID + // + // If WorkingBranchPrefix is set to '', then + // the working branch will look like "<branch>_<pipelineID>". + WorkingBranchPrefix *string `yaml:",omitempty"` + // WorkingBranchSeparator defines the separator used to create a working branch. + // + // compatible: + // * scm + // + // default: + // "_" + WorkingBranchSeparator *string `yaml:",omitempty"` // "submodules" defines if Updatecli should checkout submodules. // // compatible: @@ -123,11 +148,13 @@ // Spec contains inputs coming from updatecli configuration Spec Spec // client handle the api authentication - client client.Client - nativeGitHandler gitgeneric.GitHandler - pipelineID string - workingBranch bool - force bool + client client.Client + nativeGitHandler gitgeneric.GitHandler + pipelineID string + workingBranch bool + workingBranchPrefix string + workingBranchSeparator string + force bool } // New returns a new valid Gitea object. @@ -177,6 +204,16 @@ workingBranch = *s.WorkingBranch } + workingBranchPrefix := "updatecli" + if s.WorkingBranchPrefix != nil { + workingBranchPrefix = *s.WorkingBranchPrefix + } + + workingBranchSeparator := "_" + if s.WorkingBranchSeparator != nil { + workingBranchSeparator = *s.WorkingBranchSeparator + } + force := true if s.Force != nil { force = *s.Force @@ -215,12 +252,14 @@ nativeGitHandler := gitgeneric.GoGit{} g := Gitea{ - Spec: s, - client: c, - pipelineID: pipelineID, - nativeGitHandler: &nativeGitHandler, - workingBranch: workingBranch, - force: force, + Spec: s, + client: c, + pipelineID: pipelineID, + nativeGitHandler: &nativeGitHandler, + workingBranch: workingBranch, + workingBranchPrefix: workingBranchPrefix, + workingBranchSeparator: workingBranchSeparator, + force: force, } g.setDirectory() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/pkg/plugins/scms/gitea/scm.go new/updatecli-0.104.0/pkg/plugins/scms/gitea/scm.go --- old/updatecli-0.103.1/pkg/plugins/scms/gitea/scm.go 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/pkg/plugins/scms/gitea/scm.go 2025-07-13 08:25:50.000000000 +0200 @@ -3,6 +3,7 @@ import ( "fmt" "os" + "strings" "github.com/sirupsen/logrus" ) @@ -14,7 +15,8 @@ targetBranch = g.Spec.Branch if len(g.pipelineID) > 0 && g.workingBranch { - workingBranch = g.nativeGitHandler.SanitizeBranchName(fmt.Sprintf("updatecli_%s_%s", targetBranch, g.pipelineID)) + workingBranch = g.nativeGitHandler.SanitizeBranchName( + strings.Join([]string{g.workingBranchPrefix, targetBranch, g.pipelineID}, g.workingBranchSeparator)) } return sourceBranch, workingBranch, targetBranch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/pkg/plugins/scms/github/main.go new/updatecli-0.104.0/pkg/plugins/scms/github/main.go --- old/updatecli-0.103.1/pkg/plugins/scms/github/main.go 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/pkg/plugins/scms/github/main.go 2025-07-13 08:25:50.000000000 +0200 @@ -43,6 +43,31 @@ // The working branch created by Updatecli looks like "updatecli_<pipelineID>". // The working branch can be disabled using the "workingBranch" parameter set to false. Branch string `yaml:",omitempty"` + // WorkingBranchPrefix defines the prefix used to create a working branch. + // + // compatible: + // * scm + // + // default: + // updatecli + // + // remark: + // A working branch is composed of three components: + // 1. WorkingBranchPrefix + // 2. Target Branch + // 3. PipelineID + // + // If WorkingBranchPrefix is set to '', then + // the working branch will look like "<branch>_<pipelineID>". + WorkingBranchPrefix *string `yaml:",omitempty"` + // WorkingBranchSeparator defines the separator used to create a working branch. + // + // compatible: + // * scm + // + // default: + // "_" + WorkingBranchSeparator *string `yaml:",omitempty"` // "directory" defines the local path where the git repository is cloned. // // compatible: @@ -166,12 +191,14 @@ type Github struct { force bool // Spec contains inputs coming from updatecli configuration - Spec Spec - pipelineID string - client GitHubClient - nativeGitHandler gitgeneric.GitHandler - workingBranch bool - commitUsingApi bool + Spec Spec + pipelineID string + client GitHubClient + nativeGitHandler gitgeneric.GitHandler + workingBranch bool + workingBranchPrefix string + workingBranchSeparator string + commitUsingApi bool } // Repository contains GitHub repository data @@ -240,6 +267,16 @@ workingBranch = *s.WorkingBranch } + workingBranchPrefix := "updatecli" + if s.WorkingBranchPrefix != nil { + workingBranchPrefix = *s.WorkingBranchPrefix + } + + workingBranchSeparator := "_" + if s.WorkingBranchSeparator != nil { + workingBranchSeparator = *s.WorkingBranchSeparator + } + force := true if s.Force != nil { force = *s.Force @@ -271,12 +308,14 @@ } g := Github{ - force: force, - Spec: s, - pipelineID: pipelineID, - nativeGitHandler: &nativeGitHandler, - workingBranch: workingBranch, - commitUsingApi: commitUsingApi, + force: force, + Spec: s, + pipelineID: pipelineID, + nativeGitHandler: &nativeGitHandler, + workingBranch: workingBranch, + workingBranchPrefix: workingBranchPrefix, + workingBranchSeparator: workingBranchSeparator, + commitUsingApi: commitUsingApi, } if strings.HasSuffix(s.URL, "github.com") { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/pkg/plugins/scms/github/scm.go new/updatecli-0.104.0/pkg/plugins/scms/github/scm.go --- old/updatecli-0.103.1/pkg/plugins/scms/github/scm.go 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/pkg/plugins/scms/github/scm.go 2025-07-13 08:25:50.000000000 +0200 @@ -5,6 +5,7 @@ "fmt" "net/url" "os" + "strings" "github.com/shurcooL/githubv4" "github.com/sirupsen/logrus" @@ -17,7 +18,8 @@ targetBranch = g.Spec.Branch if len(g.pipelineID) > 0 && g.workingBranch { - workingBranch = g.nativeGitHandler.SanitizeBranchName(fmt.Sprintf("updatecli_%s_%s", targetBranch, g.pipelineID)) + workingBranch = g.nativeGitHandler.SanitizeBranchName( + strings.Join([]string{g.workingBranchPrefix, targetBranch, g.pipelineID}, g.workingBranchSeparator)) } return sourceBranch, workingBranch, targetBranch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/pkg/plugins/scms/gitlab/main.go new/updatecli-0.104.0/pkg/plugins/scms/gitlab/main.go --- old/updatecli-0.103.1/pkg/plugins/scms/gitlab/main.go 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/pkg/plugins/scms/gitlab/main.go 2025-07-13 08:25:50.000000000 +0200 @@ -106,6 +106,31 @@ // The working branch created by Updatecli looks like "updatecli_<pipelineID>". // The working branch can be disabled using the "workingBranch" parameter set to false. Branch string `yaml:",omitempty"` + // WorkingBranchPrefix defines the prefix used to create a working branch. + // + // compatible: + // * scm + // + // default: + // updatecli + // + // remark: + // A working branch is composed of three components: + // 1. WorkingBranchPrefix + // 2. Target Branch + // 3. PipelineID + // + // If WorkingBranchPrefix is set to '', then + // the working branch will look like "<branch>_<pipelineID>". + WorkingBranchPrefix *string `yaml:",omitempty"` + // WorkingBranchSeparator defines the separator used to create a working branch. + // + // compatible: + // * scm + // + // default: + // "_" + WorkingBranchSeparator *string `yaml:",omitempty"` // "submodules" defines if Updatecli should checkout submodules. // // compatible: @@ -133,8 +158,10 @@ // pipelineID is used to create a unique working branch pipelineID string // nativeGitHandler is used to interact with the local git repository - nativeGitHandler gitgeneric.GitHandler - workingBranch bool + nativeGitHandler gitgeneric.GitHandler + workingBranch bool + workingBranchPrefix string + workingBranchSeparator string } // New returns a new valid GitLab object. @@ -176,6 +203,16 @@ workingBranch = *s.WorkingBranch } + workingBranchPrefix := "updatecli" + if s.WorkingBranchPrefix != nil { + workingBranchPrefix = *s.WorkingBranchPrefix + } + + workingBranchSeparator := "_" + if s.WorkingBranchSeparator != nil { + workingBranchSeparator = *s.WorkingBranchSeparator + } + force := true if s.Force != nil { force = *s.Force @@ -209,12 +246,14 @@ nativeGitHandler := gitgeneric.GoGit{} g := Gitlab{ - force: force, - Spec: s, - client: c, - pipelineID: pipelineID, - nativeGitHandler: &nativeGitHandler, - workingBranch: workingBranch, + force: force, + Spec: s, + client: c, + pipelineID: pipelineID, + nativeGitHandler: &nativeGitHandler, + workingBranch: workingBranch, + workingBranchPrefix: workingBranchPrefix, + workingBranchSeparator: workingBranchSeparator, } g.setDirectory() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/pkg/plugins/scms/gitlab/scm.go new/updatecli-0.104.0/pkg/plugins/scms/gitlab/scm.go --- old/updatecli-0.103.1/pkg/plugins/scms/gitlab/scm.go 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/pkg/plugins/scms/gitlab/scm.go 2025-07-13 08:25:50.000000000 +0200 @@ -3,6 +3,7 @@ import ( "fmt" "os" + "strings" "github.com/sirupsen/logrus" "github.com/updatecli/updatecli/pkg/plugins/resources/gitlab/client" @@ -15,7 +16,8 @@ targetBranch = g.Spec.Branch if len(g.pipelineID) > 0 && g.workingBranch { - workingBranch = g.nativeGitHandler.SanitizeBranchName(fmt.Sprintf("updatecli_%s_%s", targetBranch, g.pipelineID)) + workingBranch = g.nativeGitHandler.SanitizeBranchName( + strings.Join([]string{g.workingBranchPrefix, targetBranch, g.pipelineID}, g.workingBranchSeparator)) } return sourceBranch, workingBranch, targetBranch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/pkg/plugins/scms/stash/main.go new/updatecli-0.104.0/pkg/plugins/scms/stash/main.go --- old/updatecli-0.103.1/pkg/plugins/scms/stash/main.go 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/pkg/plugins/scms/stash/main.go 2025-07-13 08:25:50.000000000 +0200 @@ -101,6 +101,31 @@ // The working branch created by Updatecli looks like "updatecli_<pipelineID>". // The working branch can be disabled using the "workingBranch" parameter set to false. Branch string `yaml:",omitempty"` + // WorkingBranchPrefix defines the prefix used to create a working branch. + // + // compatible: + // * scm + // + // default: + // updatecli + // + // remark: + // A working branch is composed of three components: + // 1. WorkingBranchPrefix + // 2. Target Branch + // 3. PipelineID + // + // If WorkingBranchPrefix is set to '', then + // the working branch will look like "<branch>_<pipelineID>". + WorkingBranchPrefix *string `yaml:",omitempty"` + // WorkingBranchSeparator defines the separator used to create a working branch. + // + // compatible: + // * scm + // + // default: + // "_" + WorkingBranchSeparator *string `yaml:",omitempty"` // "submodules" defines if Updatecli should checkout submodules. // // compatible: @@ -123,11 +148,13 @@ // Spec contains inputs coming from updatecli configuration Spec Spec // client handle the api authentication - client client.Client - pipelineID string - nativeGitHandler gitgeneric.GitHandler - workingBranch bool - force bool + client client.Client + pipelineID string + nativeGitHandler gitgeneric.GitHandler + workingBranch bool + workingBranchPrefix string + workingBranchSeparator string + force bool } // New returns a new valid Bitbucket Server object. @@ -178,6 +205,16 @@ workingBranch = *s.WorkingBranch } + workingBranchPrefix := "updatecli" + if s.WorkingBranchPrefix != nil { + workingBranchPrefix = *s.WorkingBranchPrefix + } + + workingBranchSeparator := "_" + if s.WorkingBranchSeparator != nil { + workingBranchSeparator = *s.WorkingBranchSeparator + } + force := true if s.Force != nil { force = *s.Force @@ -210,12 +247,14 @@ nativeGitHandler := gitgeneric.GoGit{} g := Stash{ - Spec: s, - client: c, - pipelineID: pipelineID, - nativeGitHandler: &nativeGitHandler, - workingBranch: workingBranch, - force: force, + Spec: s, + client: c, + pipelineID: pipelineID, + nativeGitHandler: &nativeGitHandler, + workingBranch: workingBranch, + workingBranchPrefix: workingBranchPrefix, + workingBranchSeparator: workingBranchSeparator, + force: force, } g.setDirectory() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/pkg/plugins/scms/stash/scm.go new/updatecli-0.104.0/pkg/plugins/scms/stash/scm.go --- old/updatecli-0.103.1/pkg/plugins/scms/stash/scm.go 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/pkg/plugins/scms/stash/scm.go 2025-07-13 08:25:50.000000000 +0200 @@ -3,6 +3,7 @@ import ( "fmt" "os" + "strings" "github.com/sirupsen/logrus" ) @@ -13,7 +14,8 @@ targetBranch = s.Spec.Branch if len(s.pipelineID) > 0 && s.workingBranch { - workingBranch = s.nativeGitHandler.SanitizeBranchName(fmt.Sprintf("updatecli_%s_%s", targetBranch, s.pipelineID)) + workingBranch = s.nativeGitHandler.SanitizeBranchName( + strings.Join([]string{s.workingBranchPrefix, targetBranch, s.pipelineID}, s.workingBranchSeparator)) } return sourceBranch, workingBranch, targetBranch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/pkg/plugins/utils/gitgeneric/main.go new/updatecli-0.104.0/pkg/plugins/utils/gitgeneric/main.go --- old/updatecli-0.103.1/pkg/plugins/utils/gitgeneric/main.go 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/pkg/plugins/utils/gitgeneric/main.go 2025-07-13 08:25:50.000000000 +0200 @@ -685,7 +685,7 @@ } replacedByUnderscore := []string{ - "/", "\\", "{", "}", "[", "]", + "\\", "{", "}", "[", "]", } for _, character := range removedCharacter { @@ -695,9 +695,12 @@ branch = strings.ReplaceAll(branch, character, "_") } + branch = strings.TrimPrefix(branch, "/") + if len(branch) > 255 { return branch[0:255] } + return branch } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/updatecli-0.103.1/updatecli/updatecli.d/venom.yaml new/updatecli-0.104.0/updatecli/updatecli.d/venom.yaml --- old/updatecli-0.103.1/updatecli/updatecli.d/venom.yaml 2025-07-08 17:50:13.000000000 +0200 +++ new/updatecli-0.104.0/updatecli/updatecli.d/venom.yaml 2025-07-13 08:25:50.000000000 +0200 @@ -21,6 +21,8 @@ token: '{{ requiredEnv "GITHUB_TOKEN" }}' user: "{{ .scm.user }}" username: '{{ requiredEnv "GITHUB_ACTOR" }}' + workingbranchprefix: "deps" + workingbranchseparator: '/' disabled: false sources: latestVersion: @@ -33,6 +35,7 @@ username: '{{ requiredEnv "GITHUB_ACTOR" }}' versionfilter: kind: semver + pattern: "<1" targets: goWorkflow: name: 'ci: update Venom version to {{ source "latestVersion" }}' ++++++ updatecli.obsinfo ++++++ --- /var/tmp/diff_new_pack.gs03H4/_old 2025-07-14 10:57:52.787996934 +0200 +++ /var/tmp/diff_new_pack.gs03H4/_new 2025-07-14 10:57:52.823998427 +0200 @@ -1,5 +1,5 @@ name: updatecli -version: 0.103.1 -mtime: 1751989813 -commit: 7ecaffd7f134d85fc4481f194372d1d52c4dbe08 +version: 0.104.0 +mtime: 1752387950 +commit: ca9e27fe59af8a55ea3dde94a7e8a0bfe35b4655 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/updatecli/vendor.tar.gz /work/SRC/openSUSE:Factory/.updatecli.new.7373/vendor.tar.gz differ: char 13, line 1