Skip to content

Repoint organization-required workflows from actions to .github #237

Open
3 of 3 issues completed
Open

Description

@devantler

🤖 Generated by the Agentic Engineer

Problem

devantler-tech/actions cannot be archived while any organization-required workflow still resolves from it. An unavailable required source can block merges, so migrate through reviewed declarative adoption, verify native inheritance and exercise each changed rule on an ordinary consumer PR before retiring the legacy source.

Delivered and remaining evidence, 18 October 2026

  • World at Ruin's required regression rule is declared in deploy/ and its live inherited rule now names the maintained catalogue (933213756). Retain its existing delivery and behavioral receipts; this checkpoint is not a new regression run.
  • The language-selected Go rule was adopted Observe-first in Observe the existing organization Go workflow rule before migrating its CI source #643/fix(gitops): observe the required Go workflow policy #644, then migrated with complete policy backfill in Move the existing organization Go workflow rule to the maintained catalogue #645/fix(ci): use the maintained required Go workflow #646. v7.16.2 is published and applied; the native rule and inherited KSail rule independently name the maintained source. The existing selector, bypasses and protections are unchanged. KSail #7864 supplied the qualifying ordinary consumer: all eight selected Go jobs passed with native cache-policy proof, so Move the existing organization Go workflow rule to the maintained catalogue #645 is closed. The separate mirror-warmer change and full system matrix are still unfinished under KSail #7862/#7864.
  • Fresh public main-branch samples on KSail, World at Ruin, monorepo, this repository, go-template and dotnet-template still inherit legacy dependency review, auto-merge and workflow-vulnerability scanning (948529001). Go-template also has a separate required Go rule still naming the legacy source; dotnet-template retains the legacy .NET test source. The template rules are declared; dependency review is imported Observe-only. The other observed families still require safe complete adoption before a source switch.
  • These six public samples are not a complete organization-wide ruleset census. Do not treat the initial five-workflow snapshot as exhaustive or archive the legacy repository on this sample alone.

Acceptance criteria

  • Complete the organization-wide native inventory, including template-specific and overlapping rules; migrate every required reference to 948529001 without weakening its policy.
  • The declared World at Ruin rule names the maintained source and its regression guard pins that source.
  • Adopt remaining live-only rules through the reviewed declarative path, with complete observation/backfill before Update; retain any unsupported provider gap under Adopt supported GitHub rulesets and track remaining provider gaps #69.
  • Read back every changed rule and exercise an ordinary PR on at least one repository per rule, with the actual required jobs selected and completed.

Keep #565 and KSail #7348 separate: source migration does not repair the managed CodeQL writer, satisfy a dependency-PR cache observation or prove a sustained repository cache budget. Preserve all historical failed checkpoints. No direct settings write, new integration or legacy archive is authorized by this progress update.

