DEV Community

Franck Pachot for AWS Heroes

Posted on

Find active forks of a GitHub repository

There are probably better ways to do it but I'm a big fan of curl and awk. This is a quick script to find who, on GitHub, has an active fork of a repo.

last_git_forks(){ for url in $( curl -s "https://github.com/$1/network/members" | awk -F '"' '/>'"${1#*/}"'</{print "https://github.com"$4}' ) ; do curl -s $url/branches | tac | awk -F '"' ' /relative-time/{ # gets the last update of the branch if ( $2 > lasttime ) { lasttime=$2 ; lastbranch=branch } } /Link to (.*) file tree/{ # get the branch name branch=gensub(/Link to (.*) file tree[.]/,"\\1",1,$4) } END{ if (lasttime>"") printf "%-24s %-15s %-s\n",lasttime, lastbranch, name } ' xname="${url#*com/}" name=${url%/*} done | sort } 
Enter fullscreen mode Exit fullscreen mode

For example, I wanted to check the recent pg_tle that has been made public by AWS at last re:Invent

[Franck ~]$ last_git_forks aws/pg_tle 2022-11-30T23:04:58Z main https://github.com/brunnojcb 2022-11-30T23:04:58Z main https://github.com/jk-shah 2022-11-30T23:04:58Z main https://github.com/PawelMahooana 2022-11-30T23:04:58Z main https://github.com/richardsonjf 2022-11-30T23:04:58Z main https://github.com/rleibbrandt-aws 2022-12-14T05:00:47Z main https://github.com/aws 2022-12-14T05:00:47Z main https://github.com/robins 2022-12-16T10:58:40Z dev https://github.com/sharmay 2022-12-17T05:03:46Z tap https://github.com/formalLogicGirl [Franck ~]$ 
Enter fullscreen mode Exit fullscreen mode

I'm also interested to see how Babelfish (a project initiated by AWS to bring SQL Server compatibility to PostgreSQL) is popular:

[Franck ~]$ last_git_forks babelfish-for-postgresql/postgresql_modified_for_babelfish | tail -20 2022-04-11T08:09:35Z BABEL_1_X_DEV__PG_13_6 https://github.com/HarshLunagariya 2022-04-20T12:07:21Z BABEL_1_0_0__PG_13_4__distv2 https://github.com/ongres 2022-05-06T20:33:03Z BABEL_2_X_DEV__PG_14_2 https://github.com/javainthinking 2022-05-06T20:33:03Z issue_229 https://github.com/nasbyj 2022-05-11T13:58:50Z BABEL_1_X_DEV__PG_13_6 https://github.com/KushaalShroff 2022-05-25T08:05:00Z BABEL_2_X_DEV__PG_14_2 https://github.com/anju15bharti 2022-05-25T08:05:00Z BABEL_2_X_DEV__PG_14_2 https://github.com/Terry1504 2022-06-30T07:24:33Z BABEL_2_X_DEV__PG_14_3 https://github.com/reshke 2022-07-05T09:45:06Z BABEL_2_X_DEV__PG_14_3 https://github.com/rohit01010 2022-07-25T23:23:05Z BABEL_2_X_DEV__PG_14_2 https://github.com/Dhruvi-0802 2022-08-10T10:41:59Z BABEL_2_X_DEV__PG_14_3 https://github.com/agattani190 2022-08-10T10:41:59Z BABEL_2_X_DEV__PG_14_3 https://github.com/oscarno22 2022-08-10T10:41:59Z BABEL_2_X_DEV__PG_14_3 https://github.com/thephantomthief 2022-09-15T04:59:35Z BABEL_2_X_DEV__PG_14_5 https://github.com/qiuwenhuifx 2022-09-21T14:17:53Z BABEL_2_X_DEV__PG_14_5 https://github.com/seo-kw 2022-11-07T21:38:53Z BABEL_2_X_DEV__PG_14_X https://github.com/Bit-Quill 2022-11-17T23:26:00Z BABEL_2_X_DEV__PG_14_X https://github.com/faizol 2022-12-06T18:14:22Z BABEL_2_X_DEV__PG_14_X https://github.com/kuntalghosh 2022-12-17T08:59:05Z BABEL_3_X_DEV__PG_15_X https://github.com/babelfish-for-postgresql 2022-12-18T14:01:23Z code_coverage https://github.com/amazon-aurora 
Enter fullscreen mode Exit fullscreen mode

This lists the last activity on a fork's branch. As any indicator of popularity, it gives an idea but do not take too strong decisions on that. An active fork may be short term and removed once a Pull Request is accepted.

Top comments (0)