Skip to content

fix(governance): audit and reconcile repository policy - #81

Merged
zoeyrose merged 1 commit into
mainfrom
fix/governance-drift-prevention
Sep 2, 2026
Merged

fix(governance): audit and reconcile repository policy#81
zoeyrose merged 1 commit into
mainfrom
fix/governance-drift-prevention

Conversation

@zoeyrose

@zoeyrose zoeyrose commented Sep 1, 2026

Copy link
Copy Markdown
Member

Summary

Bring all active Atrinik repositories, including web-platform, under one explicit governance inventory and make live drift visible and fail closed.

Implementation / behavior

  • Add web-platform to the pull-request and custom-property desired state without inventing a required CI check before the repository has a workflow.
  • Make both publishers reject unregistered active repositories and missing governed repositories while preserving absent archived history.
  • Add a read-only audit for repository inventory, merge defaults, custom-property schema and values, inherited rulesets, and exposed security baseline.
  • Run the audit on schedule and after publisher applies, with tests for unmanaged repositories, drift, and temporary GitHub advisory workspaces.

Validation

  • bin/validate
  • bash -n bin/* tests/*.sh
  • shellcheck bin/* tests/*.sh
  • actionlint
  • complete shell test suite
  • bin/audit against the live Atrinik organization
  • git diff --check

Limitations / follow-up

Live settings were reconciled with the authenticated organization publisher before this PR was opened; the post-apply audit passed for 21 active repositories. Future repository creation still requires registering both desired-state inventories and running the publisher workflow, with the scheduled audit providing fail-closed detection if that step is missed.

## Summary

Bring all active Atrinik repositories, including web-platform, under one explicit governance inventory and make live drift visible and fail closed.

## Implementation / behavior

- Add web-platform to the pull-request and custom-property desired state without inventing a required CI check before the repository has a workflow.
- Make both publishers reject unregistered active repositories and missing governed repositories while preserving absent archived history.
- Add a read-only audit for repository inventory, merge defaults, custom-property schema and values, inherited rulesets, and exposed security baseline.
- Run the audit on schedule and after publisher applies, with tests for unmanaged repositories, drift, and temporary GitHub advisory workspaces.

## Validation

- bin/validate
- bash -n bin/* tests/*.sh
- shellcheck bin/* tests/*.sh
- actionlint
- complete shell test suite
- bin/audit against the live Atrinik organization
- git diff --check

## Limitations / follow-up

Live settings were reconciled with the authenticated organization publisher before this PR was opened; the post-apply audit passed for 21 active repositories. Future repository creation still requires registering both desired-state inventories and running the publisher workflow, with the scheduled audit providing fail-closed detection if that step is missed.
@zoeyrose zoeyrose moved this to Review in Atrinik work Sep 1, 2026
@zoeyrose
zoeyrose merged commit d5f31f1 into main Sep 2, 2026
5 checks passed
@zoeyrose
zoeyrose deleted the fix/governance-drift-prevention branch September 2, 2026 04:36
@github-project-automation github-project-automation Bot moved this from Review to Done in Atrinik work Sep 2, 2026
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

🎉 This PR is included in version 2.6.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant