mirror of
https://github.com/diligencia/semantic-branch-version.git
synced 2024-11-24 04:23:51 +08:00
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
|
async function auth(token) {
|
||
|
const tokenType = token.split(/\./).length === 3
|
||
|
? "app"
|
||
|
: /^v\d+\./.test(token)
|
||
|
? "installation"
|
||
|
: "oauth";
|
||
|
return {
|
||
|
type: "token",
|
||
|
token: token,
|
||
|
tokenType
|
||
|
};
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Prefix token for usage in the Authorization header
|
||
|
*
|
||
|
* @param token OAuth token or JSON Web Token
|
||
|
*/
|
||
|
function withAuthorizationPrefix(token) {
|
||
|
if (token.split(/\./).length === 3) {
|
||
|
return `bearer ${token}`;
|
||
|
}
|
||
|
return `token ${token}`;
|
||
|
}
|
||
|
|
||
|
async function hook(token, request, route, parameters) {
|
||
|
const endpoint = request.endpoint.merge(route, parameters);
|
||
|
endpoint.headers.authorization = withAuthorizationPrefix(token);
|
||
|
return request(endpoint);
|
||
|
}
|
||
|
|
||
|
const createTokenAuth = function createTokenAuth(token) {
|
||
|
if (!token) {
|
||
|
throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");
|
||
|
}
|
||
|
if (typeof token !== "string") {
|
||
|
throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");
|
||
|
}
|
||
|
token = token.replace(/^(token|bearer) +/i, "");
|
||
|
return Object.assign(auth.bind(null, token), {
|
||
|
hook: hook.bind(null, token)
|
||
|
});
|
||
|
};
|
||
|
|
||
|
export { createTokenAuth };
|
||
|
//# sourceMappingURL=index.js.map
|