Github API - 如何知道问题是否已通过分叉拉取请求关闭?



我如何知道给定一个已关闭的问题,它是否通过拉取请求关闭,特别是通过分叉拉取请求关闭,以及如何获取分叉的 ID?

我一直在阅读问题/拉取请求/事件 API 文档,但没有找到任何东西。

可以使用GraphQL API v4 使用timelineItems并使用状态CLOSED_EVENT过滤事件

{
repository(name: "material-ui", owner: "mui-org") {
issue(number: 19641) {
timelineItems(itemTypes: CLOSED_EVENT, last: 1) {
nodes {
... on ClosedEvent {
createdAt
closer {
...on PullRequest {
baseRefName
baseRepository {
nameWithOwner
}
headRefName
headRepository {
nameWithOwner
}
}
}
}
}
}
}
}
}

在资源管理器中试用

closer字段包含结束的来源:

  • 通过拉取请求:PullRequest
  • 通过提交消息:Commit
  • 或通过关闭的按钮:null

以下请求是 3 种关闭类型的示例

通过拉取请求关闭

此拉取请求关闭了此问题

{
repository(name: "material-ui", owner: "mui-org") {
issue(number: 19641) {
timelineItems(itemTypes: CLOSED_EVENT, last: 1) {
nodes {
... on ClosedEvent {
createdAt
closer {
__typename
}
}
}
}
}
}
}

输出

{
"data": {
"repository": {
"issue": {
"timelineItems": {
"nodes": [
{
"createdAt": "2020-05-20T09:06:11Z",
"closer": {
"__typename": "PullRequest"
}
}
]
}
}
}
}
}

通过提交消息关闭

此提交关闭了此问题

{
repository(name: "rubinius", owner: "rubinius") {
issue(number: 1536) {
timelineItems(itemTypes: CLOSED_EVENT, last: 1) {
nodes {
... on ClosedEvent {
createdAt
closer {
__typename
}
}
}
}
}
}
}

输出

{
"data": {
"repository": {
"issue": {
"timelineItems": {
"nodes": [
{
"createdAt": "2012-01-30T22:33:11Z",
"closer": {
"__typename": "Commit"
}
}
]
}
}
}
}
}

通过按钮关闭

此问题已通过关闭按钮关闭:

{
repository(name: "rubinius", owner: "rubinius") {
issue(number: 3830) {
timelineItems(itemTypes: CLOSED_EVENT, last: 1) {
nodes {
... on ClosedEvent {
createdAt
closer {
__typename
}
}
}
}
}
}
}

输出

{
"data": {
"repository": {
"issue": {
"timelineItems": {
"nodes": [
{
"createdAt": "2020-02-02T22:31:05Z",
"closer": null
}
]
}
}
}
}
}

相关内容

最新更新