go to first commit on github

There are many times that I want to see the first commit of a project on github.com, it’s annoying to click the Older link again and again. Below is my solution with Surfingkeys before github provides a formal way.

Add below into your own settings(The function is from FarhadG/init),

mapkey('gl', 'Go to last page of commits on github', function() {

    (function openFirstCommit(args) {
        // args[1] is the `orgname/repo` url fragment
        // args[2] is the optional branch or hash

        return fetch('https://api.github.com/repos/' + args[1] + '/commits?sha=' + (args[2] || ''))

        // the link header has additional urls for paging
        // parse the original JSON for the case where no other pages exist
            .then(res => Promise.all([res.headers.get('link'), res.json()]))

        // get last page of commits
            .then(results => {
                // results[0] is the link
                // results[1] is the first page of commits

                if (results[0]) {
                    // the link contains two urls in the form
                    // <https://github.com/...>; rel=blah, <https://github.com/...>; rel=thelastpage
                    // split the url out of the string
                    var pageurl = results[0].split(',')[1].split(';')[0].slice(2, -1);
                    // fetch the last page
                    return fetch(pageurl).then(res => res.json());
                }

                // if no link, we know we're on the only page
                return results[1];
            })

        // get the last commit and extract the url
            .then(commits => {
                window.location = commits.pop().html_url;
            })

    })(window.location.pathname.match(/\/([^\/]+\/[^\/]+)(?:\/tree\/([^\/]+))?/));

}, {domain: /github.com/i});

Press gl to go to last page.