Как я могу увидеть, что проблема была перемещена между столбцами в проекте с помощью GitHub GraphQL API?
Я хотел бы определить, когда карта перемещалась из одного столбца в другой в Системной плате проекта GitHub с помощью GitHub GraphQL API.
Я могу перечислить все проблемы на доске проекта (например, Twitter Bootstrap), используя такой запрос:
{
organization(login: "twbs") {
repository(name: "bootstrap") {
project(number: 4) {
columns(first: 5) {
nodes {
name
cards(first: 10) {
nodes {
content {
__typename
... on Issue {
title
url
timeline(first: 10) {
nodes {
__typename
}
}
}
}
}
}
}
}
}
}
}
}
Есть много типов событий в IssueTimelineConnection
, но связанных с проектом событий среди них нет:
...
{
"content": {
"__typename": "Issue",
"title": "Remove inner white border effect on popovers",
"url": "https://github.com/twbs/bootstrap/issues/23763",
"timeline": {
"nodes": [
{
"__typename": "RenamedTitleEvent"
},
{
"__typename": "IssueComment"
},
{
"__typename": "LabeledEvent"
},
{
"__typename": "LabeledEvent"
},
{
"__typename": "IssueComment"
},
{
"__typename": "CrossReferencedEvent"
},
{
"__typename": "CrossReferencedEvent"
},
{
"__typename": "LabeledEvent"
},
{
"__typename": "ClosedEvent"
},
{
"__typename": "CrossReferencedEvent"
}
]
}
}
...
Я могу видеть, когда проблемы были перемещены между столбцами на веб-странице GitHub для проблемы:
Я просто не вижу этих событий в API. Это недостающая функция? Есть ли другой способ получить эту информацию? (Контекст: я хотел бы построить диаграмму выкатов для плат проектов GitHub.)
2 ответа
Вы можете получить столбец и дату последнего изменения столбца, используя следующий запрос дляnew projects
. Этот методnot valid
дляclassic projects
в Гитхабе.
query{
user(login: "USER_NAME") {
projectV2(number: 1) {
title
items(first: 100) {
pageInfo {
endCursor
hasNextPage
}
nodes {
content {
... on Issue {
id
title
url
state
repository {
name
owner {
login
}
}
}
}
status: fieldValueByName(name: "Status") {
... on ProjectV2ItemFieldSingleSelectValue {
column: name
updatedAt
}
}
}
}
}
}
}
Запрос был протестирован с помощью GitHub Explorer.
Вам необходимо добавить заголовок Accept для сведений о событиях проекта ( https://developer.github.com/v4/previews/) и заголовок Accept для предварительного просмотра проблемы ( https://developer.github.com/v4/previews/)
Тогда вы можете использовать timelineItems
и выполните запрос как это:
query {
repository(owner: "buildo", name: "react-components") {
issue(number: 1321) {
timelineItems(first: 10) {
nodes {
__typename
}
}
}
}
}
Это возвращает:
{
"repository": {
"issue": {
"timelineItems": {
"nodes": [
{
"__typename": "ConvertedNoteToIssueEvent"
},
{
"__typename": "AssignedEvent"
},
{
"__typename": "LabeledEvent"
},
{
"__typename": "MovedColumnsInProjectEvent"
}
]
}
}
}
}