Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Repository Security Advisories APIs #2902

Merged
merged 14 commits into from Oct 5, 2023
Merged
45 changes: 33 additions & 12 deletions github/event_types.go
Expand Up @@ -1616,18 +1616,33 @@ type WorkflowRunEvent struct {
//
// GitHub API docs: https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#security_advisory
type SecurityAdvisory struct {
CVSS *AdvisoryCVSS `json:"cvss,omitempty"`
CWEs []*AdvisoryCWEs `json:"cwes,omitempty"`
GHSAID *string `json:"ghsa_id,omitempty"`
Summary *string `json:"summary,omitempty"`
Description *string `json:"description,omitempty"`
Severity *string `json:"severity,omitempty"`
Identifiers []*AdvisoryIdentifier `json:"identifiers,omitempty"`
References []*AdvisoryReference `json:"references,omitempty"`
PublishedAt *Timestamp `json:"published_at,omitempty"`
UpdatedAt *Timestamp `json:"updated_at,omitempty"`
WithdrawnAt *Timestamp `json:"withdrawn_at,omitempty"`
Vulnerabilities []*AdvisoryVulnerability `json:"vulnerabilities,omitempty"`
CVSS *AdvisoryCVSS `json:"cvss,omitempty"`
CWEs []*AdvisoryCWEs `json:"cwes,omitempty"`
GHSAID *string `json:"ghsa_id,omitempty"`
Summary *string `json:"summary,omitempty"`
Description *string `json:"description,omitempty"`
Severity *string `json:"severity,omitempty"`
Identifiers []*AdvisoryIdentifier `json:"identifiers,omitempty"`
References []*AdvisoryReference `json:"references,omitempty"`
PublishedAt *Timestamp `json:"published_at,omitempty"`
UpdatedAt *Timestamp `json:"updated_at,omitempty"`
WithdrawnAt *Timestamp `json:"withdrawn_at,omitempty"`
Vulnerabilities []*AdvisoryVulnerability `json:"vulnerabilities,omitempty"`
CVEID *string `json:"cve_id,omitempty"`
URL *string `json:"url,omitempty"`
HTMLURL *string `json:"html_url,omitempty"`
Author *User `json:"author,omitempty"`
Publisher *User `json:"publisher,omitempty"`
State *string `json:"state,omitempty"`
CreatedAt *Timestamp `json:"created_at,omitempty"`
ClosedAt *Timestamp `json:"closed_at,omitempty"`
Submission *SecurityAdvisorySubmission `json:"submission,omitempty"`
CWEIDs []string `json:"cwe_ids,omitempty"`
Credits []*RepoAdvisoryCredit `json:"credits,omitempty"`
CreditsDetailed []*RepoAdvisoryCreditDetailed `json:"credits_detailed,omitempty"`
CollaboratingUsers []*User `json:"collaborating_users,omitempty"`
CollaboratingTeams []*Team `json:"collaborating_teams,omitempty"`
PrivateFork *Repository `json:"private_fork,omitempty"`
}

// AdvisoryIdentifier represents the identifier for a Security Advisory.
Expand All @@ -1647,6 +1662,12 @@ type AdvisoryVulnerability struct {
Severity *string `json:"severity,omitempty"`
VulnerableVersionRange *string `json:"vulnerable_version_range,omitempty"`
FirstPatchedVersion *FirstPatchedVersion `json:"first_patched_version,omitempty"`

// PatchedVersions and VulnerableFunctions are used in the following APIs:
// - https://docs.github.com/en/rest/security-advisories/repository-advisories?apiVersion=2022-11-28#list-repository-security-advisories-for-an-organization
// - https://docs.github.com/en/rest/security-advisories/repository-advisories?apiVersion=2022-11-28#list-repository-security-advisories
PatchedVersions *string `json:"patched_versions,omitempty"`
VulnerableFunctions []string `json:"vulnerable_functions,omitempty"`
}

// VulnerabilityPackage represents the package object for an Advisory Vulnerability.
Expand Down
136 changes: 136 additions & 0 deletions github/github-accessors.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.