Skip to content

ci: use client-id instead of deprecated app-id for app tokens - #1784

Merged
spydon merged 1 commit into
mainfrom
session/frantic-plover-8j7v
Aug 31, 2026
Merged

ci: use client-id instead of deprecated app-id for app tokens#1784
spydon merged 1 commit into
mainfrom
session/frantic-plover-8j7v

Conversation

@spydon

@spydon spydon commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

What

Replace the deprecated app-id input of actions/create-github-app-token with client-id in the three workflows that still used it:

  • release-prepare.yml
  • release-publish.yml
  • sync-compliance.yml (forwarded as the client-id secret to the reusable workflow, which already accepts it at the pinned v1.5.0)

All three now use the existing vars.GH_APP_CLIENT_ID repository variable, the same pattern release-tag.yml already uses. The APP_ID secret is no longer referenced anywhere.

Why

Every Generate token step logged, twice (once for the main step, once for the post step):

##[warning]Input 'app-id' has been deprecated with message: Use 'client-id' instead.

The action declares deprecationMessage on app-id, so the warning fires whenever the key is present in with. Internally it does core.getInput("client-id") || core.getInput("app-id") and passes the result straight through as the JWT issuer, so the two inputs are interchangeable apart from the warning.

Test plan

  • No behaviour change to token generation; secrets.PRIVATE_KEY is untouched and GH_APP_CLIENT_ID is the client ID of the same app.
  • Note that release-tag.yml has not had a non-skipped run since it switched to client-id, so the first release cycle after this merges is the real exercise of the variable.

Summary by CodeRabbit

  • Chores
    • Updated release preparation, publishing, and compliance synchronization workflows to use the configured GitHub App client identifier.
    • Improved workflow configuration consistency across automated release processes.

actions/create-github-app-token deprecated the 'app-id' input in favour of
'client-id', which emitted a warning on every 'Generate token' step.

release-tag.yml already used 'client-id' with the existing GH_APP_CLIENT_ID
repository variable, so the remaining workflows now follow the same pattern
and the APP_ID secret is no longer referenced anywhere.
@coderabbitai

coderabbitai Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: b9aff8a1-f412-49e7-99e6-3ca2ff2da6b2

📥 Commits

Reviewing files that changed from the base of the PR and between 2069cbf and c05fb41.

📒 Files selected for processing (3)
  • .github/workflows/release-prepare.yml
  • .github/workflows/release-publish.yml
  • .github/workflows/sync-compliance.yml

Included review availability: Your plan provides up to 4 included reviews per hour; 2 remain after this review.


📝 Walkthrough

Walkthrough

Three GitHub Actions workflows now source the GitHub App client ID from the GH_APP_CLIENT_ID repository variable and pass it through the client-id input.

Changes

GitHub App token configuration

Layer / File(s) Summary
Workflow token input updates
.github/workflows/release-prepare.yml, .github/workflows/release-publish.yml, .github/workflows/sync-compliance.yml
The workflows replace app-id from secrets.APP_ID with client-id from vars.GH_APP_CLIENT_ID.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to c05fb

This PR replaces a deprecated GitHub App token input with the existing client ID variable in three workflows without changing token-generation behavior; no actionable merge-blocking risk remains after normal checks and review.

Suggested reviewers: grdsdev

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the primary change: replacing the deprecated app-id input with client-id for GitHub App tokens.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (3 skipped: 3 unsupported.)

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch session/frantic-plover-8j7v

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

spydon added a commit to supabase/sdk that referenced this pull request Aug 28, 2026
## What

Replace the deprecated `app-id` input of
`actions/create-github-app-token` with `client-id`.

- `release.yml`: the `release-please` job now reads the Supabase
Releaser client ID from a new `GH_APP_CLIENT_ID` repository variable
(already created) instead of `secrets.APP_ID`.
- `sync-sdk-compliance.yml`: drops the optional `app-id` secret input
and makes `client-id` required.

## Why

Every `Generate token` step logged, twice (once for the main step, once
for the post step):

```
##[warning]Input 'app-id' has been deprecated with message: Use 'client-id' instead.
```

The action declares `deprecationMessage` on `app-id`, so the warning
fires whenever the key is present in `with`, regardless of value. In the
reusable workflow that meant the warning appeared even for callers that
only passed `client-id`, because `app-id: ${{ secrets.app-id }}` was
still listed.

Internally the action does `core.getInput("client-id") ||
core.getInput("app-id")` and passes the result straight through as the
JWT issuer, so the two inputs are interchangeable apart from the
warning.

Client IDs are public app metadata (`GET /apps/supabase-releaser`), so a
repository variable is a better fit than a secret.

## Breaking change

`sync-sdk-compliance.yml` no longer accepts an `app-id` secret. Callers
pinned to earlier SHAs are unaffected. Callers bumping past this
revision must pass `client-id`:

- `supabase/supabase-js` already passes `client-id`.
- `supabase/supabase-flutter` is updated in
supabase/supabase-flutter#1784.
- `supabase/supabase-swift` still passes `app-id` and is pinned to
`v1.0.0`, so it needs updating before its next bump.

## Test plan

- No behaviour change to token generation; the same app and private key
are used.
- Verified `GH_APP_CLIENT_ID` matches the `supabase-releaser` app that
authors the release pull requests.
@spydon
spydon merged commit fa7533c into main Aug 31, 2026
28 checks passed
@spydon
spydon deleted the session/frantic-plover-8j7v branch August 31, 2026 09:41
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.

2 participants