mirror of
https://github.com/github/codeql-action.git
synced 2025-12-28 18:20:08 +08:00
95 lines
2.7 KiB
JavaScript
95 lines
2.7 KiB
JavaScript
// pkg/dist-src/index.js
|
|
import { getUserAgent } from "universal-user-agent";
|
|
import { request } from "@octokit/request";
|
|
|
|
// pkg/dist-src/auth.js
|
|
import { createOAuthUserAuth } from "@octokit/auth-oauth-user";
|
|
async function auth(state, authOptions) {
|
|
if (authOptions.type === "oauth-app") {
|
|
return {
|
|
type: "oauth-app",
|
|
clientId: state.clientId,
|
|
clientSecret: state.clientSecret,
|
|
clientType: state.clientType,
|
|
headers: {
|
|
authorization: `basic ${btoa(
|
|
`${state.clientId}:${state.clientSecret}`
|
|
)}`
|
|
}
|
|
};
|
|
}
|
|
if ("factory" in authOptions) {
|
|
const { type, ...options } = {
|
|
...authOptions,
|
|
...state
|
|
};
|
|
return authOptions.factory(options);
|
|
}
|
|
const common = {
|
|
clientId: state.clientId,
|
|
clientSecret: state.clientSecret,
|
|
request: state.request,
|
|
...authOptions
|
|
};
|
|
const userAuth = state.clientType === "oauth-app" ? await createOAuthUserAuth({
|
|
...common,
|
|
clientType: state.clientType
|
|
}) : await createOAuthUserAuth({
|
|
...common,
|
|
clientType: state.clientType
|
|
});
|
|
return userAuth();
|
|
}
|
|
|
|
// pkg/dist-src/hook.js
|
|
import { requiresBasicAuth } from "@octokit/auth-oauth-user";
|
|
async function hook(state, request2, route, parameters) {
|
|
let endpoint = request2.endpoint.merge(
|
|
route,
|
|
parameters
|
|
);
|
|
if (/\/login\/(oauth\/access_token|device\/code)$/.test(endpoint.url)) {
|
|
return request2(endpoint);
|
|
}
|
|
if (state.clientType === "github-app" && !requiresBasicAuth(endpoint.url)) {
|
|
throw new Error(
|
|
`[@octokit/auth-oauth-app] GitHub Apps cannot use their client ID/secret for basic authentication for endpoints other than "/applications/{client_id}/**". "${endpoint.method} ${endpoint.url}" is not supported.`
|
|
);
|
|
}
|
|
const credentials = btoa(`${state.clientId}:${state.clientSecret}`);
|
|
endpoint.headers.authorization = `basic ${credentials}`;
|
|
try {
|
|
return await request2(endpoint);
|
|
} catch (error) {
|
|
if (error.status !== 401) throw error;
|
|
error.message = `[@octokit/auth-oauth-app] "${endpoint.method} ${endpoint.url}" does not support clientId/clientSecret basic authentication.`;
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
// pkg/dist-src/version.js
|
|
var VERSION = "0.0.0-development";
|
|
|
|
// pkg/dist-src/index.js
|
|
import { createOAuthUserAuth as createOAuthUserAuth2 } from "@octokit/auth-oauth-user";
|
|
function createOAuthAppAuth(options) {
|
|
const state = Object.assign(
|
|
{
|
|
request: request.defaults({
|
|
headers: {
|
|
"user-agent": `octokit-auth-oauth-app.js/${VERSION} ${getUserAgent()}`
|
|
}
|
|
}),
|
|
clientType: "oauth-app"
|
|
},
|
|
options
|
|
);
|
|
return Object.assign(auth.bind(null, state), {
|
|
hook: hook.bind(null, state)
|
|
});
|
|
}
|
|
export {
|
|
createOAuthAppAuth,
|
|
createOAuthUserAuth2 as createOAuthUserAuth
|
|
};
|