feat(create-issues-from-todos): support client-id, deprecate app-id#271
feat(create-issues-from-todos): support client-id, deprecate app-id#271devantler wants to merge 3 commits into
Conversation
actions/create-github-app-token has deprecated the `app-id` input in favour of `client-id`, so every token-minting job emits a deprecation warning. Add a `client-id` input (preferred) and keep `app-id` as an optional, deprecated alias — both are wired through to the token action, and callers pass exactly one, so this is additive and backward-compatible (existing app-id callers keep working). Switch the composite's own CI self-test to client-id to exercise the preferred path and drop the warning. Unblocks the reusable-workflows scan-for-todo-comments migration (devantler-tech/reusable-workflows#308). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Code Coverage OverviewLanguages: Go, C# Go / code-coverage/testThe overall coverage remains at 50%, unchanged from the branch. C# / code-coverage/dotnetThe overall coverage remains at 100%, unchanged from the branch. Updated |
…v3.2.0 v2.2.1 predates client-id support (`Unexpected input(s) 'client-id'` → `appId option is required`). v3.2.0 adds the `client-id` input and is the pin already used elsewhere in the portfolio. Also clears the Node.js 20 deprecation warning. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
| steps: | ||
| - name: 🔑 Generate GitHub App Token | ||
| uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1 | ||
| uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 |
Note on the failing It is advisory — |
This PR is Root cause + fix is in #275 (the zizmor job was gated off for |
Adds repositories: \${{ github.event.repository.name }} to the
create-github-app-token step so the generated token is scoped to the
calling repository rather than the full installation, resolving the
zizmor "app token inherits blanket installation permissions" finding.
> 🤖 Generated by the Daily AI Assistant
What
Add a
client-idinput to thecreate-issues-from-todoscomposite action and markapp-idas a deprecated alias. Both are wired through toactions/create-github-app-token; callers pass exactly one.Why
actions/create-github-app-tokenhas deprecated theapp-idinput in favour ofclient-id(itsaction.yml:app-id … deprecationMessage: "Use 'client-id' instead."). Every token-minting job that still passesapp-idemits:Non-failing today, but deprecated inputs are eventually removed upstream — at which point the job breaks. This is the root-cause unblock for the remaining piece of reusable-workflows #308:
scan-for-todo-comments.yamlpassesapp-idto this composite, so the rw caller can only switch toclient-idonce the composite accepts it. The org already exposesvars.APP_CLIENT_IDalongsidevars.APP_ID, so no provisioning is needed.Approach — additive & backward-compatible (blast-radius first)
Per the repo's "prefer additive, keep an alias where feasible" guidance, this is not a breaking rename:
client-idinput (preferred).app-idkept as an optional, deprecated alias (wasrequired: true→required: false).create-github-app-token; a caller supplies exactly one, the empty one is ignored.app-private-keystays required (needed for either ID).Existing
app-idcallers keep working unchanged (they just keep emitting the upstream warning until they migrate). The composite's own CI self-test (test-create-issues-from-todos) is switched toclient-idto exercise the preferred path end-to-end and drop the warning in this repo's CI.Validation
actionlint .github/workflows/ci.yaml→ no new findings (only pre-existingcode-qualitypermission-scope warnings, unrelated).action.yamlYAML structure verified; token step forwards both inputs.client-id/vars.APP_CLIENT_IDwith a footnote on "exactly one".Follow-up (separate, gated on this release + repin)
Once released and repinned in reusable-workflows, switch
scan-for-todo-comments.yamlapp-id→client-idto close out #308's composite-path remainder. (run-dotnet-tests.yaml's staleapp-id/app-private-keyinputs are a separate cleanup — that composite no longer mints a token.)🤖 Generated with Claude Code