Skip to content

feat(release-please): org-native reusable workflow on org release App#16

Merged
JacobPEvans-personal merged 1 commit into
mainfrom
feat/release-please-org-native
May 31, 2026
Merged

feat(release-please): org-native reusable workflow on org release App#16
JacobPEvans-personal merged 1 commit into
mainfrom
feat/release-please-org-native

Conversation

@JacobPEvans-personal
Copy link
Copy Markdown
Member

@JacobPEvans-personal JacobPEvans-personal commented May 31, 2026

Org-native release-please reusable workflow

What

Adds the canonical _release-please.yml reusable workflow to dryvist/.github,
hosted once for the whole org. Clean and direct: mint an org App token, run
release-please.

Why

Every release-candidate repo currently calls
JacobPEvans-personal/.github/.github/workflows/_release-please.yml@main,
whose token mint 404s because that App is not installed on the dryvist org
so every release-please run fails and no repo cuts releases via this path. Two
root causes: a cross-account dependency and an uninstalled App.

This fixes both: org-owned (no personal-account dependency) and authenticated
with the org-level release Appapp-id from the
GH_ACTION_RELEASE_PLEASE_APP_ID org variable, private key from the
GH_ACTION_RELEASE_PLEASE_PRIVATE_KEY org secret. No per-repo secrets-sync.
The App token (not GITHUB_TOKEN) keeps release PRs triggering pull_request
CI gates.

Intentionally omitted from the old reusable

Kept deliberately clean — two behaviors from JacobPEvans-personal/.github's
_release-please.yml were not copied over because they are workarounds:

  1. Auto-merge re-poke + retry loop (the "RC3/RC2" GitHub auto-merge bug
    workaround, plus its helper script). Assuming GitHub auto-merge works; the
    release PR is merged by each repo's normal flow. If release PRs visibly
    stall after this lands, auto-merge comes back as a deliberate, documented
    step.
  2. always-bump-minor jq override that rewrote release-please-config.json
    at runtime to block automated major bumps. A workflow editing a repo's
    config on the fly is a workaround. If the org wants to forbid automated
    major bumps, set "versioning" in each repo's release-please-config.json
    (declarative, per-repo, reviewable).

Neither omission blocks the core fix (token mint + release-please).

Follow-up (not in this PR)

  • Repoint each release-candidate repo's caller from JacobPEvans-personal/.github
    dryvist/.github, passing GH_ACTION_RELEASE_PLEASE_PRIVATE_KEY.
  • Operator action: install the org release App on the org, all repos,
    Contents + Pull requests write. Token mint 404s until then.

Validation

actionlint clean.

Cost impact

free — a reusable definition, no Actions capacity of its own. Calling repos
already run release-please on push to main (currently failing); this restores
them, all on public repos.

Refs: dryvist/terraform-github#6

Host the canonical release-please workflow once here so every repo runs identical logic with zero per-repo drift, replacing the cross-account caller (JacobPEvans-personal/.github/_release-please.yml) that 404s on every run because that App is not installed on the org.

Auth uses the org-level release App: app-id from the GH_ACTION_RELEASE_PLEASE_APP_ID org variable, private key from the GH_ACTION_RELEASE_PLEASE_PRIVATE_KEY org secret. No per-repo secrets-sync, no personal-account dependency. The App token (vs default GITHUB_TOKEN) keeps release PRs triggering pull_request CI gates.

Refs: dryvist/terraform-github#6

Assisted-by: Claude:claude-opus-4-8
@JacobPEvans-personal JacobPEvans-personal force-pushed the feat/release-please-org-native branch from 747e547 to 76e9e66 Compare May 31, 2026 17:46
@JacobPEvans-personal JacobPEvans-personal merged commit 785b1fd into main May 31, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant