# 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