Как создать организацию Github и политику репозитория как код/инфраструктуру как код?

#github #github-api #infrastructure

Вопрос:

Мотивация заключается в том, что мы начинаем чувствовать дрейф политики и головные боли при обслуживании из-за непрограммируемых (или некодифицированных) настроек репозитория и или организации. Например, нам может потребоваться удалить определенную команду из доступа к репозиториям 50/100. Или нам может потребоваться включить новую функцию github (например, автоматическое слияние) для всех этих репозиториев. Иногда владелец кода забывает включить линейную историю и коммиты слияния участников.

При масштабировании нажатие кнопок не работает.

Лучшее решение, которое я могу придумать, — это скрипт, который выполняет идемпотентные вызовы API Github. Другим частичным решением может быть начало использования монорецепторов. Есть ли лучший способ решить проблему, с которой я сталкиваюсь?

Комментарии:

1. Интересный вопрос, потому что API github, похоже, имеет другие функции, чем веб-интерфейс (хочется сказать «подмножество», но не уверен на 100%). Например, я пытался установить правила ветвей для набора репозиториев в организации, где мы используем ветви стиля выпуска-01, выпуска-02 и т. Д. — веб-интерфейс поддерживает подстановочные знаки, но API не поддерживает, поэтому любые новые версии — * ветви должны быть дополнительно настроены или, по крайней мере, это мой опыт. Частая практика, согласно которой пользовательский интерфейс сам использует restful api, похоже, неприменима.

2. Это означает, что в принципе нет решения, и Github (который должен быть предназначен для разработчиков и опытных пользователей ) имеет такую же плохую блокировку поставщиков, как и ваше обычное мобильное приложение. Я надеюсь, что скоро появится решение, которое, возможно, будет более общим, например apify.com или wrapapi.com или куча альтернатив.

3. Если у вас есть выбор, вы можете обратиться к gitlab, а не к github. Я не пытался зайти так далеко, как, как я подозреваю, вы хотите, но определенно я могу делать в API gitlab то, что, по-видимому, не могу в github. Учитывая ваш отчет, я подозреваю, что это не вариант, но это может быть для некоторых других, читающих это.