Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
#!/bin/bash
curl -sLO https://github.com/mike-engel/jwt-cli/releases/latest/download/jwt-linux.tar.gz
tar xzf jwt-linux.tar.gz
curl -sLO https://github.com/stedolan/jq/releases/latest/download/jq-linux64
mv jq-linux64 jq
chmod +x jq
app_id=157615
private_key_file=my-tiny-github-app.2021-12-09.private-key.pem
exp=$(date -d '10 minutes' +%s)
# If your machine doesn't have GNU date command, uncomment below
# exp=$(perl -e 'print time + 60*10')
JWT=$(./jwt encode --alg RS256 --exp $exp --iss $app_id --secret @$private_key_file)
curl -i -H "Authorization: Bearer $JWT" https://api.github.com/app
curl -i -H "Authorization: Bearer $JWT" https://api.github.com/app/installations
curl -H "Authorization: Bearer $JWT" https://api.github.com/app/installations > installations.json
access_tokens_url=$(./jq -r '.[].access_tokens_url' installations.json)
curl -i -X POST -H "Authorization: Bearer $JWT" $access_tokens_url
curl -X POST -H "Authorization: Bearer $JWT" $access_tokens_url > access_tokens.json
access_token=$(./jq -r '.token' access_tokens.json)
curl -H "Authorization: token $access_token" https://api.github.com/repos/kyanny/test/issues | ./jq '.[].title'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment