@@ -40481,7 +40481,7 @@ function query({
4048140481// package.json
4048240482var package_default = {
4048340483 name: "@pullfrog/action",
40484- version: "0.0.95 ",
40484+ version: "0.0.96 ",
4048540485 type: "module",
4048640486 files: [
4048740487 "index.js",
@@ -41084,7 +41084,7 @@ async function setupGitHubInstallationToken() {
4108441084 if (existingToken) {
4108541085 core2.setSecret(existingToken);
4108641086 log.info("Using provided GitHub installation token");
41087- return { githubInstallationToken: existingToken, wasAcquired: false };
41087+ return { githubInstallationToken: existingToken, wasAcquired: false, isFallbackToken: false };
4108841088 }
4108941089 const acquiredToken = await acquireNewToken();
4109041090 if (!acquiredToken) {
@@ -41097,11 +41097,11 @@ async function setupGitHubInstallationToken() {
4109741097 log.info("Using GITHUB_TOKEN (app not installed or token exchange failed)");
4109841098 core2.setSecret(defaultToken);
4109941099 process.env.GITHUB_INSTALLATION_TOKEN = defaultToken;
41100- return { githubInstallationToken: defaultToken, wasAcquired: false };
41100+ return { githubInstallationToken: defaultToken, wasAcquired: false, isFallbackToken: true };
4110141101 }
4110241102 core2.setSecret(acquiredToken);
4110341103 process.env.GITHUB_INSTALLATION_TOKEN = acquiredToken;
41104- return { githubInstallationToken: acquiredToken, wasAcquired: true };
41104+ return { githubInstallationToken: acquiredToken, wasAcquired: true, isFallbackToken: false };
4110541105}
4110641106async function revokeInstallationToken(token) {
4110741107 const apiUrl = process.env.GITHUB_API_URL || "https://api.github.com";
@@ -41437,6 +41437,9 @@ var DEFAULT_REPO_SETTINGS = {
4143741437};
4143841438async function getRepoSettings(token, repoContext) {
4143941439 const apiUrl = process.env.API_URL || "https://pullfrog.ai";
41440+ const timeoutMs = 5e3;
41441+ const controller = new AbortController();
41442+ const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
4144041443 try {
4144141444 const response = await fetch(
4144241445 `${apiUrl}/api/repo/${repoContext.owner}/${repoContext.name}/settings`,
@@ -41445,9 +41448,11 @@ async function getRepoSettings(token, repoContext) {
4144541448 headers: {
4144641449 Authorization: `Bearer ${token}`,
4144741450 "Content-Type": "application/json"
41448- }
41451+ },
41452+ signal: controller.signal
4144941453 }
4145041454 );
41455+ clearTimeout(timeoutId);
4145141456 if (!response.ok) {
4145241457 return DEFAULT_REPO_SETTINGS;
4145341458 }
@@ -41457,6 +41462,7 @@ async function getRepoSettings(token, repoContext) {
4145741462 }
4145841463 return settings;
4145941464 } catch {
41465+ clearTimeout(timeoutId);
4146041466 return DEFAULT_REPO_SETTINGS;
4146141467 }
4146241468}
@@ -41504,12 +41510,20 @@ async function main(inputs) {
4150441510 try {
4150541511 log.info(`\u{1F438} Running pullfrog/action@${package_default.version}...`);
4150641512 setupGitConfig();
41507- const { githubInstallationToken, wasAcquired } = await setupGitHubInstallationToken();
41513+ const { githubInstallationToken, wasAcquired, isFallbackToken } = await setupGitHubInstallationToken();
4150841514 if (wasAcquired) {
4150941515 tokenToRevoke = githubInstallationToken;
4151041516 }
4151141517 const repoContext = parseRepoContext();
41512- const repoSettings = await getRepoSettings(githubInstallationToken, repoContext);
41518+ let repoSettings;
41519+ if (isFallbackToken) {
41520+ log.info("Using default repository settings (app not installed)");
41521+ repoSettings = DEFAULT_REPO_SETTINGS;
41522+ } else {
41523+ log.info("Fetching repository settings...");
41524+ repoSettings = await getRepoSettings(githubInstallationToken, repoContext);
41525+ log.info("Repository settings fetched");
41526+ }
4151341527 const agent = repoSettings.defaultAgent || "claude";
4151441528 if (agent !== "claude") throw new Error(`Unsupported agent: ${agent}`);
4151541529 setupGitAuth(githubInstallationToken, repoContext);
0 commit comments