Skip to content

Conversation

@mbg
Copy link
Member

@mbg mbg commented Oct 17, 2025

This PR changes the init action so that the analysis-kinds input is processed before the starting status report is sent. This allows us to include information about the enabled analysis kinds in that report.

One aspect of this that we may want to think about is that, if the analysis-kinds input is invalid, we now throw a ConfigurationError for that before the starting report is sent. This will still get caught and result in a user-error status report, but without a matching starting status report.

Alternatives:

  • We could catch ConfigurationErrors thrown by initAnalysisKinds and re-throw them after the starting status report has been sent to maintain the normal order of operations.
  • We could ignore the exception and then re-run initAnalysisKinds at the normal time.

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?

  • Advanced setup - Impacts users who have custom workflows.
  • Default setup - Impacts users who use default setup.
  • Code Scanning - Impacts Code Scanning (i.e. analysis-kinds: code-scanning).
  • Code Quality - Impacts Code Quality (i.e. analysis-kinds: code-quality).
  • GHES - Impacts 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.

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 henrymercer October 17, 2025 10:51
@mbg mbg requested a review from a team as a code owner October 17, 2025 10:51
@mbg mbg self-assigned this Oct 17, 2025
@Copilot Copilot AI review requested due to automatic review settings October 17, 2025 10:51
Copy link
Contributor

Copilot AI left a comment

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 changes the init action to process the analysis-kinds input before sending the starting status report, allowing the analysis kinds information to be included in that report.

Key Changes

  • The analysis-kinds input is now parsed earlier in the init process before the starting status report is sent
  • A new initAnalysisKinds function centralizes the parsing of analysis kinds and handling of the deprecated quality-queries input
  • The initConfig function's interface is updated to accept pre-parsed analysis kinds instead of raw input strings

Reviewed Changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/init-action.ts Extracts status report sending to a helper function and moves analysis kinds initialization before the starting status report
src/config-utils.ts Updates interface to accept parsed analysis kinds instead of raw input string, removes inline parsing logic
src/config-utils.test.ts Updates test helper to use parsed analysis kinds array instead of input string
src/analyses.ts Adds new initAnalysisKinds function that consolidates analysis kinds parsing and deprecated input handling
src/analyses.test.ts Adds comprehensive test coverage for the new initAnalysisKinds function
lib/init-action.js Generated JavaScript reflecting the TypeScript changes

henrymercer
henrymercer previously approved these changes Oct 17, 2025
Copy link
Contributor

@henrymercer henrymercer left a comment

Choose a reason for hiding this comment

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

Your alternative suggestion of ignoring the exception and then re-running initAnalysisKinds at the normal time seems more robust, but given that incorrect analysis kinds should be pretty rare, this seems OK too.

Copy link
Contributor

@henrymercer henrymercer left a comment

Choose a reason for hiding this comment

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

Looks reasonable

@mbg mbg merged commit 70205d3 into main Oct 17, 2025
242 checks passed
@mbg mbg deleted the mbg/init/starting-partial-config branch October 17, 2025 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants