首页 > 解决方案 > 获取与拉取请求表单 github api v3 关联的链接问题和项目

问题描述

如何从 github API V3 获取给定拉取请求的项目和链接问题?pulls端点不提供关于它们中的任何一个的信息。在 github 的 pull requests 部分的侧边栏中有ProjectsLinked issues提到。但我找不到通过 API 调用获取此信息的方法。

侧边栏截图供参考

我想找出合并成功时拉取请求关闭的问题。

标签: githubgithub-apipull-requestgithub-api-v3

解决方案


要获取带有链接到特定拉取请求的卡片的项目,您可以使用Github GraphQL API使用此有效负载:

{
  repository(owner: "twbs", name: "bootstrap") {
    pullRequest(number: 30342) {
      projectCards {
        nodes {
          project {
            name
          }
        }
      }
    }
  }
}

但对于链接的问题,我认为 API 尚不可用。如果 repo 是公开的,你仍然可以从github.com 抓取列表。以下脚本使用获取问题 URL 列表:

import requests
from bs4 import BeautifulSoup
import re

repo = "twbs/bootstrap"
pr = "30342"

r = requests.get(f"https://github.com/{repo}/pull/{pr}")
soup = BeautifulSoup(r.text, 'html.parser')
issueForm = soup.find("form", { "aria-label": re.compile('Link issues')})

print([ i["href"] for i in issueForm.find_all("a")])

推荐阅读