Skip to content

Include registry_types in more status reports - #4050

Merged
mbg merged 8 commits into
mainfrom
mbg/status/registries
Jul 31, 2026
Merged

Include registry_types in more status reports#4050
mbg merged 8 commits into
mainfrom
mbg/status/registries

Conversation

@mbg

@mbg mbg commented Jul 29, 2026

Copy link
Copy Markdown
Member

Currently, the registry_types field in status reports is only populated by the start-proxy action. However, other steps such as init and analyze have access to the registry types via the CODEQL_PROXY_URLS environment variable. It is useful for us to be able to see at a glance when init or analyze steps benefit from configured registries.

This PR updates the createStatusReportBase function to try and parse the contents of CODEQL_PROXY_URLS when it is set to include the unique registry types in the status report when possible.

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

Pull request overview

Extends status reports to include registry types derived from CODEQL_PROXY_URLS.

Changes:

  • Adds registry-type extraction to base status reports.
  • Reuses the base field for start-proxy.
  • Adds parsing and integration tests.
Show a summary per file
File Description
src/status-report.ts Adds registry-type extraction and reporting.
src/status-report.test.ts Tests extraction and status-report integration.
src/start-proxy.ts Moves registry_types into the shared report type.
lib/entry-points.js Generated, policy-excluded artifact.

Review details

Files excluded by content exclusion policy (1)
  • lib/entry-points.js
  • Files reviewed: 3/4 changed files
  • Comments generated: 2
  • Review effort level: Medium

Comment thread src/status-report.ts Outdated
Comment thread src/status-report.ts
@github-actions github-actions Bot added size/M Should be of average difficulty to review and removed size/S Should be easy to review labels Jul 29, 2026
@sam-robson

Copy link
Copy Markdown
Contributor

Is it intentional that we omit host registries in the the status reports? I believe CODEQL_PROXY_URLS drops these, but the current status report sent by start-proxy includes them.

@mbg

mbg commented Jul 31, 2026

Copy link
Copy Markdown
Member Author

@sam-robson Yes, we intentionally do not include hostnames in the telemetry. The hostnames are filtered out for the existing start-proxy telemetry by proxyConfig.all_credentials.map((c) => c.type).

@sam-robson

Copy link
Copy Markdown
Contributor

@sam-robson Yes, we intentionally do not include hostnames in the telemetry. The hostnames are filtered out for the existing start-proxy telemetry by proxyConfig.all_credentials.map((c) => c.type).

I meant the registry types for host-only credentials, not the hostname values themselves. proxyConfig.all_credentials.map((c) => c.type) includes the type of every credential, including those identified only by host. By contrast, proxy_urls first filters with credential.url !== undefined, so later status reports omit the types of host-only credentials.

Comment thread src/json/index.ts
validate,
check: defaultCheck(validate),
required,
required: true,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

why this change?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

See the relevant commit message. The existing code inferred an unhelpful type for the results of this function, since we require the value of required in the type. I could have made a different change here to still have the required parameter, but that would have complicated the function more than necessary considering all consumers create validators for required properties.

@oscarsj oscarsj left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

just a heads up on a change that I don't understand,but otherwise lgtm

@mbg

mbg commented Jul 31, 2026

Copy link
Copy Markdown
Member Author

I meant the registry types for host-only credentials, not the hostname values themselves.

@sam-robson Ah, thanks for clarifying and sorry I misunderstood your comment. AFAIK, the host field isn't used anymore by the backend and every credential should be one with a url key anyway, so this shouldn't be a meaningful distinction in practice. We could probably look at removing the host field, but will need to check whether there isn't something that depends on it somewhere.

@mbg
mbg added this pull request to the merge queue Jul 31, 2026
Merged via the queue into main with commit d2bfc30 Jul 31, 2026
221 checks passed
@mbg
mbg deleted the mbg/status/registries branch July 31, 2026 16:16
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.

4 participants