Github GraphQl - Как получить список коммитов между тегами - PullRequest
0 голосов
/ 31 мая 2019

С Github GraphQL я хочу ответить на вопрос:

Какие коммиты были объединены в мастер между выпусками / тегами?

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

Я использую проводник разработчика и задаюсь вопросом, смогу ли я сделать это одним запросом или мне понадобится несколько. Я попробовал следующее, но он не дает мне фиксацию между тегами, которые не были помечены, только коммиты с тегами.

{
  repository(owner: "CoolCompany", name: "awesome-new-ui") {
    refs(refPrefix: "refs/tags/", first: 2, orderBy: {field: TAG_COMMIT_DATE, direction: DESC}) {
      edges {
        node {
          id
          name
          target {
            oid
            ... on Commit {
              author {
                date
                email
                name
              }
              message
            }
          }
        }
      }
    }
  }
}

1 Ответ

0 голосов
/ 07 июня 2019

@ lee-dohm из сообщества Github GraphQL помогло мне найти решение, которое размещено здесь

Я также могу вставить свое решение здесь.Кажется, что эта проблема не решаема одним запросом, но это можно сделать с помощью 2, которые работают вместе друг с другом:

Шаг 1. Получите самую последнюю информацию о выпуске.Вы также можете изменить это для тегов.

{
  repository(owner: "CoolCompany", name: "awesome-ui") {
    releases(last: 1) {
      edges{
        node{
          tagName
          createdAt
        }
      }
    }
  }
}

Шаг 2: Использовать значение из createAt (связанного с выпуском или тегом) и сделать это:

{
  repository(owner: "CoolCompany", name: "awesome-ui") {
    nameWithOwner
    object(expression: "master") {
      ... on Commit {
        oid
        history(first: 100, since: "$createdAtDate") {
          nodes {
            oid
            messageHeadline
            author {
              user {
                login
              }
            }
            committedDate
          }
        }
      }
    }
  }
}
...