GitHub/GH Client: Difference between revisions

From Omnia
Jump to navigation Jump to search
No edit summary
 
(One intermediate revision by the same user not shown)
Line 15: Line 15:
  https://cli.github.com/manual/gh_api
  https://cli.github.com/manual/gh_api


== Login ==
== Auth ==


  gh auth status
  gh auth status


Bad status:
<pre>
<pre>
$ gh auth status
$ gh auth status
Line 27: Line 28:
   - To re-authenticate, run: gh auth login -h github.com
   - To re-authenticate, run: gh auth login -h github.com
   - To forget about this account, run: gh auth logout -h github.com -u YOUR-USER
   - To forget about this account, run: gh auth logout -h github.com -u YOUR-USER
</pre>
Good status:
<pre>
# gh auth status
github.com
  ✓ Logged in to github.com account YOUR-USER (/home/user/.config/gh/hosts.yml)
  - Active account: true
  - Git operations protocol: ssh
  - Token: ghp_************************************
  - Token scopes: 'admin:public_key', 'read:org', 'repo'
</pre>
=== Login ===
gh auth login -h github.com
<pre>
# gh auth login -h github.com
? What is your preferred protocol for Git operations on this host? SSH
? Upload your SSH public key to your GitHub account? /root/.ssh/github.pub
? Title for your SSH key: GitHub CLI
? How would you like to authenticate GitHub CLI? Paste an authentication token
Tip: you can generate a Personal Access Token here https://github.com/settings/tokens
The minimum required scopes are 'repo', 'read:org', 'admin:public_key'.
? Paste your authentication token: ****************************************
- gh config set -h github.com git_protocol ssh
✓ Configured git protocol
! Authentication credentials saved in plain text
✓ SSH key already existed on your GitHub account: /root/.ssh/github.pub
✓ Logged in as YOUR-USER-NAME
! You were already logged in to this account
</pre>
</pre>


Line 41: Line 74:


See [[make-jwt.py]]
See [[make-jwt.py]]
 
== api ==
== api ==


  gh api
  gh api
ref: https://cli.github.com/manual/gh_api


== Action Runners ==
== Action Runners ==

Latest revision as of 05:00, 15 August 2024

Github GH Client

Installation

https://github.com/cli/cli/releases/tag/v2.41.0
wget https://github.com/cli/cli/releases/download/v2.41.0/gh_2.41.0_linux_amd64.deb
dpkg -i gh_2.41.0_linux_amd64.deb

Really really old version:

pip3 install gh

Doc

https://cli.github.com/manual/gh_api

Auth

gh auth status

Bad status:

$ gh auth status
github.com
  X Failed to log in to github.com account YOUR-USER (/home/user/.config/gh/hosts.yml)
  - Active account: true
  - The token in /home/user/.config/gh/hosts.yml is invalid.
  - To re-authenticate, run: gh auth login -h github.com
  - To forget about this account, run: gh auth logout -h github.com -u YOUR-USER

Good status:

# gh auth status
github.com
  ✓ Logged in to github.com account YOUR-USER (/home/user/.config/gh/hosts.yml)
  - Active account: true
  - Git operations protocol: ssh
  - Token: ghp_************************************
  - Token scopes: 'admin:public_key', 'read:org', 'repo'

Login

gh auth login -h github.com
# gh auth login -h github.com
? What is your preferred protocol for Git operations on this host? SSH
? Upload your SSH public key to your GitHub account? /root/.ssh/github.pub
? Title for your SSH key: GitHub CLI
? How would you like to authenticate GitHub CLI? Paste an authentication token
Tip: you can generate a Personal Access Token here https://github.com/settings/tokens
The minimum required scopes are 'repo', 'read:org', 'admin:public_key'.
? Paste your authentication token: ****************************************
- gh config set -h github.com git_protocol ssh
✓ Configured git protocol
! Authentication credentials saved in plain text
✓ SSH key already existed on your GitHub account: /root/.ssh/github.pub
✓ Logged in as YOUR-USER-NAME
! You were already logged in to this account

GH_TOKEN

PRIVATE_KEY='private_key.pem'
APP_ID='12345'
INSTALLATION_ID='54321'

JWT=`./make-jwt.py $PRIVATE_KEY $APP_ID`
GH_TOKEN=`curl -s --request POST --url "https://api.github.com/app/installations/$INSTALLATION_ID/access_tokens" --header "Accept: application/vnd.github+json" --header "Authorization: Bearer $JWT" --header "X-GitHub-Api-Version: 2022-11-28" | python -c "import sys, json; print(json.load(sys.stdin)['token'])"`
echo "export GH_TOKEN=$GH_TOKEN"

See make-jwt.py

api

gh api ref: https://cli.github.com/manual/gh_api

Action Runners

https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28

List

gh api /orgs/ORG/actions/runners

keywords