Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Generate job UUID in start-proxy action - #4049

#4049
Open
mbg wants to merge 9 commits into
maingithub/codeql-action:mainfrom
mbg/start-proxy/job-uuidgithub/codeql-action:mbg/start-proxy/job-uuidCopy head branch name to clipboard
Open

Generate job UUID in start-proxy action#4049
mbg wants to merge 9 commits into
maingithub/codeql-action:mainfrom
mbg/start-proxy/job-uuidgithub/codeql-action:mbg/start-proxy/job-uuidCopy head branch name to clipboard

Conversation

@mbg

@mbg mbg commented Jul 28, 2026

Copy link
Copy Markdown
Member

The start-proxy action precedes the init action in Default Setup, but a UUID for the analysis is only generated in the init action. That means that telemetry from the start-proxy step is not easy to associate with subsequent steps in the workflow.

This PR refactors the existing code that's duplicated across init and setup-codeql into a function, allows it to retrieve the existing job UUID from the environment, adds tests, and then uses the new function in start-proxy. This ensures that telemetry from start-proxy includes a unique identifier and the same one is used for the rest of the workflow, while workflows that don't use start-proxy also still generate one in init.

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.

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 self-assigned this Jul 28, 2026
Copilot AI review requested due to automatic review settings July 28, 2026 17:54
@mbg
mbg requested a review from a team as a code owner July 28, 2026 17:54
@github-actions github-actions Bot added the size/S Should be easy to review label Jul 28, 2026

This comment was marked as outdated.

mario-campos
mario-campos previously approved these changes Jul 29, 2026

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

One nit but otherwise makes sense and LGTM.

Comment thread src/start-proxy-action.ts Outdated
Comment thread src/status-report.ts
Comment on lines +64 to +71
/**
* Either creates a UUIDv4 for the analysis or retrieves an existing one from the
* environment and returns it.
* If a new UUID is generated, it is also exported as an environment variable.
*/
export function getJobUUID(
action: ActionState<["Logger", "ReadOnlyEnv", "Actions"]>,
) {

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.

This means that if JOB_RUN_UUID is already set by another step for some reason, we'll use that rather than overwriting it. That is probably fine, but perhaps we should add the CODEQL_ACTION_ prefix to the environment variable to reduce the chances of this happening.

Comment on lines +143 to +144
// Create a unique identifier for this run.
getJobUUID(actionState);

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.

Perhaps it would make sense to do this in createStatusReportBase so we don't have to remember to call this in every Action that might run as the first step.

Comment thread src/testing-utils.ts
throw new Error(`Input required and not supplied: ${name}`);
},
getOptionalInput: () => undefined,
exportVariable: () => {},

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.

This seems like it could be surprising — it'll silently discard all env var writes, while getTestEnv preserves writes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/S Should be easy to review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.