Skip to content

Commit faca686

Browse files
devantlerclaude
andauthored
fix(deploy): pin webCommitSignoffRequired=true (org-enforced) + point skills/plugins MRs at renamed repos (#48)
The org enforces commit signoff and forbids disabling it per-repo, so the provider's update PATCH was failing with 422 on the skills/plugins rename (it sent web_commit_signoff_required=false). Pin webCommitSignoffRequired=true in the shared patch so every repo's update is self-consistent (the other 12 already had it true via LateInitialize). Also point the skills/plugins MRs' external-name at the now-renamed agent-skills/agent-plugins repos (k8s resource names kept stable to avoid a prune/re-adopt). Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent e27aba1 commit faca686

3 files changed

Lines changed: 24 additions & 18 deletions

File tree

‎deploy/repositories/kustomization.yaml‎

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,15 @@ resources:
2424
- ascoachingogvaner.yaml
2525
- wedding-app.yaml
2626
- fleet-gitops.yaml
27-
# Org-wide merge policy applied to EVERY Repository: squash-only (merge commits
28-
# and rebase disabled), auto-merge allowed, head branches auto-deleted, and
29-
# always-suggest-updating-PR-branches. Keeping it here (not per-file) makes it
30-
# the single source of truth and auto-applies to every future repo.
27+
# Org-wide repo settings applied to EVERY Repository, single source of truth
28+
# (auto-applies to every future repo):
29+
# - squash-only merge policy (merge commits + rebase disabled; auto-merge,
30+
# auto-delete head branches, always-suggest-updating-PR-branches enabled).
31+
# - webCommitSignoffRequired: true — the org ENFORCES commit signoff and it
32+
# can't be disabled per-repo, so the provider must always send true (else an
33+
# update PATCH gets 422 "Commit signoff is enforced ... and cannot be
34+
# disabled"). The 12 already-adopted repos had this true via LateInitialize;
35+
# pinning it here makes every repo's update self-consistent and robust.
3136
patches:
3237
- target:
3338
group: repo.github.m.upbound.io
@@ -52,3 +57,6 @@ patches:
5257
- op: add
5358
path: /spec/forProvider/deleteBranchOnMerge
5459
value: true
60+
- op: add
61+
path: /spec/forProvider/webCommitSignoffRequired
62+
value: true

‎deploy/repositories/plugins.yaml‎

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
apiVersion: repo.github.m.upbound.io/v1alpha1
22
kind: Repository
33
metadata:
4+
# NOTE: the k8s resource name stays "plugins" (historical) to avoid a
5+
# prune/re-adopt cycle; it manages the renamed agent-plugins repo. external-name
6+
# + forProvider.name are both agent-plugins now that the rename has reconciled.
47
name: plugins
58
annotations:
6-
crossplane.io/external-name: plugins
9+
crossplane.io/external-name: agent-plugins
710
spec:
8-
# RENAME plugins -> agent-plugins: forProvider.name is the new name while
9-
# external-name stays the current repo ("plugins"), so Crossplane renames the
10-
# repo IN PLACE (an Update, not a re-create) — GitHub keeps the old name as a
11-
# redirect. external-name is updated to agent-plugins in a follow-up once the
12-
# rename has reconciled. Squash-only merge policy still comes from the shared
13-
# patch; everything else is adopted via LateInitialize.
11+
# Manages the agent-plugins repo (renamed from plugins). Squash-only merge
12+
# policy comes from the shared patch; everything else is adopted via LateInitialize.
1413
managementPolicies:
1514
- Observe
1615
- Create

‎deploy/repositories/skills.yaml‎

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
apiVersion: repo.github.m.upbound.io/v1alpha1
22
kind: Repository
33
metadata:
4+
# NOTE: the k8s resource name stays "skills" (historical) to avoid a
5+
# prune/re-adopt cycle; it manages the renamed agent-skills repo. external-name
6+
# + forProvider.name are both agent-skills now that the rename has reconciled.
47
name: skills
58
annotations:
6-
crossplane.io/external-name: skills
9+
crossplane.io/external-name: agent-skills
710
spec:
8-
# RENAME skills -> agent-skills: forProvider.name is the new name while
9-
# external-name stays the current repo ("skills"), so Crossplane renames the
10-
# repo IN PLACE (an Update, not a re-create) — GitHub keeps the old name as a
11-
# redirect. external-name is updated to agent-skills in a follow-up once the
12-
# rename has reconciled. Squash-only merge policy still comes from the shared
13-
# patch; everything else is adopted via LateInitialize.
11+
# Manages the agent-skills repo (renamed from skills). Squash-only merge policy
12+
# comes from the shared patch; everything else is adopted via LateInitialize.
1413
managementPolicies:
1514
- Observe
1615
- Create

0 commit comments

Comments
 (0)