# Generated by `mix github.gen` from docs/github-api/api.github.com.json.
# Do not edit by hand; re-run the task instead.
defmodule Noizu.Github.Api.DependencyGraph do
@moduledoc """
GitHub `dependency-graph` API.
"""
import Noizu.Github
@doc """
Create a snapshot of dependencies for a repository
@see https://docs.github.com/rest/dependency-graph/dependency-submission#create-a-snapshot-of-dependencies-for-a-repository
"""
def create_repository_snapshot(body, options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url = github_base() <> "/repos/#{owner}/#{repo}/dependency-graph/snapshots"
body = body
api_call(:post, url, body, Noizu.Github.Raw, options)
end
@doc """
Get a diff of the dependencies between commits
@see https://docs.github.com/rest/dependency-graph/dependency-review#get-a-diff-of-the-dependencies-between-commits
"""
def diff_range(basehead, options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url =
(
query =
[
get_field(:name, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/repos/#{owner}/#{repo}/dependency-graph/compare/#{basehead}" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
Export a software bill of materials (SBOM) for a repository.
@see https://docs.github.com/rest/dependency-graph/sboms#export-a-software-bill-of-materials-sbom-for-a-repository
"""
def export_sbom(options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url = github_base() <> "/repos/#{owner}/#{repo}/dependency-graph/sbom"
body = %{}
api_call(:get, url, body, Noizu.Github.DependencyGraphSpdxSbom, options)
end
@doc """
Fetch a software bill of materials (SBOM) for a repository.
@see https://docs.github.com/rest/dependency-graph/sboms#fetch-a-software-bill-of-materials-sbom-for-a-repository
"""
def fetch_sbom_report(sbom_uuid, options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url =
github_base() <> "/repos/#{owner}/#{repo}/dependency-graph/sbom/fetch-report/#{sbom_uuid}"
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
@doc """
Request generation of a software bill of materials (SBOM) for a repository.
@see https://docs.github.com/rest/dependency-graph/sboms#request-generation-of-a-software-bill-of-materials-sbom-for-a-repository
"""
def generate_sbom_report(options \\ nil) do
owner = repo_owner(options)
repo = repo_name(options)
url = github_base() <> "/repos/#{owner}/#{repo}/dependency-graph/sbom/generate-report"
body = %{}
api_call(:get, url, body, Noizu.Github.Raw, options)
end
end