как идентифицировать устаревшие git-ветки с помощью скрипта - PullRequest
0 голосов
/ 24 января 2019

Мне нужно найти и перечислить ветви, которые

  • объединены
  • не объединены
  • объединены, но не удалены

из нескольких проектов и нескольких репозиториев с одним сценарием из набора битов, а также отчет должен быть напечатан в этом формате

project name: repo name: branch name: last commit date: author name:

Я пробовал это в сценарии оболочки

#!/bin/sh


  echo "Merged branches"
  for branch in `git branch -r --merged | grep -v HEAD`;
  do echo -e `git log --no-merges -n 1 --format="%ci, %cr, %an, %ae, "  $branch 
  | head -n 1` \\t$branch; done | sort -r

  echo ""
  echo "Not merged branches"
  for branch in `git branch -r --no-merged | grep -v HEAD`;
  do echo -e `git log --no-merges -n 1 --format="%ci, %cr, %an, %ae, " $branch | 
  head -n 1` \\t$branch; done | sort -r

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

1 Ответ

0 голосов
/ 24 января 2019

Bitbucket имеет хорошо написанную документацию API . В этой документации можно найти ресурс: /repositories

Как указано в их документации, эта конечная точка:

Возвращает нумерованный список всех общедоступных репозиториев. Эта конечная точка также поддерживает фильтрацию и сортировку результатов. Подробнее см. Фильтрация и сортировка .

Это все публичные репозитории вы владеете. В этом ответе должен быть URL-адрес git.

Вы можете проанализировать json и получить все git-URL-адреса каждого репозитория и сохранить их в переменной. Затем просмотрите URL-адреса репозиториев git и клонируйте каждый из них командой: git clone --recurse-submodules GIT_URL_HERE Опция --recurse-submodules используется здесь, так как, если есть какие-либо подмодули, мы хотим получить их также!

После успешного клонирования всех репозиториев перейдите в каждый каталог с помощью команды cd DIRECTORY.

В этих каталогах можно перечислить ветви.

  1. Список всех объединенных ветвей:
    1. git branch --merged
    2. перечисляет ветви, объединенные в HEAD (т. Е. Конец текущей ветви)

  2. Список всех не объединенных ветвей:
    1. git branch --no-merged
    2. список ветвей, которые не были объединены

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...