@c3exchange/github-app-token v1.0.2
GitHub-App-Token
A tool to request a new access token from an installed GitHub Application.
Prerequisites
Create a custom GitHub Application by going to your account or organization settings -> Developer Settings -> GitHub Apps and
click on the New GitHub App button
- Enter the application name, homepage and other required basic information. Disable WebHooks if not needed.
- Configure the permissions this application will have and where can be installed.
- Take note of the generate
Application ID. - Once the application has been created install it on your organization or personal account. If you omit this step, you can install
later by editing the application on the
GitHub Appssettings page.
Generate a private key:
- Go back to your account or organization settings ->
Developer Settings->GitHub Appsand click on theEditbutton of your newly created application. - Scroll down in the General settings and look for the
Generate a private keybutton. - Save the newly private key in a SECURE location like a GitHub secret.
Usage
Make sure you have NodeJS installed as well as the latest version of the
npm package.
Run npx [-y] @c3exchange/github-app-token@latest {parameters}
Where parameters can be:
| Parameter | Description |
|---|---|
--pk {private-key-file} | A file containing the generated RSA-256 private key. If private-key-file is equal to stdin, the script will read the private key from the standard input. |
--app-id {application-id} | Specifies the application ID. |
--inst-id {installation-id} | Specifies the installation ID. This parameter is optional. |
--org {organization-name} | Restricts the lookup of the installation ID to the given organization. |
--user {user-name} | Restricts the lookup of the installation ID to the given user. |
--perm {list-of-permissions} | A list of requested permissions separated by comma. See below for details. |
--scope {list-of-permissions} | Alias of --perm. |
--ua {user-agent} | An user agent to use in web requests. Defaults to: GitHubAppToken-Retriever/1.0. |
NOTE
- Use
-yflag on automated environments like deployment ones to avoid undesired prompts.
Permissions
Each permission consist in strings with the following format: access:type
Type can be: contents, packages, secrets, etc. See GitHub documentation for a complete list of access types.
access is optional and must be separated from the type with a : (colon). If specified, it must be read, write or admin.
Defaults to read.
Some examples:
write:contentsallows write access to repository contents.packagesallows read access to packages.read:secretsallows read access to secrets in a GitHub action.
License
Apache 2.0
2 years ago