Skip to content

Migrate to GitHub GraphQL API #73

@freak4pc

Description

@freak4pc

The motivation for this is an issue (that GitHub claims as a feature) in their regular API.

You might or might not have noticed but the "last updated" date (By which the repos are sorted) isn't actually the date of the last pushed commit on master (or to the repo). This is very confusing since the field we're reading is actually pushed_at. When chatting with GitHub this was the response I got:

When a pull request is created, a hidden ref is created in the base repository to track that pull request. That hidden ref is automatically updated as the branch from which the pull request was created is updated.

Every one of these automatic update triggers a push. So any update to pull requests from forks will also update the pushed_at value for the base repository due to these hidden refs.

You can see these hidden refs mentioned here:

https://help.github.com/articles/checking-out-pull-requests-locally/#modifying-an-inactive-pull-request-locally

As it relates to your repository, it's likely that another user pushed commits to fork of that repository which subsequently updates the pushed_at value for this repository.

I agree that's confusing if you're trying to figure out how the pushed_at works. We have an internal issue open to see what the team thinks about this and if we'd consider changing this so that only pushes to user-defined branches and tags are counted towards the updated_at. I can't make any promises about this, but we'll followup with you when there's any news (I don't expect any news in the near future since changes like these are not that simple to make).

Besides, there are few more piece of information we would probably want to get for the community website later on.

Meaning, pushed_at isn't specific to only the repos, but also to its forks, which make the date unreliable.

Later, through this discussion, GH suggested we'd examine their GraphQL to pull the repo information with the top commit. I'll want to look into this later on but still not sure when.

Also, If the GraphQL API will still force us in doing two queries (one for the repo and one for the latest commit), it doesn't provide that much added value and we can keep using the regular API in this case .

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions