Вы, безусловно, можете достичь этого, используя API GitHub, но для этого вам потребуется немного поиграть.
Прежде всего, воспользуйтесь list pull requests API, чтобы получить список открытых запросов на растяжение. Каждый элемент в этом списке содержит запись ["head"]["ref"]
, которая будет именем ветки.
Теперь, используя get all references API, перечислите все ссылки в вашем репозитории. Обратите внимание, что синтаксис ветвей в API данных Git несколько отличается от того, который был возвращен из API запроса pull (например, refs/heads/topic
против topic
), поэтому вам придется компенсировать это. API ссылок также возвращает теги, если вы не ищете только подпространство refs/heads/
, как указано в документах, поэтому имейте это в виду.
После того, как у вас есть эти два списка ссылок refs, достаточно просто разработать, какие ветви не имеют открытых запросов на pull (не забудьте указать master
или любую другую ветку, которую вы хотите сохранить!).
На этом этапе вы можете использовать delete reference API, чтобы удалить эти референтные ссылки из репозитория.
Я хотел бы иметь эту функцию в Гитубе. Когда вы переделаете репо с более чем 100 ветвями, это просто беспорядок. – Kangur