Github GraphQL Search with Filtering

2019-07-22 03:12发布

问题:

Based on my limited searching, it seems GraphQL can only support equal filtering. So,

Is it possible to do Github GraphQL searching with the filtering conditions of,

  • stars > 10
  • forks > 3
  • total commit >= 5
  • total issues >= 1
  • open issues <= 60
  • size > 2k
  • score > 5
  • last update is within a year

I.e., filtering will all above conditions. Is it possible?

回答1:

This is not an answer but an update of what I've collected so far.

  • According to "Select * for Github GraphQL Search", not all above criteria might be available in the Repository edge. Namely, the "total commit", "open issues" and "score" might not be available.

  • The purpose of the question is obviously to find the valuable repositories and weed off the lower-quality ones. I've collected all the available fields that might be helpful for such assessment here.

A copy of it as of 2018-03-18:

query SearchMostTop10Star($queryString: String!, $number_of_repos:Int!) {
  search(query: $queryString, type: REPOSITORY, first: $number_of_repos) {
    repositoryCount
    edges {
      node {
        ... on Repository {
          name
          url
          description
#         shortDescriptionHTML
          repositoryTopics(first: 12) {nodes {topic {name}}}
          primaryLanguage {name}
          languages(first: 3) { nodes {name} }
          releases {totalCount}
          forkCount
          pullRequests {totalCount}
          stargazers {totalCount}
          issues {totalCount}
          createdAt
          pushedAt
          updatedAt
        }
      }
    }
  }
}
variables {
  "queryString": "language:JavaScript stars:>10000", 
  "number_of_repos": 3 
}

Anyone can try it out as per here.