Skip to content

Commit e2f683d

Browse files
authored
chore: Add a fallback to process.env.GITHUB_TOKEN (#198)
1 parent f5e28c8 commit e2f683d

File tree

1 file changed

+29
-9
lines changed

1 file changed

+29
-9
lines changed

api/github.ts

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,21 @@ declare global {
1010
var githubToken: string;
1111
}
1212

13-
const GITHUB_AUTH_HEADERS = {
14-
authorization:
15-
global && global.githubToken ? `Bearer ${global.githubToken}` : null,
16-
};
13+
interface AdditionalGitHubHeaders {
14+
authorization?: string;
15+
}
16+
17+
function getAdditionalHeaders(): AdditionalGitHubHeaders {
18+
const headers: AdditionalGitHubHeaders = {};
19+
20+
if (global && global.githubToken) {
21+
headers.authorization = `Bearer ${global.githubToken}`;
22+
} else if (process.env.GITHUB_TOKEN) {
23+
headers.authorization = `Bearer ${process.env.GITHUB_TOKEN}`;
24+
}
25+
26+
return headers;
27+
}
1728

1829
// Returns information about the repo's releases. Defaults to "latest" if no tag is provided
1930
// https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28#get-a-release-by-tag-name
@@ -26,7 +37,10 @@ export function fetchRepoReleaseData(
2637
return axios.get<GithubReleaseData>(
2738
`${URL}/${tag ? `tags/${tag}` : 'latest'}`,
2839
{
29-
headers: { ...getDefaultUserAgentHeader(), ...GITHUB_AUTH_HEADERS },
40+
headers: {
41+
...getDefaultUserAgentHeader(),
42+
...getAdditionalHeaders(),
43+
},
3044
}
3145
);
3246
}
@@ -36,7 +50,7 @@ export function fetchRepoReleaseData(
3650
export function fetchRepoAsZip(zipUrl: string): AxiosPromise<Buffer> {
3751
return axios.get<Buffer>(zipUrl, {
3852
responseType: 'arraybuffer',
39-
headers: { ...getDefaultUserAgentHeader(), ...GITHUB_AUTH_HEADERS },
53+
headers: { ...getDefaultUserAgentHeader(), ...getAdditionalHeaders() },
4054
});
4155
}
4256

@@ -49,7 +63,10 @@ export function fetchRepoFile(
4963
return axios.get<Buffer>(
5064
`${GITHUB_RAW_CONTENT_API_PATH}/${repoPath}/${ref}/${filePath}`,
5165
{
52-
headers: { ...getDefaultUserAgentHeader(), ...GITHUB_AUTH_HEADERS },
66+
headers: {
67+
...getDefaultUserAgentHeader(),
68+
...getAdditionalHeaders(),
69+
},
5370
}
5471
);
5572
}
@@ -59,7 +76,7 @@ export function fetchRepoFileByDownloadUrl(
5976
downloadUrl: string
6077
): AxiosPromise<Buffer> {
6178
return axios.get<Buffer>(downloadUrl, {
62-
headers: { ...getDefaultUserAgentHeader(), ...GITHUB_AUTH_HEADERS },
79+
headers: { ...getDefaultUserAgentHeader(), ...getAdditionalHeaders() },
6380
responseType: 'arraybuffer',
6481
});
6582
}
@@ -76,7 +93,10 @@ export function fetchRepoContents(
7693
return axios.get<Array<GithubRepoFile>>(
7794
`${GITHUB_REPOS_API}/${repoPath}/contents/${path}${refQuery}`,
7895
{
79-
headers: { ...getDefaultUserAgentHeader(), ...GITHUB_AUTH_HEADERS },
96+
headers: {
97+
...getDefaultUserAgentHeader(),
98+
...getAdditionalHeaders(),
99+
},
80100
}
81101
);
82102
}

0 commit comments

Comments
 (0)