feat: add github-app-auth-build command

This commit is contained in:
Samuel Attard 2022-05-05 15:45:54 -07:00
Родитель 14e2af1148
Коммит a6d036e27d
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 7296A7AB7521D713
4 изменённых файлов: 47 добавлений и 35 удалений

Просмотреть файл

@ -5,6 +5,9 @@
"main": "dist/index.js",
"author": "Samuel Attard <sam@electronjs.org>",
"license": "MIT",
"bin": {
"github-app-auth-build": "dist/bin.js"
},
"scripts": {
"prepublishOnly": "tsc",
"test": "exit 0"
@ -12,6 +15,7 @@
"devDependencies": {
"@continuous-auth/semantic-release-npm": "^2.0.0",
"@types/node": "^17.0.31",
"prettier": "^2.6.2",
"typescript": "^4.6.4"
},
"dependencies": {

31
src/bin.ts Normal file
Просмотреть файл

@ -0,0 +1,31 @@
import * as fs from 'fs';
import { bundleAppCredentials } from './';
const args = process.argv;
const cert = args.find(arg => arg.startsWith('--cert='))?.substring('--cert='.length);
const appId = args.find(arg => arg.startsWith('--app-id='))?.substring('--app-id='.length);
if (!cert) {
console.error('Missing --cert argument');
process.exit(1);
}
if (!appId) {
console.error('Missing --app-id argument');
process.exit(1);
}
const privateKey = fs.readFileSync(cert, 'utf8');
const appIdNumber = parseInt(appId, 10);
if (isNaN(appIdNumber)) {
console.error('App ID was not a number');
process.exit(1);
}
console.log(bundleAppCredentials({
appId,
privateKey,
}));

Просмотреть файл

@ -15,6 +15,10 @@ export function appCredentialsFromString(str: string): AppCredentials {
return JSON.parse(Buffer.from(str, 'base64').toString('utf-8')) as any as AppCredentials;
}
export function bundleAppCredentials(appCreds: AppCredentials): string {
return Buffer.from(JSON.stringify(appCreds), 'utf-8').toString('base64');
}
export async function getTokenForRepo(repo: RepoInfo, appCreds: AppCredentials) {
const auth = createAppAuth({
appId: appCreds.appId,
@ -39,4 +43,4 @@ export async function getTokenForRepo(repo: RepoInfo, appCreds: AppCredentials)
});
return installationAuth.token;
}
}

Просмотреть файл

@ -776,7 +776,7 @@ debug@^3.1.0:
dependencies:
ms "^2.1.1"
debuglog@*, debuglog@^1.0.1:
debuglog@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=
@ -1409,7 +1409,7 @@ import-lazy@^2.1.0:
resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=
imurmurhash@*, imurmurhash@^0.1.4:
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
@ -1953,11 +1953,6 @@ lockfile@^1.0.4:
dependencies:
signal-exit "^3.0.2"
lodash._baseindexof@*:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c"
integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=
lodash._baseuniq@~4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8"
@ -1966,33 +1961,11 @@ lodash._baseuniq@~4.6.0:
lodash._createset "~4.0.0"
lodash._root "~3.0.0"
lodash._bindcallback@*:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4=
lodash._cacheindexof@*:
version "3.0.2"
resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92"
integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=
lodash._createcache@*:
version "3.1.2"
resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093"
integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=
dependencies:
lodash._getnative "^3.0.0"
lodash._createset@~4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26"
integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=
lodash._getnative@*, lodash._getnative@^3.0.0:
version "3.9.1"
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
lodash._root@~3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
@ -2038,11 +2011,6 @@ lodash.once@^4.0.0:
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
lodash.restparam@*:
version "3.6.1"
resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=
lodash.union@~4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
@ -2778,6 +2746,11 @@ prepend-http@^1.0.1:
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
prettier@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032"
integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"