•  


GitHub - sindresorhus/gh-got: Convenience wrapper for Got to interact with the GitHub API
Skip to content

sindresorhus/gh-got

gh-got

Convenience wrapper for Got to interact with the GitHub API

Unless you're already using Got, you should probably use GitHub's own @octokit/rest.js or @octokit/graphql.js packages instead.

Install

npm install gh-got

Usage

Instead of:

import
 got
 from
 'got'
;


const
 token
 =
 'foo'
;


const
 {
body
}
 =
 await
 got
(
'https://api.github.com/users/sindresorhus'
,
 {

	json
: 
true
,

	headers
: 
{

		'accept'
: 
'application/vnd.github.v3+json'
,

		'authorization'
: 
`token 
${
token
}
`

	}

}
)
;


console
.
log
(
body
.
login
)
;

//=> 'sindresorhus'

You can do:

import
 ghGot
 from
 'gh-got'
;


const
 {
body
}
 =
 await
 ghGot
(
'users/sindresorhus'
,
 {

	context
: 
{

		token
: 
'foo'

	}

}
)
;


console
.
log
(
body
.
login
)
;

//=> 'sindresorhus'

Or:

import
 ghGot
 from
 'gh-got'
;


const
 {
body
}
 =
 await
 ghGot
(
'https://api.github.com/users/sindresorhus'
,
 {

	context
: 
{

		token
: 
'foo'

	}

}
)
;


console
.
log
(
body
.
login
)
;

//=> 'sindresorhus'

API

Same API as got , including options, the stream API, aliases, pagination, etc, but with some additional options below.

Errors are improved by using the custom GitHub error messages. Doesn't apply to the stream API.

gh-got specific options

token

Type: string

GitHub access token .

Can be set globally with the GITHUB_TOKEN environment variable.

prefixUrl

Type: string
Default: https://api.github.com/

To support GitHub Enterprise .

Can be set globally with the GITHUB_ENDPOINT environment variable.

body

Type: object

Can be specified as a plain object and will be serialized as JSON with the appropriate headers set.

Rate limit

Responses and errors have a .rateLimit property with info about the current rate limit . (This is not yet implemented for the stream API)

import
 ghGot
 from
 'gh-got'
;


const
 {
rateLimit
}
 =
 await
 ghGot
(
'users/sindresorhus'
)
;


console
.
log
(
rateLimit
)
;

//=> {limit: 5000, remaining: 4899, reset: [Date 2018-12-31T20:45:20.000Z]}

Authorization

Authorization for GitHub uses the following logic:

  1. If options.headers.authorization is passed to gh-got , then this will be used as first preference.
  2. If options.token is provided, then the authorization header will be set to token <options.token> .
  3. If options.headers.authorization and options.token are not provided, then the authorization header will be set to token <process.env.GITHUB_TOKEN>

In most cases, this means you can simply set GITHUB_TOKEN , but it also allows it to be overridden by setting options.token or options.headers.authorization explicitly. For example, if authenticating as a GitHub App , you could do the following:

import
 ghGot
 from
 'gh-got'
;


const
 options
 =
 {

	headers
: 
{

		authorization
: 
`Bearer 
${
jwt
}
`

	}

}
;

const
 {
body
}
 =
 await
 ghGot
(
'app'
,
 options
)
;


console
.
log
(
body
.
name
)
;

//=> 'MyApp'

Pagination

See the Got docs .

- "漢字路" 한글한자자동변환 서비스는 교육부 고전문헌국역지원사업의 지원으로 구축되었습니다.
- "漢字路" 한글한자자동변환 서비스는 전통문화연구회 "울산대학교한국어처리연구실 옥철영(IT융합전공)교수팀"에서 개발한 한글한자자동변환기를 바탕하여 지속적으로 공동 연구 개발하고 있는 서비스입니다.
- 현재 고유명사(인명, 지명등)을 비롯한 여러 변환오류가 있으며 이를 해결하고자 많은 연구 개발을 진행하고자 하고 있습니다. 이를 인지하시고 다른 곳에서 인용시 한자 변환 결과를 한번 더 검토하시고 사용해 주시기 바랍니다.
- 변환오류 및 건의,문의사항은 juntong@juntong.or.kr로 메일로 보내주시면 감사하겠습니다. .
Copyright ⓒ 2020 By '전통문화연구회(傳統文化硏究會)' All Rights reserved.
 한국   대만   중국   일본