From ba67ff8d62ee53380ac3ac4479d66765c540a6bb Mon Sep 17 00:00:00 2001 From: EnviousSwan Date: Mon, 9 Sep 2024 15:19:17 +0100 Subject: [PATCH] Cancel GitHub token refresh at the end --- src/action/main.ts | 1 + src/modules/workspace.ts | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/action/main.ts b/src/action/main.ts index 910fa5a6..5893c7bc 100644 --- a/src/action/main.ts +++ b/src/action/main.ts @@ -78,6 +78,7 @@ async function run(): Promise { ], inputs.steward.extraJars) } finally { await workspace.saveWorkspaceCache() + await workspace.cancelTokenRefresh() } if (files.existsSync(workspace.runSummary_md)) { diff --git a/src/modules/workspace.ts b/src/modules/workspace.ts index 1837f961..917aacd0 100644 --- a/src/modules/workspace.ts +++ b/src/modules/workspace.ts @@ -24,6 +24,8 @@ export class Workspace { readonly askpass_sh: NonEmptyString readonly runSummary_md: string + private intervalId: NodeJS.Timeout | undefined + constructor( private readonly logger: Logger, private readonly files: Files, @@ -123,7 +125,7 @@ export class Workspace { } await this.writeAskPass(token) - setInterval(async () => { + this.intervalId = setInterval(async () => { await this.writeAskPass(token) this.logger.info('✓ GitHub Token refreshed') }, 1000 * 60 * 50) @@ -154,6 +156,15 @@ export class Workspace { this.files.writeFileSync(this.askpass_sh.value, `#!/bin/sh\n\necho '${token}'`) } + /** + * Cancels the token refresh if it is currently scheduled. + */ + async cancelTokenRefresh(): Promise { + if (this.intervalId) { + clearInterval(this.intervalId) + } + } + /** * Gets the first eight characters of the SHA-256 hash value for the * provided file's contents.