Skip to content

ci: migrate create-github-app-token from deprecated app-id to client-id #48

Description

@blairham

Summary

actions/create-github-app-token@v3 has soft-deprecated the app-id input in
favor of client-id. Every workflow run that mints a pinpredict-argocd App
token now logs:

Input 'app-id' has been deprecated with message: Use 'client-id' instead.

Non-blockingapp-id still works and tokens still mint; this is warning
noise, surfaced org-wide on any repo that touches the shared CI plumbing (first
noticed on a pinpredict/legate tag-config run).

Affected usages

app-id: ${{ secrets.BOOTSTRAP_APP_ID }} appears in:

  • pinpredict/.github
    • .github/workflows/tag-config.yml
    • .github/workflows/docker-release.yml
    • actions/setup-go/action.yml (composite — 2 usages)
  • pinpredict/platform-gitops
    • .github/workflows/bootstrap-service-state.yaml
  • Consumer repos — each repo's local create-github-app-token step
    (e.g. the validate-platform-services job in legate/herald/… ci.yml).

Why it's not a drive-by fix

client-id expects the App's OAuth client ID (Iv23li…), which is a
different value from the numeric App ID (3187934) held in BOOTSTRAP_APP_ID.
Swapping app-id:client-id: while still feeding the numeric App ID makes the
token mint fail, turning a harmless warning into a hard failure everywhere.
A new secret must be seeded first.

Fix plan

  1. Retrieve the pinpredict-argocd App's Client ID (App settings → General →
    Client ID).
  2. Add org Actions secret BOOTSTRAP_APP_CLIENT_ID, scoped to the same repo
    set as BOOTSTRAP_APP_ID / BOOTSTRAP_APP_PRIVATE_KEY (currently 17 repos).
  3. Swap app-id: ${{ secrets.BOOTSTRAP_APP_ID }}
    client-id: ${{ secrets.BOOTSTRAP_APP_CLIENT_ID }} across the workflows/
    composite above (private-key input is unchanged).
  4. Roll the consumer-repo local usages (can lag; warning-only until done).
  5. Once all callers are migrated, optionally retire BOOTSTRAP_APP_ID.

Acceptance

No app-id has been deprecated warnings in tag-config / docker-release / setup-go
/ bootstrap runs; token mint still succeeds.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions