0

List gists for the authenticated user

by
Published Oct 25, 2023

Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists:

Script github
  • Submitted by hugo697 Typescript (fetch-only)
    Created 525 days ago
    1
    type Github = {
    2
      token: string;
    3
    };
    4
    /**
    5
     * List gists for the authenticated user
    6
     * Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists:
    7
     */
    8
    export async function main(
    9
      auth: Github,
    10
      since: string | undefined,
    11
      per_page: string | undefined,
    12
      page: string | undefined
    13
    ) {
    14
      const url = new URL(`https://api.github.com/gists`);
    15
      for (const [k, v] of [
    16
        ["since", since],
    17
        ["per_page", per_page],
    18
        ["page", page],
    19
      ]) {
    20
        if (v !== undefined && v !== "") {
    21
          url.searchParams.append(k, v);
    22
        }
    23
      }
    24
      const response = await fetch(url, {
    25
        method: "GET",
    26
        headers: {
    27
          Authorization: "Bearer " + auth.token,
    28
        },
    29
        body: undefined,
    30
      });
    31
      if (!response.ok) {
    32
        const text = await response.text();
    33
        throw new Error(`${response.status} ${text}`);
    34
      }
    35
      return await response.json();
    36
    }
    37