@@ -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(
3650export 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