in functions/src/plugins/common.ts [26:49]
async manualInit(): Promise<void> {
const adminConfig = await this.admin.doc('config').get();
if(adminConfig.exists && (<AdminConfig>adminConfig.data()).allowInit) {
const github = await this.robot.auth();
const installations = await github.paginate(github.apps.listInstallations({}), pages => (pages as any as Github.AnyResponse).data);
await Promise.all(installations.map(async installation => {
const authGithub = await this.robot.auth(installation.id);
const repositories = await authGithub.apps.listRepos({});
await Promise.all(repositories.data.repositories.map(async (repository: Github.AppsListReposResponseRepositoriesItem) => {
await this.repositories.doc(repository.id.toString()).set({
id: repository.id,
name: repository.name,
full_name: repository.full_name,
installationId: installation.id
}).catch(err => {
this.robot.log.error(err);
throw err;
});
}));
}));
} else {
this.robot.log.error(`Manual init is disabled: the value of allowInit is set to false in the admin config database`);
}
}