Фильтровать пустые узлы в GitHub GraphQL API - PullRequest
1 голос
/ 07 марта 2019

Я пытаюсь использовать V4 API GITHUB, чтобы получить список моих назначенных проблем вместе с его ярлыками и ссылками.

Через некоторое время я получил запрос, который вы видите ниже, который работает именно так, как я хочу.

Однако есть проблема: она включает в себя множество пустых узлов, в которых я не заинтересован. Например, если я хочу получить все CrossReferencedEvent, которые являются проблемами, я получу много пустых узлов в массиве ребер временной шкалы, потому что другие события: LabeledEvent, ReferencedEvent, AssignedEvent и т. Д.

Как я могу отфильтровать их, чтобы получать только те события, которые меня интересуют? Это ограничение graphql? Я вынужден удалить ненужные узлы локально? Это запрос, который у меня сейчас

{
  search(query: "assignee:danielo515", type: ISSUE, last: 100) {
    edges {
      node {
        ... on Issue {
          number
          title
          state
          timeline(first: 10) {
            edges {
              node {
                ... on CrossReferencedEvent {
                   source{
                    ... on Issue {
                      title
                      number
                    }
                  }
                }
              }
            }
          }
          labels(last: 10) {
            nodes {
              name
              color
            }
          }
          repository {
            name
          }
        }
      }
    }
  }
}

Одно улучшение, которое я могу сделать, в части запроса добавить is:issue. Это будет . сохранить все пустые узлы в массиве корневых ребер, но я не вижу, как сделать то же самое для вложенной временной шкалы.

Заранее спасибо

...