/** * Forgejo token handling. * * Unlike GitHub (which uses OIDC → Anthropic exchange for an app token), * Forgejo uses the runner's workflow token directly. No exchange needed. */ export function setupForgejoToken(): string { // 1. User-provided token (via github_token input → OVERRIDE_GITHUB_TOKEN) const providedToken = process.env.OVERRIDE_GITHUB_TOKEN; if (providedToken) { console.log("Using provided token for Forgejo authentication"); return providedToken; } // 2. Runner's default workflow token (github.token → DEFAULT_WORKFLOW_TOKEN) const defaultToken = process.env.DEFAULT_WORKFLOW_TOKEN; if (defaultToken) { console.log("Using default workflow token for Forgejo authentication"); return defaultToken; } throw new Error( "No authentication token available for Forgejo. " + "Provide a token via the 'github_token' input or ensure " + "the workflow has a valid GITHUB_TOKEN.", ); }