Skip to content

music-curator push allowlist: the Actions-app entry applies successfully but never persists #148

Description

@cpitzi

Surfaced while applying unrelated changes during the epigaea rename. This has been carried as "an apply still owed" from #98 — it is not. The apply runs, reports success, and the change does not take.

Evidence. terraform apply completes cleanly:

github_branch_protection.merge_gate["music-curator"]: Modifying... [id=BPR_kwDOS60XPc4E3jCB]
github_branch_protection.merge_gate["music-curator"]: Modifications complete after 6s
Apply complete! Resources: 0 added, 2 changed, 0 destroyed.

Live state immediately afterward:

$ gh api repos/lentago/music-curator/branches/main/protection/restrictions
{"apps":[],"teams":[],"users":["cpitzi"]}

And the very next terraform plan proposes the identical change again — a perpetual diff, permanently.

Why it matters beyond plan noise. terraform/README.md documents this allowance as load-bearing: the GitHub Actions app is on music-curator's push allowlist "so follow-fold's documented bot merge (music-curator#9) keeps working." If the entry has never actually been live, then either that bot merge does not work, or it works by some other route and the config encodes a belief about the system that is not true. Both are worth knowing; a config that describes a capability the platform never accepted is worse than an absent one, because it reads as covered.

Likely mechanism (unverified): GitHub's branch-protection restrictions API accepts app entries only for apps installed on the repository with write access, and appears to silently drop entries it will not honor rather than erroring. That would explain an apply that reports success while changing nothing.

Worth checking, in order:

  1. Has follow-fold actually been merging its own PRs, or has that quietly required a human all along?
  2. Is the github-actions app even addressable in a push allowlist, or is the org-level "Allow GitHub Actions to create and approve pull requests" setting the real control surface?
  3. If the capability is unreachable, remove the allowance from protection.tf and correct the README — the perpetual diff is a standing lie in every plan, and eliminating it makes real drift visible again.

Related: #98 (where this was first recorded as owed), and the plan-noise principle — a diff that never clears trains readers to skim plans, which is exactly how a genuine change slips through.

Activity

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

    bugSomething is broken

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions