mirror of https://github.com/actions/toolkit
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import * as Context from './context'
|
|
import * as Utils from './internal/utils'
|
|
|
|
// octokit + plugins
|
|
import {Octokit} from '@octokit/core'
|
|
import {OctokitOptions} from '@octokit/core/dist-types/types'
|
|
import {restEndpointMethods} from '@octokit/plugin-rest-endpoint-methods'
|
|
import {paginateRest} from '@octokit/plugin-paginate-rest'
|
|
|
|
export const context = new Context.Context()
|
|
|
|
const baseUrl = Utils.getApiBaseUrl()
|
|
export const defaults: OctokitOptions = {
|
|
baseUrl,
|
|
request: {
|
|
agent: Utils.getProxyAgent(baseUrl),
|
|
fetch: Utils.getProxyFetch(baseUrl)
|
|
}
|
|
}
|
|
|
|
export const GitHub = Octokit.plugin(
|
|
restEndpointMethods,
|
|
paginateRest
|
|
).defaults(defaults)
|
|
|
|
/**
|
|
* Convience function to correctly format Octokit Options to pass into the constructor.
|
|
*
|
|
* @param token the repo PAT or GITHUB_TOKEN
|
|
* @param options other options to set
|
|
*/
|
|
export function getOctokitOptions(
|
|
token: string,
|
|
options?: OctokitOptions
|
|
): OctokitOptions {
|
|
const opts = Object.assign({}, options || {}) // Shallow clone - don't mutate the object provided by the caller
|
|
|
|
// Auth
|
|
const auth = Utils.getAuthString(token, opts)
|
|
if (auth) {
|
|
opts.auth = auth
|
|
}
|
|
|
|
return opts
|
|
}
|