Repository navigation
Adopt the GitHub surface unblocked by provider-upjet-github TF 6.13.0 (rulesets, Actions SHA-pinning, collaborators) #121
Description
🤖 Generated by the Agentic Engineer
Evidence
Provider v0.20.0 has released the generated schema capabilities that previously blocked this adoption work. The complete release CRD tree at a211e095e2fe49c477836acec2ad4a28aa60e030 and inspected current main 0609e5fcca24d0f737c8cd9c6b4a39439f51f3ba contain identical relevant CRD blobs.
| Capability | Released schema | Remaining gate |
|---|---|---|
| Required status checks | Typed doNotEnforceOnCreate |
Real create/reconcile controls |
| Custom-property scoping | repositoryProperty present |
Full Observe-first adoption and selector readback |
| Copilot review | copilotCodeReview present |
Maintainer activation decision |
| Push rulesets | Target push and four file restriction types present |
Approved policy, scope and native controls |
| Actions SHA pinning | shaPinningRequired on organization and repository permissions |
Ownership decision and effective per-repository readback |
| Collaborator management | RepositoryCollaboratorSet present |
Access-management evaluation and authoritative ownership |
Code-quality, repository-target/name/transfer, organization-settings and actor/event workflow-execution protection remain absent from the generated schema. Secret-scanning alert resolution is separately tracked in #194. An available bypass actor does not supply a missing rule.
Deployment and adoption gate
The release-availability and installed-schema blockers are cleared. On 2026-10-03, read-only inspection confirms provider v0.20.0 is Installed=True and Healthy=True, and the served RepositoryPermissions CRD exposes shaPinningRequired. A complete organization-admin census and two reads of every active repository setting confirm SHA pinning is required on all 23 active repositories, including Actions; repeated settings and the repository census remained stable. Ready=True and Synced=True cannot substitute for effective SHA-pinning or ruleset readback.
Acceptance criteria
- Verify the installed provider release and CRD fields, including
shaPinningRequired. - Confirm effective SHA pinning for every active repository, including Actions; current native readback covers all 23. Reconciliation proof was recorded by the maintainer on 2026-09-25 in this delivery record.
- Use per-repository SHA pinning and authoritative RepositoryPermissions ownership, as recorded in the maintainer delivery record. No Actions exception is required.
- Adopt the custom-property-scoped rulesets Observe-first and read back exact selectors.
- Record the maintainer's Copilot activation decision before any adoption.
- Decide and validate push-ruleset adoption now that the schema can express it.
- Evaluate
RepositoryCollaboratorSetagainst the access-management requirements. - Refresh Adopt supported GitHub rulesets and track remaining provider gaps #69's capability matrix from the released CRDs; retain the distinct unsupported policies.
- Resolve Model org-wide GitHub settings (webCommitSignoffRequired, default permission, 2FA) once the provider supports it #85's organization-settings ownership and upstream support path; external contributions require separate approval.
Evidence: complete immutable release CRD tree. PR #400 updates the repository capability documentation. Part of #69; related: #67, #85, #115, #194 and #226. This issue remains open for adoption and live enforcement proof.
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Start date
Target date
Effort
Projects
- StatusShow more project fields🧊 Icebox
Activity
coderabbitai commentedon Jul 25, 2026
🔗 Related PRs
#74 - feat(rulesets): require the CodeRabbit review status check org-wide [merged]
#75 - revert(rulesets): drop the provider-uncreatable CodeRabbit required-check ruleset [merged]
#78 - feat(repositories): declare provider-upjet-unifi (net-new Library repo) [merged]
#86 - fix: gate repository-permissions/ until provider-upjet-github supports shaPinningRequired [merged]
#88 - feat: archived-repo pattern + reusable-workflows archival groundwork [merged]
📝 Issue Planner
Check the box below or use the
@coderabbitai plancommand to generate an implementation plan and prompts that you can use with your favorite coding assistant.🧪 Issue enrichment is currently in open beta.
You can configure auto-planning by selecting labels in the issue_enrichment configuration.
To disable automatic issue enrichment, add the following to your
.coderabbit.yaml:💬 Have feedback or questions? Drop into our discord!
devantler commentedon Sep 25, 2026
Status check (2026-09-25): the SHA-pinning precondition is now met
repositorypermissions.actions.github.m.upbound.ioCRD exposesshaPinningRequired, alongsideallowedActions,allowedActionsConfig,enabledandrepository. The CRD being installed also means its resource definition is active in the platform, which is what stalled the tenant health check on 2026-07-09.deploy/repository-permissions/is still commented out ofdeploy/kustomization.yaml, so SHA pinning is still not enforced anywhere.What is left before wiring it in: an organization-wide audit that every
uses:in every managed repository is pinned to a full commit SHA, since enforcement breaks a workflow the moment it meets a tag. Local./references are exempt. The catalogue move to this repository (#243) adds no remote self-references, so it does not change that audit.devantler commentedon Sep 25, 2026
SHA-pin audit (read-only, 2026-09-25)
Every
uses:on the default branch of all 23 active repositories, across 144 workflows and 52action.yml/action.yamlfiles, 1,232 references in all:./paths. Every one of the 80 first-partydevantler-tech/...references is SHA-pinned.platform-template.github/workflows/bootstrap.yaml:127usesactions/create-github-app-token@v3, deliberately, via azizmor.ymlallowance foractions/*. It needs pinning, and that allowance should go so it cannot let tags back in..githubworkflow-templates/example.yaml:14usesactions/checkout@v6. It breaks no existing workflow, but anything created from the template would fail under enforcement.ksailsystem-test-hetzner.yamluses$/.github/actions/...(lines 261, 296, 365, 372). This is GitHub's self-repository syntax: the 2026-09-25 run log shows it resolving todevantler-tech/ksail/.github/actions/ksail-cluster@<the workflow's own SHA>. That run failed on an SSH timeout, which ksail#7288 addresses, not on resolution. Before enforcement, confirm thatsha_pinning_requiredaccepts this form. It resolves to a full SHA, but that is an assumption until observed.So enforcement is two small fixes and one verification away.
fix(ci): pin the bootstrap token action to a commit (#201)
fix(templates): pin the example workflow's checkout to a full commit …
devantler commentedon Sep 25, 2026
Both audit fixes merged (2026-09-25):
actions/create-github-app-tokento a commit and removes thezizmorexception that allowed tags.Every
uses:on every active repository's default branch is now either SHA-pinned or local. The one open question is whethersha_pinning_requiredaccepts GitHub's$/self-repository form, whichksailuses in four places. After that, wiringdeploy/repository-permissions/intodeploy/kustomization.yamlturns enforcement on.devantler commentedon Sep 25, 2026
$/self-repository references are accepted under SHA pinning, verified live (2026-09-25).platformalready enforcessha_pinning_required, so I pushed a throwaway branch there with two push-triggered probe workflows, then deleted the branch (commita4dc03aae0102fe27a1a6ea58b58edcdd61f9b5a):actions/checkout@v6was refused at job setup: "The action actions/checkout@v6 is not allowed in devantler-tech/platform because all actions must be pinned to a full-length commit SHA." So enforcement was live for the probe.uses: $/.github/actions/probe-self-reporan and succeeded. GitHub resolved it todevantler-tech/platform/.github/actions/probe-self-repo@a4dc03aae0102fe27a1a6ea58b58edcdd61f9b5a, the running commit's full SHA.This matches GitHub's changelog for the syntax.
ksail's four$/references are therefore safe under enforcement, and every audit item above is closed. Next: wiredeploy/repository-permissions/in.feat(github): require actions pinned to a full commit SHA on every re…
devantler commentedon Sep 25, 2026
SHA pinning is enforced (2026-09-25). #255 (fixes #253) published
deploy/repository-permissions/with all 21 active repositories,actionsincluded. After release, everyRepositoryPermissionsisSynced/Ready, and GitHub reportssha_pinning_required: trueon all 21. Two acceptance items here are done: the provider repin (v0.20.0, where the CRD carriesshaPinningRequired), and the permissions reconciling with live GitHub confirming enforcement. Per-repository rather than organization-wide was the path taken, since it needs no organization-level App scope and keeps archived repositories out.Still open here: adopting the six repository-property org rulesets, the
copilotCodeReviewruleset, the push-rulesets decision,RepositoryCollaboratorSet, and the #69/#85 updates.