Получите данные о статусе для списка логинов (пользователей) GitHub, эффективно используя GraphQL

#github #graphql #github-api

#github #graphql #github-api

Вопрос:

Что я хотел бы сделать, так это получить конкретные данные о статусе для группы из 10-40 пользователей GitHub из организации. Я хотел бы получить данные в одном пакете. В настоящее время мое решение запрашивает данные с помощью цикла for в коде и запроса ниже:

 {  user(login: "user1") {  status {  indicatesLimitedAvailability  updatedAt  createdAt }  

Недостатком этого решения является то, что я должен использовать режим сна, чтобы не запускать вызовы API с ограничением в минуту в GitHub.

Можно ли преобразовать запрос во что-то подобное (псевдокод):

 {  user(login: "user1", "user2", "user3", ...) {  status {  indicatesLimitedAvailability  updatedAt  createdAt }  

И какой — то список в ответе?

Ответ №1:

Вы можете использовать следующий запрос:

 {  nodes(ids: ["node_id1", "node_id2"]) {  ... on User {  status {  indicatesLimitedAvailability  updatedAt  createdAt  }  }  } }  

Где node_id находится id список пользователей, которых вы хотите запросить.

Вы можете получить их, используя следующий запрос:

 {  user(login: "username") {  id  } }  

Или вы можете получить всех членов организации со следующим запросом

 {  organization(login: "org_name") {  membersWithRole(first: 100) {  nodes {  login  id  }  }  } }