Skip to content

[Schema Inaccuracy] code_scanning_alert fixed webhook: fixed_at typed as null instead of date-time string #6058

@donicrosby

Description

@donicrosby

Expected

In the code_scanning_alert webhook event with action: "fixed", the alert.fixed_at property should be typed as a nullable ISO 8601 date-time string:

fixed_at:
  type: string
  format: date-time
  nullable: true
  description: >-
    The time that the alert was fixed in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

This would be consistent with how fixed_at is already defined on the REST API endpoint GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}, where it is correctly typed as string or null with format: date-time.

Actual

The webhook schema for code_scanning_alert (action fixed) defines fixed_at with only type: null, meaning it can never contain a value — only null or absent.

Reproduction Steps

  1. Configure a repository webhook (or GitHub App) to receive code_scanning_alert events.
  2. Trigger a code_scanning_alert event with action: "fixed" (e.g., fix a CodeQL finding and merge to the default branch).
  3. Inspect the webhook payload. The alert.fixed_at field contains an ISO 8601 datetime string, e.g. "2025-01-15T10:30:00Z".
  4. Attempt to validate this payload against a client generated from the OpenAPI spec. Validation fails because the schema only permits null for fixed_at.

Impact

Any strongly-typed client generated from this spec (e.g., githubkit for Python, Octokit for TypeScript) will reject valid code_scanning_alert fixed webhook payloads because fixed_at does not conform to the null-only schema.

Reference

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions