[Schema Inaccuracy] code_scanning_alert fixed webhook: alert.state typed as null | "fixed" but GitHub sends "dismissed"

Aperta Adatta ai principianti
#6,059 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
64/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
openapi
Ambito
api

Direzione di ricerca

Individua lo schema OpenAPI per il webhook code_scanning_alert con l'azione "fixed". Confronta la relativa definizione di alert.state con le azioni appeared_in_branch, reopened e updated_assignment, quindi aggiorna lo schema in modo che vengano accettati payload dismissed validi. Convalida la specifica modificata usando l'esempio del webhook o i controlli dello schema disponibili nel repository.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

feature

Expected

In the code_scanning_alert webhook event with action: "fixed", the alert.state property should permit "dismissed" in addition to null and "fixed":

state:
  description: >-
    State of a code scanning alert. Events for alerts found outside the
    default branch will return a `null` value until they are dismissed or
    fixed.
  oneOf:
    - type: "null"
    - enum:
        - fixed
        - dismissed
      type: string

This would be consistent with how the appeared_in_branch, reopened, and updated_assignment actions already define alert.state as null | "open" | "dismissed" | "fixed".

Actual

The webhook schema for code_scanning_alert (action fixed) defines alert.state as only null | "fixed", rejecting the value "dismissed".

Reproduction Steps

  1. Configure a repository webhook (or GitHub App) to receive code_scanning_alert events.
  2. Have a code scanning alert that has been dismissed (e.g., marked as "won't fix").
  3. Merge a PR that fixes the underlying code issue for that dismissed alert.
  4. GitHub delivers a code_scanning_alert webhook with action: "fixed", but the alert.state field is "dismissed" (not "fixed"), because the alert's canonical state remains dismissed.
  5. Attempt to validate this payload against a client generated from the OpenAPI spec. Validation fails because the schema only permits null or "fixed" for alert.state.

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 when the alert was previously dismissed, because "dismissed" does not conform to the null | "fixed" schema.

Error

pydantic_core._pydantic_core.ValidationError: 1 validation error for
tagged-union[...,WebhookCodeScanningAlertFixed,...]
fixed.alert.state
  Input should be 'fixed' [type=literal_error, input_value='dismissed', input_type=str]

Reference

Lingua principale
Nessun dato sulla lingua
Stelle
1.6k
Fork
342
Merge medio
3h 33m
PR unite (30g)
51

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di github/rest-api-description

Tutte le issue di github/rest-api-description

Issue simili

Altre issue su Backend & API Design

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.