mirror of
https://github.com/github/codeql-action.git
synced 2025-12-27 01:30:10 +08:00
40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
import { getUserAgent } from "universal-user-agent";
|
|
import { request as octokitRequest } from "@octokit/request";
|
|
import { auth } from "./auth.js";
|
|
import { hook } from "./hook.js";
|
|
import { VERSION } from "./version.js";
|
|
function createOAuthDeviceAuth(options) {
|
|
const requestWithDefaults = options.request || octokitRequest.defaults({
|
|
headers: {
|
|
"user-agent": `octokit-auth-oauth-device.js/${VERSION} ${getUserAgent()}`
|
|
}
|
|
});
|
|
const { request = requestWithDefaults, ...otherOptions } = options;
|
|
const state = options.clientType === "github-app" ? {
|
|
...otherOptions,
|
|
clientType: "github-app",
|
|
request
|
|
} : {
|
|
...otherOptions,
|
|
clientType: "oauth-app",
|
|
request,
|
|
scopes: options.scopes || []
|
|
};
|
|
if (!options.clientId) {
|
|
throw new Error(
|
|
'[@octokit/auth-oauth-device] "clientId" option must be set (https://github.com/octokit/auth-oauth-device.js#usage)'
|
|
);
|
|
}
|
|
if (!options.onVerification) {
|
|
throw new Error(
|
|
'[@octokit/auth-oauth-device] "onVerification" option must be a function (https://github.com/octokit/auth-oauth-device.js#usage)'
|
|
);
|
|
}
|
|
return Object.assign(auth.bind(null, state), {
|
|
hook: hook.bind(null, state)
|
|
});
|
|
}
|
|
export {
|
|
createOAuthDeviceAuth
|
|
};
|