e6bd4e6970
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:
```yaml
- uses: actions/create-github-app-token@v3
with:
client-id: ${{ vars.GITHUB_APP_CLIENT_ID }}
private-key: ${{ secrets.GITHUB_APP_PRIVATE_KEY }}
```
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: parkerbxyz <17183625+parkerbxyz@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
21 lines
635 B
JavaScript
21 lines
635 B
JavaScript
import { DEFAULT_ENV } from "./main.js";
|
|
|
|
for (const [key, value] of Object.entries({
|
|
...DEFAULT_ENV,
|
|
"INPUT_CLIENT-ID": "",
|
|
"INPUT_APP-ID": "",
|
|
})) {
|
|
process.env[key] = value;
|
|
}
|
|
|
|
// Log only the error message, not the full stack trace, because the stack
|
|
// trace contains environment-specific paths and ANSI codes that differ
|
|
// between local and CI environments.
|
|
const _error = console.error;
|
|
console.error = (err) => _error(err?.message ?? err);
|
|
|
|
// Verify `main` exits with an error when neither `client-id` nor `app-id` is set.
|
|
const { default: promise } = await import("../main.js");
|
|
await promise;
|
|
process.exitCode = 0;
|