Skip to content

feat: add client-id input and deprecate app-id - #353

Merged
parkerbxyz merged 13 commits into
mainfrom
copilot/v3-breaking-changes-tracking
Apr 11, 2026
Merged

feat: add client-id input and deprecate app-id#353
parkerbxyz merged 13 commits into
mainfrom
copilot/v3-breaking-changes-tracking

Conversation

CopilotAI commented Mar 18, 2026

Copy link
Copy Markdown
Contributor

GitHub now recommends using a GitHub App's Client ID for authentication. This PR adds a first-class client-id input, keeps app-id available for compatibility, and makes the migration path explicit in both runtime behavior and documentation.

Action inputs

  • Adds a new client-id input
  • Removes required from app-id
  • Marks app-id as deprecated in action.yml

Runtime behavior

  • Updates input parsing to prefer client-id
  • Falls back to app-id for existing workflows
  • Adds a clear error when neither client-id nor app-id is provided

Docs

  • Updates the README to recommend client-id
  • Switches usage examples to client-id
  • Documents that app-id is deprecated and that client-id takes precedence if both are set

Regression coverage

  • Adds a focused test proving a client-ID-shaped value works through the new client-id input
  • Adds coverage for the missing-ID validation path
  • Updates snapshots to lock in the new metadata and runtime behavior

Resulting usage

Users can migrate to the new input name directly:

- uses: actions/create-github-app-token@v3with:
client-id: ${{ vars.GITHUB_APP_CLIENT_ID }}private-key: ${{ secrets.GITHUB_APP_PRIVATE_KEY }}

Co-authored-by: parkerbxyz <17183625+parkerbxyz@users.noreply.github.com>
CopilotAI changed the title [WIP] [TRACK-001] Track v3 breaking changesDocument client ID support on the existing app-id inputMar 18, 2026
CopilotAI requested a review from parkerbxyzMarch 18, 2026 20:15
@parkerbxyz

Copy link
Copy Markdown
Contributor

@copilot Let's also add a new client-id input, remove required from app-id, and mark app-id as deprecated.

Co-authored-by: parkerbxyz <17183625+parkerbxyz@users.noreply.github.com>

CopilotAI commented Mar 18, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot Let's also add a new client-id input, remove required from app-id, and mark app-id as deprecated.

Implemented in 37f42c5: added client-id, made app-id non-required with a deprecation message, updated runtime handling/docs, and added focused tests for the new input path and missing-ID validation.

CopilotAI changed the title Document client ID support on the existing app-id inputAdd client-id input and deprecate app-idMar 18, 2026
Comment threadmain.js Outdated
parkerbxyzand others added 2 commits March 19, 2026 23:05
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Override console.error to log only the error message (not the full
stack trace) in main-missing-client-and-app-id.test.js. The stack
trace contains environment-specific paths and ANSI codes that differ
between local and CI environments, causing snapshot mismatches.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the action to support GitHub App authentication via a new client-id input while keeping app-id for backwards compatibility (now deprecated), and makes the runtime + docs prefer client-id.

Changes:

  • Add client-id input, deprecate app-id, and update action metadata accordingly.
  • Update runtime input parsing to prefer client-id, fallback to app-id, and error when neither is set.
  • Update README and add/adjust tests + snapshots to cover the new input and missing-ID validation.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
tests/main-missing-client-and-app-id.test.jsAdds coverage for the new “neither ID provided” failure path and snapshots its output.
tests/main-client-id.test.jsAdds a regression test ensuring a client-ID-shaped value works via client-id.
tests/index.js.snapshotUpdates snapshots to capture new stdout/stderr behavior and deprecated-input output.
tests/README.mdUpdates test-writing guidance to point to the new missing-ID test as the “expected error” template.
main.jsPrefers client-id over app-id and adds explicit validation when neither is provided.
lib/main.jsRenames the first parameter to clientId and wires it into auth creation.
dist/main.cjsRebuild output reflecting the new input parsing and renamed parameter.
action.ymlAdds client-id, makes app-id optional, and marks app-id deprecated via deprecationMessage.
README.mdUpdates docs and examples to recommend client-id, and documents precedence + deprecation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadmain.js
Comment threadlib/main.js
Comment threadlib/main.js
@parkerbxyz
parkerbxyz marked this pull request as ready for review April 10, 2026 23:27
@parkerbxyz
parkerbxyz requested a review from a team as a code ownerApril 10, 2026 23:27
@parkerbxyz
parkerbxyz requested a review from CopilotApril 10, 2026 23:30

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the action to support GitHub App Client ID as a first-class input (client-id), while keeping app-id as a deprecated fallback for backwards compatibility.

Changes:

  • Adds client-id to action.yml, marks app-id as optional + deprecated, and updates runtime input parsing to prefer client-id.
  • Updates docs and usage examples to recommend client-id and describe precedence/validation behavior.
  • Adds regression tests for the new input and the “missing both IDs” error path, updating snapshots accordingly.
Show a summary per file
FileDescription
action.ymlAdds client-id, deprecates and un-requires app-id.
main.jsPrefers client-id, falls back to app-id, errors if neither provided.
lib/main.jsRenames the identifier parameter and wires it into createAppAuth.
dist/main.cjsBundled output reflecting the input and auth changes.
README.mdUpdates recommended configuration and examples to use client-id.
tests/main-client-id.test.jsAdds coverage that client-id input flows through execution.
tests/main-missing-client-and-app-id.test.jsAdds coverage for the missing-ID validation/error behavior.
tests/index.js.snapshotUpdates snapshots for new tests and deprecation output.
tests/README.mdUpdates guidance to point to the new “expected error” test.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 8/9 changed files
  • Comments generated: 1

Comment threadtests/README.md Outdated
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Rename app-id input to client-id or app-client-id

5 participants

@parkerbxyz@paulchen5@jeffwidman