Pytanie Czy można uzyskać listę połączeń w oddziale ze strony internetowej OR API Github?


W naszym obiegu pracy żadne "bezpośrednie" zatwierdzenia nie są wprowadzane do gałęzi głównej. Oddział główny otrzymuje tylko scalenia z żądań Pull.

Możemy myśleć o każdym scaleniu, a następnie jako nowej funkcji dodanej do głównej gałęzi.

Chciałbym uzyskać listę scaleń w master, aby zobrazować bloki funkcji dodanych do produktu na przestrzeni czasu.

Czy git lub Gitub API ujawniają to zapytanie, czy też muszę analizować nieprzetworzone zatwierdzenia?


21
2018-02-07 09:18


pochodzenie




Odpowiedzi:


Git ujawnia taką funkcję poprzez dziennik git dowództwo. To polecenie akceptuje niektóre przełączniki filtrujące renderowane zatwierdzenia zgodnie z liczbą zatwierdzonych przez rodziców.

Jeden z nich pasowałby do Twojej prośby:

  • --merges Drukuj tylko scalaj zatwierdzenia. To jest dokładnie to samo co --min-parents=2.

Poniżej przedstawiono zatwierdzenia scalania (tj. Zatwierdzenia z więcej niż jednym rodzicem) dostępne z poziomu vNext gałąź LibGit2Sharp projekt

$ git log vNext --merges --oneline
090b2de Merge pull request #348 from jamill/credential_callback_fix
0332c35 Merge pull request #260 from ben/great-renaming
3191c1b Merge pull request #239 from ben/libgit2-upgrade-81eecc3
1d544e8 Merge branch 'vNext'
238d259 Merge remote-tracking branch 'origin/master'

Aktualizacja

Wykorzystanie tego samego wyjścia przez interfejs API GitHub jest możliwe, ale byłoby nieco bardziej skomplikowane.

To wymagałoby pobrać wszystkie zatwierdzenia z oddziału, paginowanie poprzez wszystkie wyniki (w celu pobrania wszystkich meta-danych commitów) podczas odfiltrowywania tych, które eksponują tylko jeden węzeł nadrzędny.

Jako punkt wyjścia, poniższy adres URL pokazuje ostatnie 30 zgłoszeń vNext gałąź.


14
2018-02-07 10:09





Używam następującego skryptu:

git log --merges --first-parent master \
        --pretty=format:"%h %<(10,trunc)%an %<(15)%ar %s"

Objaśnienie każdego argumentu:

  • --merges: zatwierdza się tylko "scalenie" (więcej niż 1 rodzic);
  • --first-parent master: stosowane są tylko scalenia master. Spowoduje to usunięcie wpisów, w których ktoś połączył się master w ich gałęzie;
  • --pretty-format: stosuje następujące formatowanie:
    • %h: commit short hasz;
    • %<(10,trunc)%an: nazwisko autora, obcięte na 10 znaków;
    • %<(15)%ar: względny czas zatwierdzenia, wyściełany do 15 znaków;
    • %s: pierwszy wiersz komunikatu zatwierdzenia.

Wynik jest całkiem satysfakcjonujący:

490bccdc Jozeanne.. 6 hours ago     Merged in CL-303-validacoes-upload-sped (pull request #216)
d2fe3f5e Fábio      2 days ago      Merged in CL-336-novas-adaptacoes-captcha (pull request #218)
6c617b51 Jozeanne.. 3 days ago      Merged in CL-333-campos-pedido (pull request #215)

14
2017-11-10 00:16