Skip to content

Use wrapApiConfigurationError more for init-action-post - #4178

Merged
mbg merged 7 commits into
mainfrom
mbg/use-api-error-classification-more
Sep 28, 2026
Merged

mbg merged 7 commits into
mainfrom
mbg/use-api-error-classification-more

Conversation

@mbg

@mbg mbg commented Sep 25, 2026

Copy link
Copy Markdown
Member

This PR adds wrapApiConfigurationError handling to the general exception handler for the init-action-post step. Also includes some related, minor improvements.

Risk assessment

For internal use only. Please select the risk level of this change:

  • Low risk: Changes are fully under feature flags, or have been fully tested and validated in pre-production environments and are highly observable, or are documentation or test only.

Which use cases does this change impact?

Workflow types:

  • Advanced setup - Impacts users who have custom CodeQL workflows.
  • Managed - Impacts users with dynamic workflows (Default Setup, Code Quality, ...).

Products:

  • Code Scanning - The changes impact analyses when analysis-kinds: code-scanning.
  • Code Quality - The changes impact analyses when analysis-kinds: code-quality.
  • Other first-party - The changes impact other first-party analyses.
  • Third-party analyses - The changes affect the upload-sarif action.

Environments:

  • Dotcom - Impacts CodeQL workflows on github.com and/or GitHub Enterprise Cloud with Data Residency.
  • GHES - Impacts CodeQL workflows on GitHub Enterprise Server.

How did/will you validate this change?

  • Unit tests - I am depending on unit test coverage (i.e. tests in .test.ts files).
  • End-to-end tests - I am depending on PR checks (i.e. tests in pr-checks).

If something goes wrong after this change is released, what are the mitigation and rollback strategies?

  • Rollback - Change can only be disabled by rolling back the release or releasing a new version with a fix.

How will you know if something goes wrong after this change is released?

  • Telemetry - I rely on existing telemetry or have made changes to the telemetry.
    • Dashboards - I will watch relevant dashboards for issues after the release. Consider whether this requires this change to be released at a particular time rather than as part of a regular release.
    • Alerts - New or existing monitors will trip if something goes wrong with this change.

Are there any special considerations for merging or releasing this change?

  • No special considerations - This change can be merged at any time.

Merge / deployment checklist

  • Confirm this change is backwards compatible with existing workflows.
  • Consider adding a changelog entry for this change.
  • Confirm the readme and docs have been updated if necessary.

@mbg
mbg requested a review from a team as a code owner September 25, 2026 17:23
Copilot AI balanced review requested due to automatic review settings September 25, 2026 17:23
@github-actions github-actions Bot added the size/XS Should be very easy to review label Sep 25, 2026

Copilot AI 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.

Warning

  • Copilot's review of this pull request may be incomplete because some of the changed files are excluded by your Copilot content exclusion settings. See Excluding content from Copilot for details.

Copilot review overview

🟡 Changes recommended

The newly added API rejection behavior lacks direct unit coverage.

Get a fresh assessment by requesting another Copilot review.

Review effort: Balanced
Findings: 1 Low severity

Open (1)
What changed in this PR

Improves configuration-error classification during init-action-post.

Changes:

  • Reuses the saved GitHub version when available.
  • Wraps known API failures as configuration errors.
  • Documents and types the error wrapper.
File Description
src/​init-action-post.ts Reuses configuration and classifies API errors.
src/​api-client.ts Wraps GitHub version API failures.
lib/​entry-points.js Generated, excluded file; not reviewed.
Files excluded by content exclusion policy (1)
  • lib/entry-points.js

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/api-client.ts
mario-campos
mario-campos previously approved these changes Sep 25, 2026
@github-actions github-actions Bot added size/M Should be of average difficulty to review and removed size/XS Should be very easy to review labels Sep 28, 2026
@mbg
mbg requested a review from mario-campos September 28, 2026 09:43
@mbg

mbg commented Sep 28, 2026

Copy link
Copy Markdown
Member Author

@mario-campos I pushed three more commits here. The first two just refactor the existing tests for wrapApiConfigurationError and don't change them. The third adds one additional test to check that wrapApiConfigurationError(wrapApiConfigurationError(err)) == wrapApiConfigurationError(err), i.e. it doesn't double-wrap errors. I wanted to make sure that the added wrapApiConfigurationError call in the error handler in run doesn't accidentally break the case where the caught "unwrappedError" was already run through wrapApiConfigurationError previously.

@mario-campos mario-campos 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.

Makes sense 👍

One minor suggestion: I don't see a test for the wrapApiConfigurationError fallback/identity path (i.e. the one in which you pass a non-error value and it is returned). If it already exists and I just missed it, feel free to ignore.

@mbg
mbg added this pull request to the merge queue Sep 28, 2026
@mbg

mbg commented Sep 28, 2026

Copy link
Copy Markdown
Member Author

I don't see a test for the wrapApiConfigurationError fallback/identity path (i.e. the one in which you pass a non-error value and it is returned).

@mario-campos Several of the tests for wrapApiConfigurationError exercise this. For example, while the "wrapApiConfigurationError doesn't wrap errors it isn't supposed to" test talks about "errors", anything that is passed into wrapApiConfigurationError that isn't like a HTTPError goes through the fallback/identity path. See the t.is assertions that check that result of wrapApiConfigurationError matches what we provided as argument (by object identity).

Merged via the queue into main with commit 85c0c09 Sep 28, 2026
233 checks passed
@mbg
mbg deleted the mbg/use-api-error-classification-more branch September 28, 2026 15:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/M Should be of average difficulty to review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants