List Dependabot alerts for an enterprise

Lists Dependabot alerts for repositories that are owned by the specified enterprise.

Script github Verified

by hugo697 ยท 10/25/2023

The script

Submitted by hugo697 Typescript (fetch-only)
Verified 367 days ago
1
type Github = {
2
  token: string;
3
};
4
/**
5
 * List Dependabot alerts for an enterprise
6
 * Lists Dependabot alerts for repositories that are owned by the specified enterprise.
7
 */
8
export async function main(
9
  auth: Github,
10
  enterprise: string,
11
  state: string | undefined,
12
  severity: string | undefined,
13
  ecosystem: string | undefined,
14
  package: string | undefined,
15
  scope: "development" | "runtime" | undefined,
16
  sort: "created" | "updated" | undefined,
17
  direction: "asc" | "desc" | undefined,
18
  before: string | undefined,
19
  after: string | undefined,
20
  first: string | undefined,
21
  last: string | undefined,
22
  per_page: string | undefined
23
) {
24
  const url = new URL(
25
    `https://api.github.com/enterprises/${enterprise}/dependabot/alerts`
26
  );
27
  for (const [k, v] of [
28
    ["state", state],
29
    ["severity", severity],
30
    ["ecosystem", ecosystem],
31
    ["package", package],
32
    ["scope", scope],
33
    ["sort", sort],
34
    ["direction", direction],
35
    ["before", before],
36
    ["after", after],
37
    ["first", first],
38
    ["last", last],
39
    ["per_page", per_page],
40
  ]) {
41
    if (v !== undefined && v !== "") {
42
      url.searchParams.append(k, v);
43
    }
44
  }
45
  const response = await fetch(url, {
46
    method: "GET",
47
    headers: {
48
      Authorization: "Bearer " + auth.token,
49
    },
50
    body: undefined,
51
  });
52
  if (!response.ok) {
53
    const text = await response.text();
54
    throw new Error(`${response.status} ${text}`);
55
  }
56
  return await response.json();
57
}
58