0

Get Repo Content

by
Published Apr 18, 2023
Script github Verified

The script

Submitted by hugo989 Bun
Verified 12 days ago
1
import { Octokit } from "@octokit/rest";
2

3
/**
4
 * @param owner The account owner of the repository. The name is not case sensitive.
5
 *
6
 * @param repo The name of the repository. The name is not case sensitive.
7
 *
8
 * @param path The path to the file or directory.
9
 * If omitted, the contents of the repository's root directory will be returned.
10
 *
11
 * @param ref The name of the commit/branch/tag. Defaults to the default branch of the repository.
12
 *
13
 * @param result_format The kind of data to be returned. This controls how the result is structured.
14
 * Learn more at https://docs.github.com/en/rest/repos/contents#get-repository-content
15
 */
16
type Github = {
17
  token: string;
18
};
19
export async function main(
20
  gh_auth: Github,
21
  owner: string,
22
  repo: string,
23
  path?: string,
24
  ref?: string,
25
  result_format: "github_object" | "json" = "github_object"
26
) {
27
  const octokit = new Octokit({ auth: gh_auth.token });
28

29
  return await octokit.request(
30
    `GET /repos/{owner}/{repo}/contents/{path}${ref ? "?{ref}" : ""}`,
31
    {
32
      owner,
33
      repo,
34
      path,
35
      headers: {
36
        "X-GitHub-Api-Version": "2022-11-28",
37
        Accept: `application/${
38
          result_format === "json" ? "vnd.github+json" : "vnd.github.object"
39
        }`,
40
      },
41
    }
42
  );
43
}
44

Other submissions
  • Submitted by adam186 Deno
    Created 404 days ago
    1
    import { Octokit } from "https://cdn.skypack.dev/@octokit/rest";
    2
    
    
    3
    /**
    4
     * @param owner The account owner of the repository. The name is not case sensitive.
    5
     *
    6
     * @param repo The name of the repository. The name is not case sensitive.
    7
     *
    8
     * @param path The path to the file or directory.
    9
     * If omitted, the contents of the repository's root directory will be returned.
    10
     *
    11
     * @param ref The name of the commit/branch/tag. Defaults to the default branch of the repository.
    12
     *
    13
     * @param result_format The kind of data to be returned. This controls how the result is structured.
    14
     * Learn more at https://docs.github.com/en/rest/repos/contents#get-repository-content
    15
     */
    16
    type Github = {
    17
      token: string;
    18
    };
    19
    export async function main(
    20
      gh_auth: Github,
    21
      owner: string,
    22
      repo: string,
    23
      path?: string,
    24
      ref?: string,
    25
      result_format: "github_object" | "json" = "github_object"
    26
    ) {
    27
      const octokit = new Octokit({ auth: gh_auth.token });
    28
    
    
    29
      return await octokit.request(
    30
        `GET /repos/{owner}/{repo}/contents/{path}${ref ? "?{ref}" : ""}`,
    31
        {
    32
          owner,
    33
          repo,
    34
          path,
    35
          headers: {
    36
            "X-GitHub-Api-Version": "2022-11-28",
    37
            Accept: `application/${
    38
              result_format === "json" ? "vnd.github+json" : "vnd.github.object"
    39
            }`,
    40
          },
    41
        }
    42
      );
    43
    }
    44