clientId: data.client_id, clientSecret: data.client_secret, webhookSecret: data.webhook_secret, privateKey: data.pem }); res.redirect(302, `${data.html_url}/installations/new`); }, reject); }); }); this.baseUrl = await this.listen(app); openBrowser__default.default(this.baseUrl); return callPromise; } async listen(app) { return new Promise((resolve, reject) => { const listener = app.listen(0, () => { const info = listener.address(); if (typeof info !== "object" || info === null) { reject(new Error(`Unexpected listener info '${info}'`)); return; } const { port } = info; resolve(`http://localhost:${port}`); }); }); } } var index = async (org) => { const answers = await inquirer__default.default.prompt({ name: "appType", type: "checkbox", message: "Select permissions [required] (these can be changed later but then require approvals in all installations)", choices: [ { name: "Read access to content (required by Software Catalog to ingest data from repositories)", value: "read", checked: true }, { name: "Read access to members (required by Software Catalog to ingest GitHub teams)", value: "members", checked: true }, { name: "Read and Write to content and actions (required by Software Templates to create new repositories)", value: "write" } ] }); if (answers.appType.length === 0) { console.log(chalk__default.default.red("You must select at least one permission")); process.exit(1); } await verifyGithubOrg(org); const { slug, name, ...config } = await GithubCreateAppServer.run({ org, permissions: answers.appType }); const fileName = `github-app-${slug}-credentials.yaml`; const content = `# Name: ${name} ${yaml.stringify(config)}`; await fs__default.default.writeFile(index$1.paths.resolveTargetRoot(fileName), content); console.log(`GitHub App configuration written to ${chalk__default.default.cyan(fileName)}`); console.log( chalk__default.default.yellow( "This file contains sensitive credentials, it should not be committed to version control and handled with care!" ) ); console.log( "Here's an example on how to update the integrations section in app-config.yaml" ); console.log( chalk__default.default.green(` integrations: github: - host: github.com apps: - $include: ${fileName}`) ); }; async function verifyGithubOrg(org) { let response; try { response = await fetch__default.default( `https://api.github.com/orgs/${encodeURIComponent(org)}` ); } catch (e) { console.log( chalk__default.default.yellow( "Warning: Unable to verify existence of GitHub organization. ", e ) ); } if ((response == null ? void 0 : response.status) === 404) { const questions = [ { type: "confirm", name: "shouldCreateOrg", message: `GitHub organization ${chalk__default.default.cyan( org )} does not exist. Would you like to create a new Organization instead?` } ]; const answers = await inquirer__default.default.prompt(questions); if (!answers.shouldCreateOrg) { console.log( chalk__default.default.yellow("GitHub organization must exist to create GitHub app") ); process.exit(1); } openBrowser__default.default("https://github.com/account/organizations/new"); console.log( chalk__default.default.yellow( "Please re-run this command when you have created your new organization" ) ); process.exit(0); } } exports.default = index; //# sourceMappingURL=index-BEAuaU6W.cjs.js.map