Last active
August 4, 2024 06:35
-
-
Save eggplants/4536ffd4c59e2ba166068090e8818f03 to your computer and use it in GitHub Desktop.
Get gpg key hash of GitHub followers / followees
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
set -eu | |
requirements=(curl gh gpg grep sed tee) | |
if ! command -v "${requirements[@]}" &>/dev/null | |
then | |
echo "required: ${requirements[*]}" >&2 | |
exit 1 | |
fi | |
if ! gh auth status &>/dev/null | |
then | |
echo 'first: `gh auth login`' >&2 | |
exit 1 | |
fi | |
get_followees() { | |
# <jq query> <page index number> | |
gh api --cache 1h -q "$1" "/user/following?per_page=100&page=$2" | |
} | |
for ((page=1;;page++)) | |
do | |
get_followees '.[].login' "$page" | |
[[ "$(get_followees 'length' $page)" = '100' ]] || break | |
done > followees | |
while read -r id | |
do | |
curl -s 'https://github.com/'"$id"'.gpg' | | |
gpg --show-keys --fingerprint | | |
grep pub -A1 | | |
sed "/[-\[]/d;s/ //g;s/^/${id}\t/" | |
done < followees | tee followees_hash.tsv |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
set -eu | |
requirements=(curl gh gpg grep sed tee) | |
if ! command -v "${requirements[@]}" &>/dev/null | |
then | |
echo "required: ${requirements[*]}" >&2 | |
exit 1 | |
fi | |
if ! gh auth status &>/dev/null | |
then | |
echo 'first: `gh auth login`' >&2 | |
exit 1 | |
fi | |
get_followers() { | |
# <jq query> <page index number> | |
gh api --cache 1h -q "$1" "/user/followers?per_page=100&page=$2" | |
} | |
for ((page=1;;page++)) | |
do | |
get_followers '.[].login' "$page" | |
[[ "$(get_followers 'length' $page)" = '100' ]] || break | |
done > followers | |
while read -r id | |
do | |
curl -s 'https://github.com/'"$id"'.gpg' | | |
gpg --show-keys --fingerprint | | |
grep pub -A1 | | |
sed "/[-\[]/d;s/ //g;s/^/${id}\t/" | |
done < followers | tee followers_hash.tsv |
Author
eggplants
commented
Aug 4, 2024
$ cat followees_hash.tsv
ponapalt CC4E2DA82A90F25791FE437029192618A5C54087
shadowmoose 0AB898F45C591CE45301269CB414B820F555DF27
sinoru F5BEEEAB0B3DF5A7F01BD9263D63FE5C68AE16E5
sinoru FDF2FFBAFA1BFA88F9EC6AFF788F6505702BF203
dtolnay 4628C5D82CFF65D68164A78AF9BA143B95FF6D82
soruly BD46F2357D146E2539B46398EF971E90F3D2521F
jackyzy823 103058FE02C50485FC9940FC4FC2408D9EAF124E
rbernon FC95D85112BC49CDA41B9A0338D0E5827B54E5C9
aucampia FC45CCC352C56B0BE10866C65FF939C35A517B54
aucampia BABDACFCFFCF7E9ABA4617C706AF686FB4F8CDB8
Babibubebon 17682D5E4593A1BFB46C717A575C0B67FDDAF4AE
Babibubebon BA239A4A831ADE80E381DCC5ABF127E6F9E8716A
jiro4989 1C000FBC615CD03E899AD2A9AA09590B4B126DA2
onokatio 6EA9974F9C2F03106BDE84F6160D8704EFA2F6D0
yude 3745F270DB4E89756B0762BEEB0FE5D925C4A968
ygkn 94DD6A9FC793990BE99F059975D9DB2350468783
SnO2WMaN F13B8777F7820455B3CE2A5FAFF74D3D99EC0563
algon-320 45B9E8DC8A1E2B90699D7E0CC9FFE4C110BBB43E
ryotosaito 038317F1E0FA9BF3246B71C2A7AB08E5558A5572
exuanbo 061B926FBF7BE128C28964059144950EFC4835F6
tentenhase 490EC829E93BD1A971C79F458269CBC934EEB1E1
stepney141 3C9C48384DAB8511375DFFBF7835F4AC680B922A
eniehack 6E1005C1115354DF97C80619AE054EAFB2F95E18
dragoneena12 917B61810C9545E5BF280FF5C567A445EB49CF62
Totsugekitai AFF4C616FEB127D3C61E243AE883FEC77495C1D6
AumyF BEDC500020425D0FB4E3C8235911EC1BAD704C03
sui4 D41872DA9BBA20A595A7852A84CA5AFA0EBD51E1
ripry AAA0B5980FF89AE4206198624D618080AEEF8E5A
Last-Vega A9B3246B94EA5D3E67A59157E1B490AEB008299C
Seno7 4267A004636A2DDA801CD209826EB9DB0E4748B6
$ cat followers_hash.tsv
soruly BD46F2357D146E2539B46398EF971E90F3D2521F
aucampia FC45CCC352C56B0BE10866C65FF939C35A517B54
aucampia BABDACFCFFCF7E9ABA4617C706AF686FB4F8CDB8
Xvezda 725E57D666B94F50CAD1DE773E95629ACA316FCC
threeal 83C8A5AF0C41B9DB7F3A9E2BE2338B6CBCEC3688
threeal 16B2BE87DA6129C6DD5230279CE5266FA0F1F66C
threeal 2BF18147F4E7D8B4CE2E01742242A64C2A8DF5A4
threeal B8F082398D5F9B25B6963A6DA5EF030CBC3CC85D
jiro4989 1C000FBC615CD03E899AD2A9AA09590B4B126DA2
onokatio 6EA9974F9C2F03106BDE84F6160D8704EFA2F6D0
yude 3745F270DB4E89756B0762BEEB0FE5D925C4A968
ygkn 94DD6A9FC793990BE99F059975D9DB2350468783
SnO2WMaN F13B8777F7820455B3CE2A5FAFF74D3D99EC0563
tentenhase 490EC829E93BD1A971C79F458269CBC934EEB1E1
stepney141 3C9C48384DAB8511375DFFBF7835F4AC680B922A
eniehack 6E1005C1115354DF97C80619AE054EAFB2F95E18
Totsugekitai AFF4C616FEB127D3C61E243AE883FEC77495C1D6
shuhei-fujita B1A0D941CEA48F49E63FE460515B141D72722D1A
shuhei-fujita AF3D4E562D63471BD2D78C44FC20669D195B8FDE
shuhei-fujita 981E69BAF75B23C18A3CED721B5E57D9D3F2A7BC
extratone F34600B2B0447FA4B028490C05B678ACE0AC392D
extratone DAF7D66BCC4CFCB9B2517132D2D1249897A66748
extratone 2F2E1211E2DF81C0CE7C48A5284A4D3F3496FC9A
extratone 10CE6E5867BC72404FAFA08DC08538E538C18AD9
extratone DA6569E075618DD11D10A8955F9AF6D80F35A031
extratone D066A03FF241F280FA729DC5D19C1DD2C0AD9E2A
sui4 D41872DA9BBA20A595A7852A84CA5AFA0EBD51E1
ripry AAA0B5980FF89AE4206198624D618080AEEF8E5A
Last-Vega A9B3246B94EA5D3E67A59157E1B490AEB008299C
KawaneRio AC01F95E3F201118D49C53AAEE78322CBC2B203D
KawaneRio AD67F93E1013404940517B5A80CE263DD8E1BC2C
KawaneRio C00733FC334EF9A1E0BC5713BEEBFE1EA867E3D3
KawaneRio 3E79B889E83F04BBB5DD0F3DFFA7D26AEA4C4113
Seno7 4267A004636A2DDA801CD209826EB9DB0E4748B6
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment