Best JavaScript code snippet using qawolf
GithubInstance.ts
Source:GithubInstance.ts
...50 public getSafeOctokitForRepo(orgName: string, repoName?: string) {51 const targetName = (repoName ? `${orgName}/${repoName}` : orgName).toLowerCase();52 for (const install of this.installationsCache.values()) {53 if (install.matchesRepository.includes(targetName) || install.matchesRepository.includes(`${targetName.split('/')[0]}/*`)) {54 return this.createOctokitForInstallation(install.id);55 }56 }57 return null;58 }59 public getOctokitForRepo(orgName: string, repoName?: string) {60 const res = this.getSafeOctokitForRepo(orgName, repoName);61 if (res) {62 return res;63 }64 // TODO: Refresh cache?65 throw Error(`No installation found to handle ${orgName}/${repoName}`);66 }67 private createOctokitForInstallation(installationId: number) {68 return new Octokit({69 authStrategy: createAppAuth,70 auth: {71 appId: this.appId,72 privateKey: this.privateKey,73 installationId,74 },75 userAgent: UserAgent,76 });77 }78 public async start() {79 // TODO: Make this generic.80 const auth = {81 appId: this.appId,82 privateKey: this.privateKey,83 };84 this.internalOctokit = new Octokit({85 authStrategy: createAppAuth,86 auth,87 userAgent: UserAgent,88 });89 const appDetails = await this.internalOctokit.apps.getAuthenticated();90 this.internalAppSlug = appDetails.data.slug;91 let installPageSize = 100;92 let page = 1;93 do {94 const installations = await this.internalOctokit.apps.listInstallations({ per_page: 100, page: page++ });95 for (const install of installations.data) {96 await this.addInstallation(install);97 }98 installPageSize = installations.data.length;99 } while(installPageSize === 100)100 log.info(`Found ${this.installationsCache.size} installations`);101 }102 private async addInstallation(install: InstallationDataType, repos?: {full_name: string}[]) {103 let matchesRepository: string[] = [];104 if (install.repository_selection === "all") {105 matchesRepository = [`${install.account?.login}/*`.toLowerCase()];106 } else if (repos) {107 matchesRepository = repos.map(r => r.full_name.toLowerCase());108 } else {109 const installOctokit = this.createOctokitForInstallation(install.id);110 const repos = await installOctokit.apps.listReposAccessibleToInstallation({ per_page: 100 });111 matchesRepository.push(...repos.data.repositories.map(r => r.full_name.toLowerCase()));112 }113 this.installationsCache.set(install.id, {114 account: install.account,115 id: install.id,116 repository_selection: install.repository_selection,117 matchesRepository,118 });119 }120 public onInstallationCreated(data: GitHubWebhookTypes.InstallationCreatedEvent|GitHubWebhookTypes.InstallationUnsuspendEvent) {121 this.addInstallation(data.installation as InstallationDataType, data.repositories);122 }123 public onInstallationRemoved(data: GitHubWebhookTypes.InstallationDeletedEvent|GitHubWebhookTypes.InstallationSuspendEvent) {...Using AI Code Generation
1const { createOctokitForInstallation } = require('qawolf');2const { createOctokitForInstallation } = require('qawolf');3const { createOctokitForInstallation } = require('qawolf');4const { createOctokitForInstallation } = require('qawolf');5const { createOctokitForInstallation } = require('qawolf');6const { createOctokitForInstallation } = require('qawolf');7const { createOctokitForInstallation } = require('qawolf');8const { createOctokitForInstallation } = require('qawolf');9const { createOctokitForInstallation } = require('qawolf');Using AI Code Generation
1const { createOctokitForInstallation } = require('qawolf');2const installationId = process.env.INSTALLATION_ID;3const octokit = await createOctokitForInstallation(installationId);4const { data: { access_token: accessToken } } = await octokit.request('POST /app/installations/{installation_id}/access_tokens', {5});6const installationOctokit = new Octokit({7});8