Skip to content

ci: use GitHub App token for release-please PRs - #120

Merged
dougborg merged 1 commit into
mainfrom
ci/release-app-token
Jul 25, 2026
Merged

dougborg merged 1 commit into
mainfrom
ci/release-app-token

Conversation

@dougborg

Copy link
Copy Markdown
Owner

Summary

release.yml currently runs googleapis/release-please-action with no explicit token:, so it falls back to the default GITHUB_TOKEN. That means any release PR release-please opens is authored by github-actions[bot].

GitHub does not trigger pull_request workflows from events authored by GITHUB_TOKEN (to prevent recursive workflow loops). Concretely, this repo's ci.yml runs commitlint, fmt, schemas, test, audit, build, etc. on pull_request, none of which run automatically on a release-please PR today — if branch protection required any of these checks, the release PR could become impossible to merge without manually re-triggering CI.

Note: main currently has no branch protection configured on this repo (gh api repos/dougborg/AirHound/branches/main/protection returns 404), so this isn't fixing an active blocker right now — it's closing a gap that would otherwise bite the moment required status checks are turned on, and it also gives release PRs the same CI signal as any other PR in the meantime.

What changed

  • Added a step that mints a short-lived installation token from the dougborg-release-please GitHub App (already installed on this repo; credentials already configured as the RELEASE_PLEASE_APP_ID variable and RELEASE_PLEASE_APP_PRIVATE_KEY secret — no secrets/variables were touched by this PR).
  • Passed that token to googleapis/release-please-action via token:.
  • Pinned actions/create-github-app-token to bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3, consistent with this repo's SHA-pinning convention.
  • Left build-release and publish-release untouched — artifact upload/download and the softprops/action-gh-release release-asset publishing continue to use GITHUB_TOKEN exactly as before. No package-registry or OIDC auth was touched.

Reference implementation: dougborg/harness-kit's .github/workflows/release-please.yml, adapted here to fit AirHound's multi-job artifact-build/publish structure (harness-kit's workflow only has the single release-please job).

Test plan

  • actionlint .github/workflows/release.yml passes with no findings
  • On merge, next push to main should open/update the release PR authored by the dougborg-release-please[bot] app instead of github-actions[bot], and CI should run on that PR

release-please currently uses the default GITHUB_TOKEN, so any release
PR it opens is authored by github-actions[bot]. Events on
GITHUB_TOKEN-authored PRs never trigger downstream pull_request
workflows, so CI checks would never run on the release PR. Minting an
installation token from the dougborg-release-please GitHub App (already
installed and configured via the RELEASE_PLEASE_APP_ID variable and
RELEASE_PLEASE_APP_PRIVATE_KEY secret) fixes this by making the app the
PR author instead.
@github-actions

Copy link
Copy Markdown

Preview Binaries

Flashable firmware binaries for this PR:

no_std (Embassy)

Artifact Size Download
bin-m5stickc 0.5 MB Download
bin-xiao 0.5 MB Download

std (ESP-IDF)

Artifact Size Download
bin-m5stickc-std 0.8 MB Download
bin-xiao-std 0.8 MB Download

@dougborg
dougborg merged commit 7402ada into main Jul 25, 2026
15 checks passed
@dougborg
dougborg deleted the ci/release-app-token branch July 25, 2026 20:00
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