Activity

  1. added theissue type on Sep 25, 2026
  2. moved this to 📥 Backlog in 🌊 Project Boardon Sep 25, 2026
  3. devantler commented on Sep 25, 2026

    @devantler
    ContributorAuthor

    🤖 Generated with Claude Code in an interactive session with the maintainer.

    Plan, from a read-only survey (2026-09-25)

    Read from each repository's effective branch rules. Five organization rulesets require a workflow from actions (948529001):

    Ruleset Workflow In deploy/ today Step
    21102220 World at Ruin regressions world-at-ruin-required-regressions.yaml Managed (Create/Update) Change repositoryId to 933213756; update its regression test
    17213449 DependencyReview dependency-review.yaml Observe-only, identity-only forProvider Declare the full spec from status.atProvider (verified complete: conditions, OrganizationAdmin bypass, doNotEnforceOnCreate), then promote with the new source
    3716878 EnableAutoMerge enable-auto-merge.yaml UI-managed (repository-property condition) Adopt Observe-only, read atProvider, then declare and promote
    14426226 ScanGitHubActions scan-for-workflow-vulnerabilities.yaml UI-managed Same
    10320335 Go validate-go-project.yaml UI-managed Same

    Provider v0.20.0 expresses repository-property conditions (#121), so every step goes through deploy/, and nothing needs a UI change.

    Order.

    1. After feat!: import the devantler-tech/actions catalogue #243 merges, so each workflow exists on this repository's main: one PR repoints the two declared rulesets and adopts the three UI-managed ones Observe-only.
    2. After atProvider is read back, a second PR declares their full spec with the new source.

    Each repoint is verified by a pull request in one affected repository still getting that required check. The validate-go-project copy here calls apply-signed-fixes at an actions commit until its re-pin, and that call keeps working because actions is only frozen, not archived.

  4. devantler commented on Oct 2, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Fresh native readback on 2026-10-02 still finds all five required-workflow families pointing at legacy Actions repository ID 948529001: dependency review, auto-merge, workflow security, Go validation and World at Ruin regressions. The current World at Ruin declaration retains that source, while dependency review remains identity-only and Observe-only.

    The existing two-stage adoption plan remains necessary: declare and reconcile the complete rulesets before repointing, then read back their effective source and run a qualifying consumer PR for every family. Catalogue CI cannot substitute for that consumer proof.

    Blocker: effective required-workflow source migration and qualifying consumer checks are not delivered. Legacy archival in #240 remains downstream of this work.

  5. devantler commented on Oct 4, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Verified migration gate — 2026-10-04

    A complete metadata and effective default-branch rule census found 70 legacy required-workflow declarations across 22 active public repositories. All five families in the criteria still resolve from repository 948529001. The canonical deploy-guards rule already resolves from repository 933213756, but is outside these five families. The census binds complete recursive trees, verified blobs and structural YAML to observed default-branch commits; its final head rebind completed at 11:17:32 UTC.

    #235 is closed and no longer blocks this work. The administrative organization-ruleset universe remains UNKNOWN because the current API authority cannot read it. Complete effective branch rules do not prove that administrative universe is complete. Do not change settings from a partial inventory.

    The next implementation is to adopt the three live-only general rules through #69, confirm provider support for complete workflow source specifications, and repoint the existing Go and World at Ruin declarations. Each changed ruleset needs native source readback and a qualifying consumer pull request. Blocker: complete administrative ruleset/provider evidence and verified canonical execution for each family.

  6. devantler commented on Oct 8, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Current-source correction at reviewed main f5bdae4233b8f5c64a88de717b134205d8f6cc97: the World at Ruin required-regression declaration and its regression test already name canonical catalogue repository 933213756. The earlier instruction to repeat that source edit is stale. This is declaration evidence; effective-source readback and a qualifying consumer run are still separate acceptance gates.

    The Go-template and .NET-template declarations still name the legacy catalogue. The existing staged plan remains appropriate for the other required-workflow families: first import the existing resources with Observe only, obtain their complete observed specification, then review any source change separately. Repository-projected rules do not prove the full administrative conditions, selectors or bypasses, so partial readback must not authorize Update. No GitHub settings were changed by this audit; #237 and legacy retirement #240 remain open.

  7. devantler commented on Oct 10, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Effective-source readback, 2026-10-10

    The rules GitHub actually applies to a default branch can be read with ordinary repository access (GET /repos/{owner}/{repo}/rules/branches/main). That answers the readback gate left open on 2026-10-08 without organization-admin access.

    Repository Required workflow Source today
    world-at-ruin world-at-ruin-required-regressions.yaml this repository (933213756), refs/heads/main
    go-template validate-go-project.yaml actions (948529001), refs/heads/main
    dotnet-template run-dotnet-tests.yaml actions (948529001), refs/heads/main
    all three dependency-review.yaml, enable-auto-merge.yaml, scan-for-workflow-vulnerabilities.yaml actions (948529001), refs/heads/main
    • World at Ruin rule: both remaining gates are met. It reads back with the new source, and pull requests there still get the check: the three most recent required runs today (09:55Z, 10:11Z and 10:12Z) all succeeded.
    • The two template rules match their declarations. Live and deploy/ agree, and both still name the frozen repository. They are the next change through deploy/ once this card is pulled into Ready; it is in Icebox today, and this note starts nothing.
    • One caution before repointing go-template. Its own CI only aggregates checks, so the required workflow is its only lint, dead-code and vulnerability check. Today that is the frozen copy, which no longer changes. After the repoint it is this repository's main, which changes with every merge here. Show first that this repository's copy passes on go-template's tree as a direct run, and repoint one template at a time.

    This projection shows the source of each applied rule. It does not show a ruleset's selectors or bypass list, so the Observe-first plan for the three organization-wide families stands. Nothing was changed in this run.

  8. devantler commented on Oct 18, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Delivered by #644: accepted head ca95b72a2785473641df859175bc4148f5ce5db6, signed merge e038a2ea5f78d31ac2ba57304b6a5f899d7b6b81 at 2026-10-18 11:02:08 UTC. The accepted and merged Git trees are identical (50106a40bbf070451a9505efbc5af957e1b92952). Release v7.16.1 points to that merge and CD 39121651933 succeeded.

    Native readback confirms the signed OCI revision 7.16.1@sha256:07eb9ff3bc61fd38a17390243b000be260b98455c3137c8296d0b4fa9f30f693 is verified and applied. The new Go rule observation is Ready, Synced and LastAsyncOperation successful, with only Observe authority and external identity 10320335.

    The previously unavailable complete organization selector is now positively observed: system property language includes Go; the ref selector includes ~DEFAULT_BRANCH. Existing OrganizationAdmin/always bypass, active enforcement, doNotEnforceOnCreate: true, workflow path and legacy source repository 948529001 are preserved. A fresh repository-level read remains identical to the pre-import policy. No GitHub setting or cluster resource was imperatively changed.

    This completes the read-only adoption prerequisite. It does not repoint the required Go workflow, reduce CI runtime, fix the managed CodeQL writer or satisfy the sustained cache-budget outcome. #237 retains source migration and qualifying consumer CI; #565 retains both-path cache acceptance.

  9. devantler commented on Oct 18, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Source migration delivered on 2026-10-18 through #646, merged at 12:11:40 UTC as signed 8d2203af130a8c27b8b98b3d7146f76b5ade7a98. Accepted head 499fcd00f41adec6569a6b38f0bb9efd93623e76 and the merge have identical tree a875305037e1b15459763482bb0050e9101d5c73. Full native validation passed; CodeRabbit returned a finding-free exact-head review after the earlier provider-schema finding was fixed with regression controls.

    v7.16.2 was published at 12:12:17 UTC. Release run 39126276906 and signed-manifest CD 39126314832 succeeded. Read-only deployment verification found the source signature verified and the applied revision exactly 7.16.2@sha256:77868c0f343bd1d4a38a368493432f332bf55d579caadb00b6dcb0f8b7f4c87b.

    The native ruleset is Ready and Synced at current generation 3. Its authority is exactly Observe/Update. A complete normalized comparison against the original observation confirms the only semantic policy change is required-workflow repository 948529001 to 933213756; branch/property scope, bypasses, enforcement, path and ref remain unchanged. GitHub's inherited KSail main-branch rule independently reads back the maintained source and unchanged do_not_enforce_on_create: true.

    The next ordinary KSail consumer is the mirror-warmer increment #7862. Keep #645 open until its full selected required Go validation and cache policy are observed there. #237 still owns the other legacy required-workflow families; #565 and KSail #7348 retain their separate behavior/budget outcomes and all historical failed checkpoints. No sustained-budget or whole-workflow speedup is claimed from the source switch alone. No direct configuration write, new App, paid resource or cache deletion was used.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    Priority

    None yet

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions