我需要一种更快的方法来使用 PyGitHub 查找存储库

I need a faster way to find repos with PyGitHub

我的组织在 GitHub 中有大量的回购协议。我有这些存储库的一个子集,我想以编程方式检测它们。我想要的所有回购协议都以相同的字符串开头。 下面的代码正确地找到了它们,但由于存在所有回购协议,因此需要大约一分钟的时间。有更快的方法吗?

def FindMyRepos():
  global ACCESS_TOKEN, ORGANIZATION, PREFIX
  repos = []
  # Log into GitHub
  gh = Github(ACCESS_TOKEN)
  if not gh: return 1
  # Connect to organization
  org = gh.get_organization(ORGANIZATION)
  if not org: return 2
  # Look for repos that start with PREFIX
  for r in org.get_repos():
    if r.name.startswith(PREFIX):
      repos.append(r.name)

经过大量搜索,我找到了答案。我需要使用 search_repositories 方法。一个 'gotcha' 是此方法是 Github 对象的一部分,而不是组织对象的一部分。

def FindMyRepos():
  global ACCESS_TOKEN, ORGANIZATION, PREFIX
  repos = []
  # Log into GitHub
  gh = Github(ACCESS_TOKEN)
  if not gh: return 1
  # Look for repos in ORGANIZATION containing PREFIX
  for r in gh.search_repositorires(query=ORGANIZATION+'/'+PREFIX):
    # Only include repos starting with PREFIX
    if r.name.startswith(PREFIX):
      repos.append(r.name)

if r.name.startswith(PREFIX) 的原因是由于某种原因,搜索将return ORGANIZATION 中任何名称中包含字符串 PREFIX 的所有回购。