src/github/token.ts (21 lines of code) (raw):
#!/usr/bin/env bun
import * as core from "@actions/core";
import {ENV_VARS, OUTPUT_VARS} from "../constants/environment";
export interface GitHubTokenConfig {
workingToken: string;
defaultToken: string;
isDefaultToken: (token?: string) => boolean;
}
/**
* Acquires and configures GitHub authentication token for Junie workflow
* Prioritizes custom token if provided, otherwise uses default workflow token
*/
export async function acquireGitHubAuthentication(): Promise<GitHubTokenConfig> {
const defaultToken = process.env[ENV_VARS.DEFAULT_WORKFLOW_TOKEN]!;
const providedToken = process.env[ENV_VARS.OVERRIDE_GITHUB_TOKEN];
let workingToken: string;
if (providedToken) {
console.log("Using provided OVERRIDE_GITHUB_TOKEN for authentication");
workingToken = providedToken;
} else {
console.log("Using DEFAULT_WORKFLOW_TOKEN for authentication");
workingToken = defaultToken;
}
core.setSecret(workingToken);
core.setOutput(OUTPUT_VARS.EJ_AUTH_GITHUB_TOKEN, workingToken);
return {
workingToken,
defaultToken,
isDefaultToken: () => {
return workingToken === defaultToken;
}
};
}