Фильтровать пустые узлы в GitHub GraphQL API

#graphql #github-api

#graphql #github-api

Вопрос:

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

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

Однако есть проблема: он включает в себя множество пустых узлов, которые меня не интересуют. Например, если я хочу получить все CrossReferencedEvent, которые являются проблемами, я получу много пустых узлов в массиве timeline edges из-за других событий: 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 . Это будет . сохраните мне все пустые узлы в массиве корневых ребер, но я не вижу, как сделать то же самое для вложенной временной шкалы.

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