From 2f994fbc8173556d1d813bf2c17520109feaedf9 Mon Sep 17 00:00:00 2001 From: Will Hunt Date: Mon, 29 Nov 2021 16:49:49 +0000 Subject: [PATCH] Drop installation ID --- config.sample.yml | 3 --- src/Config/Config.ts | 1 - src/Config/Defaults.ts | 1 - src/Github/GithubInstance.ts | 16 ++++++++++++++-- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/config.sample.yml b/config.sample.yml index 9b4854eb..3c95ff56 100644 --- a/config.sample.yml +++ b/config.sample.yml @@ -9,9 +9,6 @@ bridge: port: 9993 bindAddress: 127.0.0.1 github: - # (Optional) Configure this to enable GitHub support - # - installationId: 6854059 auth: id: 123 privateKeyFile: github-key.pem diff --git a/src/Config/Config.ts b/src/Config/Config.ts index c95df978..166cefbd 100644 --- a/src/Config/Config.ts +++ b/src/Config/Config.ts @@ -20,7 +20,6 @@ export interface BridgeConfigGitHub { // eslint-disable-next-line camelcase redirect_uri: string; }; - installationId: number|string; } export interface GitLabInstance { diff --git a/src/Config/Defaults.ts b/src/Config/Defaults.ts index 3caec358..cb989039 100644 --- a/src/Config/Defaults.ts +++ b/src/Config/Defaults.ts @@ -35,7 +35,6 @@ export const DefaultConfig = new BridgeConfig({ avatar: "mxc://half-shot.uk/2876e89ccade4cb615e210c458e2a7a6883fe17d" }, github: { - installationId: 6854059, auth: { id: 123, privateKeyFile: "github-key.pem", diff --git a/src/Github/GithubInstance.ts b/src/Github/GithubInstance.ts index 5164d1b9..cb9ec775 100644 --- a/src/Github/GithubInstance.ts +++ b/src/Github/GithubInstance.ts @@ -33,7 +33,6 @@ export class GithubInstance { const auth = { appId: parseInt(this.config.auth.id as string, 10), privateKey: await fs.readFile(this.config.auth.privateKeyFile, "utf-8"), - installationId: parseInt(this.config.installationId as string, 10), }; this.internalOctokit = new Octokit({ @@ -43,10 +42,23 @@ export class GithubInstance { }); try { + const installation = (await this.octokit.apps.listInstallations()).data[0]; + if (!installation) { + throw Error("App has no installations, cannot continue. Please ensure you've installed the app somewhere (https://github.com/settings/installations)"); + } + log.info(`Using installation ${installation.id} (${installation.app_slug})`) + this.internalOctokit = new Octokit({ + authStrategy: createAppAuth, + auth: { + ...auth, + installationId: installation.id, + }, + userAgent: USER_AGENT, + }); await this.octokit.rateLimit.get(); log.info("Auth check success"); } catch (ex) { - log.info("Auth check failed:", ex); + log.warn("Auth check failed:", ex); throw Error("Attempting to verify GitHub authentication configration failed"); } }