github token

This commit is contained in:
Shawn Morreau
2025-11-21 14:00:12 -05:00
parent 99e572194d
commit 589592372f
4 changed files with 7 additions and 31 deletions
+1 -3
View File
@@ -1,3 +1 @@
Print the MCP tools available to you.
Try to call select_mode with the name "Plan".
Then tell me a joke
write a comment to https://github.com/pullfrogai/scratch/pull/29 that tells a joke
+3 -8
View File
@@ -135,7 +135,6 @@ To fix this, add the required secret to your GitHub repository:
interface MainContext {
inputs: Inputs;
githubInstallationToken: string;
tokenToRevoke: string | null;
repoContext: RepoContext;
agentName: AgentNameType;
agent: (typeof agents)[AgentNameType];
@@ -155,16 +154,14 @@ async function initializeContext(
Inputs.assert(inputs);
setupGitConfig();
const { githubInstallationToken, wasAcquired } = await setupGitHubInstallationToken();
const tokenToRevoke = wasAcquired ? githubInstallationToken : null;
const githubInstallationToken = await setupGitHubInstallationToken();
const repoContext = parseRepoContext();
return {
inputs,
githubInstallationToken,
tokenToRevoke,
repoContext,
agentName: "claude" as AgentNameType,
agentName: "claude",
agent: agents.claude,
sharedTempDir: "",
mcpLogPath: "",
@@ -292,7 +289,5 @@ async function cleanup(ctx: Omit<MainContext, "mcpServers" | "cliPath" | "apiKey
if (ctx.pollInterval) {
clearInterval(ctx.pollInterval);
}
if (ctx.tokenToRevoke) {
await revokeInstallationToken(ctx.tokenToRevoke);
}
await revokeInstallationToken(ctx.githubInstallationToken);
}
+1 -1
View File
@@ -27,7 +27,7 @@ export async function run(prompt: string): Promise<AgentResult> {
// we don't need to extract it here since main() will parse the payload
const inputs: Required<Inputs> = {
prompt,
defaultAgent: "cursor",
defaultAgent: "gemini",
...flatMorph(agents, (_, agent) =>
agent.apiKeyNames.map((inputKey) => [inputKey, process.env[inputKey.toUpperCase()]])
),
+2 -19
View File
@@ -43,12 +43,6 @@ interface RepositoriesResponse {
repositories: Repository[];
}
function checkExistingToken(): string | null {
const inputToken = core.getInput("github_installation_token");
const envToken = process.env.GITHUB_INSTALLATION_TOKEN;
return inputToken || envToken || null;
}
function isGitHubActionsEnvironment(): boolean {
return Boolean(process.env.GITHUB_ACTIONS);
}
@@ -249,24 +243,13 @@ async function acquireNewToken(): Promise<string> {
/**
* Setup GitHub installation token for the action
* Returns the token and whether it was acquired (needs revocation)
*/
export async function setupGitHubInstallationToken(): Promise<{
githubInstallationToken: string;
wasAcquired: boolean;
}> {
const existingToken = checkExistingToken();
if (existingToken) {
core.setSecret(existingToken);
log.info("Using provided GitHub installation token");
return { githubInstallationToken: existingToken, wasAcquired: false };
}
export async function setupGitHubInstallationToken(): Promise<string> {
const acquiredToken = await acquireNewToken();
core.setSecret(acquiredToken);
process.env.GITHUB_INSTALLATION_TOKEN = acquiredToken;
return { githubInstallationToken: acquiredToken, wasAcquired: true };
return acquiredToken;
}
/**