diff --git a/.changeset/khaki-socks-wash.md b/.changeset/khaki-socks-wash.md new file mode 100644 index 0000000000..241ac75be3 --- /dev/null +++ b/.changeset/khaki-socks-wash.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Set timeout for scaffolder octokit client diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts index c310389488..29997e5843 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts @@ -22,6 +22,8 @@ import { import { OctokitOptions } from '@octokit/core/dist-types/types'; import { parseRepoUrl } from '../publish/util'; +const DEFAULT_TIMEOUT_MS = 60_000; + export async function getOctokitOptions(options: { integrations: ScmIntegrationRegistry; credentialsProvider?: GithubCredentialsProvider; @@ -31,6 +33,11 @@ export async function getOctokitOptions(options: { const { integrations, credentialsProvider, repoUrl, token } = options; const { owner, repo, host } = parseRepoUrl(repoUrl, integrations); + const requestOptions = { + // set timeout to 60 seconds + timeout: DEFAULT_TIMEOUT_MS, + }; + if (!owner) { throw new InputError(`No owner provided for repo ${repoUrl}`); } @@ -47,6 +54,7 @@ export async function getOctokitOptions(options: { auth: token, baseUrl: integrationConfig.apiBaseUrl, previews: ['nebula-preview'], + request: requestOptions, }; }