diff --git a/docs/cmd/jx-gitops_annotate.md b/docs/cmd/jx-gitops_annotate.md
index 695ad2f76..9756b7072 100644
--- a/docs/cmd/jx-gitops_annotate.md
+++ b/docs/cmd/jx-gitops_annotate.md
@@ -31,7 +31,7 @@ Annotates all kubernetes resources in the given directory tree
--kind-ignore stringArray adds Kubernetes resource kinds to exclude. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
--overwrite Set to false to not overwrite any existing value (default true)
-p, --pod-spec annotate the PodSpec in spec.template.metadata.annotations (or spec.jobTemplate.spec.template.metadata.annotations for CronJobs) rather than the top level annotations
- --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=pusher-wave,heritage=Helm (default [])
+ --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=wave,heritage=Helm (default [])
--selector-target string sets which path in the Kubernetes resources to select on instead of metadata.labels.
```
@@ -39,4 +39,4 @@ Annotates all kubernetes resources in the given directory tree
* [jx-gitops](jx-gitops.md) - commands for working with GitOps based git repositories
-###### Auto generated by spf13/cobra on 7-Oct-2024
+###### Auto generated by spf13/cobra on 29-Apr-2026
diff --git a/docs/cmd/jx-gitops_helmfile_move.md b/docs/cmd/jx-gitops_helmfile_move.md
index 250fec1cd..bdc5493fe 100644
--- a/docs/cmd/jx-gitops_helmfile_move.md
+++ b/docs/cmd/jx-gitops_helmfile_move.md
@@ -42,7 +42,7 @@ The annotation "meta.helm.sh/release-namespace" will be added by default and con
--kind-ignore stringArray adds Kubernetes resource kinds to exclude. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
-o, --output-dir string the output directory (default "config-root")
--override-namespace applies the namespace specified in helmfile to all the generated resources (default true)
- --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=pusher-wave,heritage=Helm (default [])
+ --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=wave,heritage=Helm (default [])
--selector-target string sets which path in the Kubernetes resources to select on instead of metadata.labels.
```
@@ -50,4 +50,4 @@ The annotation "meta.helm.sh/release-namespace" will be added by default and con
* [jx-gitops helmfile](jx-gitops_helmfile.md) - Commands for working with helmfile
-###### Auto generated by spf13/cobra on 6-Nov-2024
+###### Auto generated by spf13/cobra on 29-Apr-2026
diff --git a/docs/cmd/jx-gitops_image.md b/docs/cmd/jx-gitops_image.md
index 6b5db40aa..50ea078e0 100644
--- a/docs/cmd/jx-gitops_image.md
+++ b/docs/cmd/jx-gitops_image.md
@@ -29,7 +29,7 @@ Updates images in the kubernetes resources from the version stream
-k, --kind stringArray adds Kubernetes resource kinds to filter on. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
--kind-ignore stringArray adds Kubernetes resource kinds to exclude. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
--log-level string Sets the logging level. If not specified defaults to $JX_LOG_LEVEL
- --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=pusher-wave,heritage=Helm (default [])
+ --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=wave,heritage=Helm (default [])
--selector-target string sets which path in the Kubernetes resources to select on instead of metadata.labels.
-s, --source-dir string the directory to recursively look for the *.yaml files to modify (default "content-root")
--verbose Enables verbose output. The environment variable JX_LOG_LEVEL has precedence over this flag and allows setting the logging level to any value of: panic, fatal, error, warn, info, debug, trace
@@ -40,4 +40,4 @@ Updates images in the kubernetes resources from the version stream
* [jx-gitops](jx-gitops.md) - commands for working with GitOps based git repositories
-###### Auto generated by spf13/cobra on 7-Oct-2024
+###### Auto generated by spf13/cobra on 29-Apr-2026
diff --git a/docs/cmd/jx-gitops_label.md b/docs/cmd/jx-gitops_label.md
index 248d15d63..09bd1de97 100644
--- a/docs/cmd/jx-gitops_label.md
+++ b/docs/cmd/jx-gitops_label.md
@@ -31,7 +31,7 @@ Labels all kubernetes resources in the given directory tree
--kind-ignore stringArray adds Kubernetes resource kinds to exclude. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
--overwrite Set to false to not overwrite any existing value (default true)
-p, --pod-spec label the PodSpec in spec.template.metadata.labels (or spec.jobTemplate.spec.template.metadata.labels for CronJobs) rather than the top level labels
- --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=pusher-wave,heritage=Helm (default [])
+ --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=wave,heritage=Helm (default [])
--selector-target string sets which path in the Kubernetes resources to select on instead of metadata.labels.
```
@@ -39,4 +39,4 @@ Labels all kubernetes resources in the given directory tree
* [jx-gitops](jx-gitops.md) - commands for working with GitOps based git repositories
-###### Auto generated by spf13/cobra on 7-Oct-2024
+###### Auto generated by spf13/cobra on 29-Apr-2026
diff --git a/docs/cmd/jx-gitops_namespace.md b/docs/cmd/jx-gitops_namespace.md
index 21b7cf3cb..43a24c023 100644
--- a/docs/cmd/jx-gitops_namespace.md
+++ b/docs/cmd/jx-gitops_namespace.md
@@ -36,7 +36,7 @@ Updates all kubernetes resources in the given directory to the given namespace
-k, --kind stringArray adds Kubernetes resource kinds to filter on. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
--kind-ignore stringArray adds Kubernetes resource kinds to exclude. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
-n, --namespace string the namespace to modify the resources to
- --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=pusher-wave,heritage=Helm (default [])
+ --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=wave,heritage=Helm (default [])
--selector-target string sets which path in the Kubernetes resources to select on instead of metadata.labels.
```
@@ -44,4 +44,4 @@ Updates all kubernetes resources in the given directory to the given namespace
* [jx-gitops](jx-gitops.md) - commands for working with GitOps based git repositories
-###### Auto generated by spf13/cobra on 7-Oct-2024
+###### Auto generated by spf13/cobra on 29-Apr-2026
diff --git a/docs/cmd/jx-gitops_repository_add.md b/docs/cmd/jx-gitops_repository_add.md
index 90add51b7..06b7143cc 100644
--- a/docs/cmd/jx-gitops_repository_add.md
+++ b/docs/cmd/jx-gitops_repository_add.md
@@ -30,7 +30,7 @@ Add one or more repositories to the SourceConfig
--kind-ignore stringArray adds Kubernetes resource kinds to exclude. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
--namespace string the namespace to discover SourceRepository resources to default the GitKind. If not specified then use the current namespace
-s, --scheduler string the name of the Scheduler to use for the repository
- --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=pusher-wave,heritage=Helm (default [])
+ --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=wave,heritage=Helm (default [])
--selector-target string sets which path in the Kubernetes resources to select on instead of metadata.labels.
```
@@ -38,4 +38,4 @@ Add one or more repositories to the SourceConfig
* [jx-gitops repository](jx-gitops_repository.md) - Commands for working with source repositories
-###### Auto generated by spf13/cobra on 19-Feb-2025
+###### Auto generated by spf13/cobra on 29-Apr-2026
diff --git a/docs/cmd/jx-gitops_repository_create.md b/docs/cmd/jx-gitops_repository_create.md
index 7a757533c..ec7280c14 100644
--- a/docs/cmd/jx-gitops_repository_create.md
+++ b/docs/cmd/jx-gitops_repository_create.md
@@ -21,7 +21,7 @@ Creates any missing SourceRepository resources
--invert-selector inverts the effect of selector to exclude resources matched by selector
-k, --kind stringArray adds Kubernetes resource kinds to filter on. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
--kind-ignore stringArray adds Kubernetes resource kinds to exclude. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
- --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=pusher-wave,heritage=Helm (default [])
+ --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=wave,heritage=Helm (default [])
--selector-target string sets which path in the Kubernetes resources to select on instead of metadata.labels.
-s, --source-dir string the directory to look for and generate the SourceConfig files
```
@@ -30,4 +30,4 @@ Creates any missing SourceRepository resources
* [jx-gitops repository](jx-gitops_repository.md) - Commands for working with source repositories
-###### Auto generated by spf13/cobra on 19-Feb-2025
+###### Auto generated by spf13/cobra on 29-Apr-2026
diff --git a/docs/cmd/jx-gitops_repository_export.md b/docs/cmd/jx-gitops_repository_export.md
index 301a2f4cb..d26abafbf 100644
--- a/docs/cmd/jx-gitops_repository_export.md
+++ b/docs/cmd/jx-gitops_repository_export.md
@@ -28,7 +28,7 @@ jx-gitops repository export
-k, --kind stringArray adds Kubernetes resource kinds to filter on. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
--kind-ignore stringArray adds Kubernetes resource kinds to exclude. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
-n, --namespace string the namespace to look for SourceRepository, SourceRepositoryGroup and Scheduler resources
- --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=pusher-wave,heritage=Helm (default [])
+ --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=wave,heritage=Helm (default [])
--selector-target string sets which path in the Kubernetes resources to select on instead of metadata.labels.
```
@@ -36,4 +36,4 @@ jx-gitops repository export
* [jx-gitops repository](jx-gitops_repository.md) - Commands for working with source repositories
-###### Auto generated by spf13/cobra on 19-Feb-2025
+###### Auto generated by spf13/cobra on 29-Apr-2026
diff --git a/docs/cmd/jx-gitops_repository_resolve.md b/docs/cmd/jx-gitops_repository_resolve.md
index a85e5e3de..2ba0ffec1 100644
--- a/docs/cmd/jx-gitops_repository_resolve.md
+++ b/docs/cmd/jx-gitops_repository_resolve.md
@@ -27,7 +27,7 @@ Resolves the git repository URL for the cluster/environment
--invert-selector inverts the effect of selector to exclude resources matched by selector
-k, --kind stringArray adds Kubernetes resource kinds to filter on. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
--kind-ignore stringArray adds Kubernetes resource kinds to exclude. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
- --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=pusher-wave,heritage=Helm (default [])
+ --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=wave,heritage=Helm (default [])
--selector-target string sets which path in the Kubernetes resources to select on instead of metadata.labels.
-s, --source-dir string the directory to recursively look for the *.yaml or *.yml source Environment/SourceRepository files (default ".")
```
@@ -36,4 +36,4 @@ Resolves the git repository URL for the cluster/environment
* [jx-gitops repository](jx-gitops_repository.md) - Commands for working with source repositories
-###### Auto generated by spf13/cobra on 7-Oct-2024
+###### Auto generated by spf13/cobra on 29-Apr-2026
diff --git a/docs/cmd/jx-gitops_requirement_edit.md b/docs/cmd/jx-gitops_requirement_edit.md
index e59eb5504..747e68725 100644
--- a/docs/cmd/jx-gitops_requirement_edit.md
+++ b/docs/cmd/jx-gitops_requirement_edit.md
@@ -36,7 +36,6 @@ Edits the local 'jx-requirements.yml file
--git-name string the name of the git repository
--git-server string the git server host such as https://github.com or https://gitlab.com
-h, --help help for edit
- --kaniko-sa string configures the Kaniko service account name
--project string configures the Google Project ID
-p, --provider string configures the kubernetes provider
-r, --region string configures the cloud region
@@ -58,4 +57,4 @@ Edits the local 'jx-requirements.yml file
* [jx-gitops requirement](jx-gitops_requirement.md) - Commands for working with jx-requirements.yml
-###### Auto generated by spf13/cobra on 5-Oct-2022
+###### Auto generated by spf13/cobra on 29-Apr-2026
diff --git a/docs/cmd/jx-gitops_sa_secret.md b/docs/cmd/jx-gitops_sa_secret.md
index 655110c99..5b87bf6ea 100644
--- a/docs/cmd/jx-gitops_sa_secret.md
+++ b/docs/cmd/jx-gitops_sa_secret.md
@@ -26,7 +26,7 @@ Adds one or more secrets to the given ServiceAccount files
-k, --kind stringArray adds Kubernetes resource kinds to filter on. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
--kind-ignore stringArray adds Kubernetes resource kinds to exclude. For kind expressions see: https://github.com/jenkins-x/jx-helpers/tree/master/docs/kind_filters.md
-s, --secret stringArray the Secret names to add to the ServiceAccount
- --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=pusher-wave,heritage=Helm (default [])
+ --selector stringToString adds Kubernetes label selector to filter on, e.g. --selector app=wave,heritage=Helm (default [])
--selector-target string sets which path in the Kubernetes resources to select on instead of metadata.labels.
```
@@ -34,4 +34,4 @@ Adds one or more secrets to the given ServiceAccount files
* [jx-gitops sa](jx-gitops_sa.md) - Commands for working with kubernetes ServiceAccount resources
-###### Auto generated by spf13/cobra on 19-Feb-2025
+###### Auto generated by spf13/cobra on 29-Apr-2026
diff --git a/docs/cmd/jx-gitops_upgrade.md b/docs/cmd/jx-gitops_upgrade.md
index 67f10976b..acb1cf0cb 100644
--- a/docs/cmd/jx-gitops_upgrade.md
+++ b/docs/cmd/jx-gitops_upgrade.md
@@ -30,6 +30,7 @@ Upgrades the GitOps git repository with the latest configuration and versions th
--log-level string Sets the logging level. If not specified defaults to $JX_LOG_LEVEL
--namespace string the default namespace if none is specified in the helmfile.yaml (default "jx")
-o, --owner string filter on the Kptfile repository owner (user/organisation) for which packages to update
+ --release-notes-file string the file to save any release notes in. By default any release notes will be rendered in the console
-r, --repo string filter on the Kptfile repository name for which packages to update
-s, --strategy string the 'kpt' strategy to use. To see available strategies type 'kpt pkg update --help'. Typical values are: resource-merge, fast-forward, force-delete-replace (default "resource-merge")
-u, --url string filter on the Kptfile repository URL for which packages to update
@@ -42,4 +43,4 @@ Upgrades the GitOps git repository with the latest configuration and versions th
* [jx-gitops](jx-gitops.md) - commands for working with GitOps based git repositories
-###### Auto generated by spf13/cobra on 22-Jan-2024
+###### Auto generated by spf13/cobra on 29-Apr-2026
diff --git a/docs/config.md b/docs/config.md
index b76d4a36e..12267ea25 100644
--- a/docs/config.md
+++ b/docs/config.md
@@ -1747,5 +1747,5 @@ string
Generated with gen-crd-api-reference-docs
-on git commit 060775df.
+on git commit 1e7e7641.
diff --git a/docs/man/man1/jx-gitops-annotate.1 b/docs/man/man1/jx-gitops-annotate.1
index 99db2c3f5..b25937d81 100644
--- a/docs/man/man1/jx-gitops-annotate.1
+++ b/docs/man/man1/jx-gitops-annotate.1
@@ -51,7 +51,7 @@ Annotates all kubernetes resources in the given directory tree
.PP
\fB\-\-selector\fP=[]
- adds Kubernetes label selector to filter on, e.g. \-\-selector app=pusher\-wave,heritage=Helm
+ adds Kubernetes label selector to filter on, e.g. \-\-selector app=wave,heritage=Helm
.PP
\fB\-\-selector\-target\fP=""
diff --git a/docs/man/man1/jx-gitops-helmfile-move.1 b/docs/man/man1/jx-gitops-helmfile-move.1
index cbb037c9f..866ba0008 100644
--- a/docs/man/man1/jx-gitops-helmfile-move.1
+++ b/docs/man/man1/jx-gitops-helmfile-move.1
@@ -78,7 +78,7 @@ The annotation "meta.helm.sh/release\-namespace" will be added by default and co
.PP
\fB\-\-selector\fP=[]
- adds Kubernetes label selector to filter on, e.g. \-\-selector app=pusher\-wave,heritage=Helm
+ adds Kubernetes label selector to filter on, e.g. \-\-selector app=wave,heritage=Helm
.PP
\fB\-\-selector\-target\fP=""
diff --git a/docs/man/man1/jx-gitops-image.1 b/docs/man/man1/jx-gitops-image.1
index 7a948ef06..f0e9b5b1c 100644
--- a/docs/man/man1/jx-gitops-image.1
+++ b/docs/man/man1/jx-gitops-image.1
@@ -51,7 +51,7 @@ Updates images in the kubernetes resources from the version stream
.PP
\fB\-\-selector\fP=[]
- adds Kubernetes label selector to filter on, e.g. \-\-selector app=pusher\-wave,heritage=Helm
+ adds Kubernetes label selector to filter on, e.g. \-\-selector app=wave,heritage=Helm
.PP
\fB\-\-selector\-target\fP=""
diff --git a/docs/man/man1/jx-gitops-label.1 b/docs/man/man1/jx-gitops-label.1
index 5a1f660b1..c2d971797 100644
--- a/docs/man/man1/jx-gitops-label.1
+++ b/docs/man/man1/jx-gitops-label.1
@@ -51,7 +51,7 @@ Labels all kubernetes resources in the given directory tree
.PP
\fB\-\-selector\fP=[]
- adds Kubernetes label selector to filter on, e.g. \-\-selector app=pusher\-wave,heritage=Helm
+ adds Kubernetes label selector to filter on, e.g. \-\-selector app=wave,heritage=Helm
.PP
\fB\-\-selector\-target\fP=""
diff --git a/docs/man/man1/jx-gitops-namespace.1 b/docs/man/man1/jx-gitops-namespace.1
index dc60e1e2b..0c0a18479 100644
--- a/docs/man/man1/jx-gitops-namespace.1
+++ b/docs/man/man1/jx-gitops-namespace.1
@@ -55,7 +55,7 @@ Updates all kubernetes resources in the given directory to the given namespace
.PP
\fB\-\-selector\fP=[]
- adds Kubernetes label selector to filter on, e.g. \-\-selector app=pusher\-wave,heritage=Helm
+ adds Kubernetes label selector to filter on, e.g. \-\-selector app=wave,heritage=Helm
.PP
\fB\-\-selector\-target\fP=""
diff --git a/docs/man/man1/jx-gitops-repository-add.1 b/docs/man/man1/jx-gitops-repository-add.1
index 9ce8ae728..eec86b0df 100644
--- a/docs/man/man1/jx-gitops-repository-add.1
+++ b/docs/man/man1/jx-gitops-repository-add.1
@@ -63,7 +63,7 @@ Add one or more repositories to the SourceConfig
.PP
\fB\-\-selector\fP=[]
- adds Kubernetes label selector to filter on, e.g. \-\-selector app=pusher\-wave,heritage=Helm
+ adds Kubernetes label selector to filter on, e.g. \-\-selector app=wave,heritage=Helm
.PP
\fB\-\-selector\-target\fP=""
diff --git a/docs/man/man1/jx-gitops-repository-create.1 b/docs/man/man1/jx-gitops-repository-create.1
index e793b1bfc..8919c3283 100644
--- a/docs/man/man1/jx-gitops-repository-create.1
+++ b/docs/man/man1/jx-gitops-repository-create.1
@@ -47,7 +47,7 @@ Creates any missing SourceRepository resources
.PP
\fB\-\-selector\fP=[]
- adds Kubernetes label selector to filter on, e.g. \-\-selector app=pusher\-wave,heritage=Helm
+ adds Kubernetes label selector to filter on, e.g. \-\-selector app=wave,heritage=Helm
.PP
\fB\-\-selector\-target\fP=""
diff --git a/docs/man/man1/jx-gitops-repository-export.1 b/docs/man/man1/jx-gitops-repository-export.1
index 05d4c030e..da74ab2bd 100644
--- a/docs/man/man1/jx-gitops-repository-export.1
+++ b/docs/man/man1/jx-gitops-repository-export.1
@@ -55,7 +55,7 @@ jx\-gitops\-repository\-export \- Exports the 'source\-config.yaml' file from th
.PP
\fB\-\-selector\fP=[]
- adds Kubernetes label selector to filter on, e.g. \-\-selector app=pusher\-wave,heritage=Helm
+ adds Kubernetes label selector to filter on, e.g. \-\-selector app=wave,heritage=Helm
.PP
\fB\-\-selector\-target\fP=""
diff --git a/docs/man/man1/jx-gitops-repository-resolve.1 b/docs/man/man1/jx-gitops-repository-resolve.1
index d9d80997a..97e3da102 100644
--- a/docs/man/man1/jx-gitops-repository-resolve.1
+++ b/docs/man/man1/jx-gitops-repository-resolve.1
@@ -43,7 +43,7 @@ Resolves the git repository URL for the cluster/environment
.PP
\fB\-\-selector\fP=[]
- adds Kubernetes label selector to filter on, e.g. \-\-selector app=pusher\-wave,heritage=Helm
+ adds Kubernetes label selector to filter on, e.g. \-\-selector app=wave,heritage=Helm
.PP
\fB\-\-selector\-target\fP=""
diff --git a/docs/man/man1/jx-gitops-requirement-edit.1 b/docs/man/man1/jx-gitops-requirement-edit.1
index 1773c45be..7a1779edb 100644
--- a/docs/man/man1/jx-gitops-requirement-edit.1
+++ b/docs/man/man1/jx-gitops-requirement-edit.1
@@ -85,10 +85,6 @@ Edits the local 'jx\-requirements.yml file
\fB\-h\fP, \fB\-\-help\fP[=false]
help for edit
-.PP
-\fB\-\-kaniko\-sa\fP=""
- configures the Kaniko service account name
-
.PP
\fB\-\-project\fP=""
configures the Google Project ID
diff --git a/docs/man/man1/jx-gitops-sa-secret.1 b/docs/man/man1/jx-gitops-sa-secret.1
index a78658a43..05302bfd3 100644
--- a/docs/man/man1/jx-gitops-sa-secret.1
+++ b/docs/man/man1/jx-gitops-sa-secret.1
@@ -47,7 +47,7 @@ Adds one or more secrets to the given ServiceAccount files
.PP
\fB\-\-selector\fP=[]
- adds Kubernetes label selector to filter on, e.g. \-\-selector app=pusher\-wave,heritage=Helm
+ adds Kubernetes label selector to filter on, e.g. \-\-selector app=wave,heritage=Helm
.PP
\fB\-\-selector\-target\fP=""
diff --git a/docs/man/man1/jx-gitops-upgrade.1 b/docs/man/man1/jx-gitops-upgrade.1
index 8e44806a2..f18ae298c 100644
--- a/docs/man/man1/jx-gitops-upgrade.1
+++ b/docs/man/man1/jx-gitops-upgrade.1
@@ -71,6 +71,10 @@ Upgrades the GitOps git repository with the latest configuration and versions th
\fB\-o\fP, \fB\-\-owner\fP=""
filter on the Kptfile repository owner (user/organisation) for which packages to update
+.PP
+\fB\-\-release\-notes\-file\fP=""
+ the file to save any release notes in. By default any release notes will be rendered in the console
+
.PP
\fB\-r\fP, \fB\-\-repo\fP=""
filter on the Kptfile repository name for which packages to update
diff --git a/docs/scheduler-config.md b/docs/scheduler-config.md
index 818c4846a..bc6d30540 100644
--- a/docs/scheduler-config.md
+++ b/docs/scheduler-config.md
@@ -567,7 +567,7 @@ namespace provided, or the default if it is not set.
map
-map[string]./pkg/apis/scheduler/v1alpha1.ConfigMapSpec
+map[string]ConfigMapSpec
@@ -846,6 +846,47 @@ which eliminates the need to re-lgtm minor fixes/updates.
+MergeCommitTemplate
+
+
+(Appears on:
+Merger)
+
+
+
MergeCommitTemplate holds templates to use for merge commits.
+
+
+
+
+| Field |
+Description |
+
+
+
+
+
+title
+
+string
+
+ |
+
+ Title is a Go template for the merge commit title.
+ |
+
+
+
+body
+
+string
+
+ |
+
+ Body is a Go template for the merge commit body.
+ |
+
+
+
Merger
@@ -983,6 +1024,21 @@ string
+merge_commit_template
+
+
+MergeCommitTemplate
+
+
+ |
+
+ MergeCommitTemplate defines a template for the merge commit title and body.
+Template fields available: .Number, .Title, .Body, .Author.Login, .Repository.Name,
+.Repository.NameWithOwner, .Repository.Owner.Login, .HeadRefName, .BaseRef.Name
+ |
+
+
+
policy
@@ -1170,7 +1226,7 @@ bool
entries
-map[string]*./pkg/apis/scheduler/v1alpha1.ProtectionPolicy
+map[string]ProtectionPolicy
|
@@ -1388,7 +1444,7 @@ bool
Items
-map[string]*./pkg/apis/scheduler/v1alpha1.ContextPolicy
+map[string]ContextPolicy
@@ -2096,5 +2152,5 @@ string
Generated with gen-crd-api-reference-docs
-on git commit 060775df.
+on git commit 1e7e7641.
diff --git a/go.mod b/go.mod
index f471c6ea4..e42145eed 100644
--- a/go.mod
+++ b/go.mod
@@ -238,6 +238,7 @@ require (
github.com/itchyny/gojq v0.12.16 // indirect
github.com/itchyny/timefmt-go v0.1.6 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
+ github.com/jenkins-x/gen-crd-api-reference-docs v0.1.8 // indirect
github.com/jenkins-x/logrus-stackdriver-formatter v0.2.7 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
@@ -368,6 +369,7 @@ require (
k8s.io/apiextensions-apiserver v0.33.3 // indirect
k8s.io/cli-runtime v0.33.3 // indirect
k8s.io/component-base v0.33.3 // indirect
+ k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
k8s.io/kubectl v0.33.3 // indirect
diff --git a/go.sum b/go.sum
index dcff2a850..4bcee838c 100644
--- a/go.sum
+++ b/go.sum
@@ -1351,6 +1351,8 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOl
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
github.com/jenkins-x-plugins/jx-charter v0.0.30 h1:auJrCef13bShZrnJVXJEBk+n9nzxJFWbFpUScVR3jGo=
github.com/jenkins-x-plugins/jx-charter v0.0.30/go.mod h1:Lb++3nwa3kz9rlg4aSHzNsUudBcDVoefQk0UCOCC4Pg=
+github.com/jenkins-x/gen-crd-api-reference-docs v0.1.8 h1:OPhXFSKEA15jcmZ+iMPeqirOOcBnk/hioxaUIxmSrXw=
+github.com/jenkins-x/gen-crd-api-reference-docs v0.1.8/go.mod h1:uHNXzg/ohtmPL/XEnNmQKzNr9oUljH3VhcfLo8S2haI=
github.com/jenkins-x/go-scm v1.15.1 h1:QcN/iPOYljpRby95NgBOK9NGQX8Z5k04mYf4pP76Cjo=
github.com/jenkins-x/go-scm v1.15.1/go.mod h1:1RPxLZndnvu31XhFZ+RTvXiHmMX70HkQ17bRupTQxGs=
github.com/jenkins-x/jx-api/v4 v4.8.1 h1:YXbNIyVChc2UIXiOnolk6xLhq6RZEISRKVPUi/vmEWg=
@@ -2599,6 +2601,9 @@ k8s.io/client-go v0.33.3 h1:M5AfDnKfYmVJif92ngN532gFqakcGi6RvaOF16efrpA=
k8s.io/client-go v0.33.3/go.mod h1:luqKBQggEf3shbxHY4uVENAxrDISLOarxpTKMiUuujg=
k8s.io/component-base v0.33.3 h1:mlAuyJqyPlKZM7FyaoM/LcunZaaY353RXiOd2+B5tGA=
k8s.io/component-base v0.33.3/go.mod h1:ktBVsBzkI3imDuxYXmVxZ2zxJnYTZ4HAsVj9iF09qp4=
+k8s.io/gengo v0.0.0-20240404160639-a0386bf69313 h1:wBIDZID8ju9pwOiLlV22YYKjFGtiNSWgHf5CnKLRUuM=
+k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7 h1:2OX19X59HxDprNCVrWi6jb7LW1PoqTlYqEq5H2oetog=
+k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU=
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=
diff --git a/pkg/apis/scheduler/v1alpha1/types.go b/pkg/apis/scheduler/v1alpha1/types.go
index 3493b5faf..5c62a5663 100644
--- a/pkg/apis/scheduler/v1alpha1/types.go
+++ b/pkg/apis/scheduler/v1alpha1/types.go
@@ -300,6 +300,11 @@ type Merger struct {
// Override the default method of merge. Valid options are squash, rebase, and merge.
MergeType *string `json:"merge_method,omitempty"`
+ // MergeCommitTemplate defines a template for the merge commit title and body.
+ // Template fields available: .Number, .Title, .Body, .Author.Login, .Repository.Name,
+ // .Repository.NameWithOwner, .Repository.Owner.Login, .HeadRefName, .BaseRef.Name
+ MergeCommitTemplate *MergeCommitTemplate `json:"merge_commit_template,omitempty"`
+
// ContextOptions defines the default merge options. If not set it will infer
// the required and optional contexts from the jobs configured and use the Git Provider
// combined status; otherwise it may apply the branch protection setting or let user
@@ -343,6 +348,14 @@ type ContextPolicy struct {
FromBranchProtection *bool `json:"from-branch-protection,omitempty"`
}
+// MergeCommitTemplate holds templates to use for merge commits.
+type MergeCommitTemplate struct {
+ // Title is a Go template for the merge commit title.
+ Title string `json:"title,omitempty"`
+ // Body is a Go template for the merge commit body.
+ Body string `json:"body,omitempty"`
+}
+
// Welcome welcome plugin config
type Welcome struct {
MessageTemplate *string `json:"message_template,omitempty"`
diff --git a/pkg/pipelinescheduler/builder.go b/pkg/pipelinescheduler/builder.go
index 95ff03ac7..d67c62b9a 100644
--- a/pkg/pipelinescheduler/builder.go
+++ b/pkg/pipelinescheduler/builder.go
@@ -150,6 +150,9 @@ func applyToMerger(parent, child *schedulerapi.Merger) {
if child.MergeType == nil {
child.MergeType = parent.MergeType
}
+ if child.MergeCommitTemplate == nil {
+ child.MergeCommitTemplate = parent.MergeCommitTemplate
+ }
if child.MaxGoroutines == nil {
child.MaxGoroutines = parent.MaxGoroutines
}
diff --git a/pkg/pipelinescheduler/builder_test.go b/pkg/pipelinescheduler/builder_test.go
index 146cca5d5..56317cbb4 100644
--- a/pkg/pipelinescheduler/builder_test.go
+++ b/pkg/pipelinescheduler/builder_test.go
@@ -73,3 +73,14 @@ func TestBuildWithEmptyMerger(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, parent.Merger, merged.Merger)
}
+
+func TestBuildWithMergeCommitTemplateInheritance(t *testing.T) {
+ t.Parallel()
+ child := testhelpers.CompleteScheduler()
+ child.Merger.MergeCommitTemplate = nil
+ parent := testhelpers.CompleteScheduler()
+ merged, err := pipelinescheduler.Build([]*schedulerapi.SchedulerSpec{parent, child})
+ assert.NoError(t, err)
+ assert.Equal(t, parent.Merger.MergeCommitTemplate, merged.Merger.MergeCommitTemplate)
+ assert.Equal(t, child.Merger.SquashLabel, merged.Merger.SquashLabel)
+}
diff --git a/pkg/pipelinescheduler/config_builder.go b/pkg/pipelinescheduler/config_builder.go
index 2c7384808..04709e568 100644
--- a/pkg/pipelinescheduler/config_builder.go
+++ b/pkg/pipelinescheduler/config_builder.go
@@ -538,6 +538,15 @@ func buildMerger(answer *keeper.Config, merger *schedulerapi.Merger, org, repo s
}
answer.MergeType[fmt.Sprintf("%s/%s", org, repo)] = keeper.PullRequestMergeType(*merger.MergeType)
}
+ if merger.MergeCommitTemplate != nil {
+ if answer.MergeTemplate == nil {
+ answer.MergeTemplate = make(map[string]keeper.MergeCommitTemplate)
+ }
+ answer.MergeTemplate[fmt.Sprintf("%s/%s", org, repo)] = keeper.MergeCommitTemplate{
+ TitleTemplate: merger.MergeCommitTemplate.Title,
+ BodyTemplate: merger.MergeCommitTemplate.Body,
+ }
+ }
if merger.ContextPolicy != nil {
buildContextPolicy(&answer.ContextOptions.ContextPolicy, merger.ContextPolicy)
}
diff --git a/pkg/pipelinescheduler/config_builder_test.go b/pkg/pipelinescheduler/config_builder_test.go
index a21903507..12c65d37b 100644
--- a/pkg/pipelinescheduler/config_builder_test.go
+++ b/pkg/pipelinescheduler/config_builder_test.go
@@ -131,6 +131,19 @@ func TestMergerWithMergeMethod(t *testing.T) {
})
}
+func TestMergerWithMergeCommitTemplate(t *testing.T) {
+ wd, err := os.Getwd()
+ assert.NoError(t, err)
+ testhelpers.BuildAndValidateProwConfig(t, filepath.Join(wd, "testdata", "merger_with_merge_commit_template"), "config.yaml",
+ "plugins.yaml", []testhelpers.SchedulerFile{
+ {
+ Filenames: []string{"parent.yaml", "repo.yaml"},
+ Org: "acme",
+ Repo: "dummy",
+ },
+ })
+}
+
func TestOnlyWithParent(t *testing.T) {
wd, err := os.Getwd()
assert.NoError(t, err)
diff --git a/pkg/pipelinescheduler/testdata/merger_with_merge_commit_template/config.yaml b/pkg/pipelinescheduler/testdata/merger_with_merge_commit_template/config.yaml
new file mode 100644
index 000000000..0bfc3d83b
--- /dev/null
+++ b/pkg/pipelinescheduler/testdata/merger_with_merge_commit_template/config.yaml
@@ -0,0 +1,37 @@
+postsubmits:
+ acme/dummy:
+ - agent: tekton
+ branches:
+ - master
+ context: ""
+ name: release
+presubmits:
+ acme/dummy:
+ - agent: tekton
+ always_run: true
+ context: integration
+ name: integration
+ rerun_command: /test this
+ trigger: (?m)^/test( all| this),?(\s+|$)
+push_gateway:
+ serve_metrics: true
+tide:
+ merge_method:
+ acme/dummy: squash
+ merge_commit_template:
+ acme/dummy:
+ title: "{{.Title}} ({{.Repository.NameWithOwner}}#{{.Number}})"
+ body: "{{.Body}}"
+ blocker_label: hold
+ max_goroutines: 5
+ queries:
+ - labels:
+ - approved
+ missingLabels:
+ - do-not-merge
+ - do-not-merge/hold
+ - do-not-merge/work-in-progress
+ - needs-ok-to-test
+ - needs-rebase
+ repos:
+ - acme/dummy
\ No newline at end of file
diff --git a/pkg/pipelinescheduler/testdata/merger_with_merge_commit_template/parent.yaml b/pkg/pipelinescheduler/testdata/merger_with_merge_commit_template/parent.yaml
new file mode 100644
index 000000000..15a3c63fb
--- /dev/null
+++ b/pkg/pipelinescheduler/testdata/merger_with_merge_commit_template/parent.yaml
@@ -0,0 +1,42 @@
+trigger:
+ trusted_org: roadrunner-corp
+approve:
+ lgtm_acts_as_approve: true
+ ignore_review_state: false
+schedulerAgent:
+ agent: prow
+merger:
+ blocker_label: hold
+ max_goroutines: 5
+postsubmits:
+ entries:
+ - name: release
+ context: ""
+ branches:
+ - master
+ agent: tekton
+
+presubmits:
+ entries:
+ - name: integration
+ agent: tekton
+ always_run: true
+ context: integration
+ rerun_command: /test this
+ trigger: (?m)^/test( all| this),?(\s+|$)
+
+queries:
+ - labels:
+ entries:
+ - approved
+ missingLabels:
+ entries:
+ - do-not-merge
+ - do-not-merge/hold
+ - do-not-merge/work-in-progress
+ - needs-ok-to-test
+ - needs-rebase
+plugins:
+ entries:
+ - approve
+ - trigger
\ No newline at end of file
diff --git a/pkg/pipelinescheduler/testdata/merger_with_merge_commit_template/plugins.yaml b/pkg/pipelinescheduler/testdata/merger_with_merge_commit_template/plugins.yaml
new file mode 100644
index 000000000..3f76bc36e
--- /dev/null
+++ b/pkg/pipelinescheduler/testdata/merger_with_merge_commit_template/plugins.yaml
@@ -0,0 +1,13 @@
+approve:
+ - ignore_review_state: false
+ lgtm_acts_as_approve: true
+ repos:
+ - acme/dummy
+plugins:
+ acme/dummy:
+ - approve
+ - trigger
+triggers:
+ - repos:
+ - acme/dummy
+ trusted_org: roadrunner-corp
\ No newline at end of file
diff --git a/pkg/pipelinescheduler/testdata/merger_with_merge_commit_template/repo.yaml b/pkg/pipelinescheduler/testdata/merger_with_merge_commit_template/repo.yaml
new file mode 100644
index 000000000..92c15d975
--- /dev/null
+++ b/pkg/pipelinescheduler/testdata/merger_with_merge_commit_template/repo.yaml
@@ -0,0 +1,5 @@
+merger:
+ merge_method: squash
+ merge_commit_template:
+ title: "{{.Title}} ({{.Repository.NameWithOwner}}#{{.Number}})"
+ body: "{{.Body}}"
\ No newline at end of file
diff --git a/pkg/pipelinescheduler/testhelpers/helpers.go b/pkg/pipelinescheduler/testhelpers/helpers.go
index 321528fea..e3bc08075 100644
--- a/pkg/pipelinescheduler/testhelpers/helpers.go
+++ b/pkg/pipelinescheduler/testhelpers/helpers.go
@@ -39,6 +39,10 @@ func CompleteScheduler() *schedulerapi.SchedulerSpec {
MaxGoroutines: pointerToRandomNumber(),
StatusUpdatePeriod: pointerToRandomDuration(),
SyncPeriod: pointerToRandomDuration(),
+ MergeCommitTemplate: &schedulerapi.MergeCommitTemplate{
+ Title: "{{.Title}} ({{.Repository.NameWithOwner}}#{{.Number}})",
+ Body: "{{.Body}}",
+ },
},
Presubmits: &schedulerapi.Presubmits{
Items: []*job.Presubmit{