AWS CodeCommit предотвращает слияние до успешной сборки

#amazon-web-services #aws-lambda #aws-codebuild #aws-codecommit

#amazon-web-services #aws-lambda #aws-codebuild #aws-codecommit

Вопрос:

Я использую функцию AWS Lambda для запуска сборки в AWS CodeBuild при создании или обновлении запроса на извлечение в AWS CodeComimit, который работает хорошо.

Тем не менее, я хотел бы иметь возможность предотвращать объединение этого запроса на извлечение в главную ветку репозитория, пока последняя сборка для этого PR не будет успешно завершена.

Кто-нибудь знает, есть ли способ, который можно сделать в AWS? Например, чтобы кнопка слияния была отключена или недоступна, например, когда получено недостаточно утверждающих?

Ответ №1:

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

Вместо того, чтобы требовать специального правила, запрещающего слияние (которого сегодня не существует), вы могли бы сделать так, чтобы PR требовал проверки от конкретного пользователя IAM. При этом вы, вероятно, могли бы использовать фиксированного пользователя «сборки» и автоматически отправлять запрос на утверждение для PR после успешного завершения сборки. Это, в свою очередь, «одобрит» это правило в PR и позволит объединить его после успешного завершения сборки.

Поскольку утверждение может быть выполнено через интерфейс CLI, я уверен, что это также должно быть возможно через API. Например, вы можете использовать этот API для автоматической пометки любого заданного PR как одобренного вызывающим пользователем, а затем убедиться, что вызывающая его служба является тем же пользователем, который зарегистрирован в шаблоне утверждения «сборки».

Помимо HTTP WebAPI, существуют и другие способы вызова этих действий CodeCommit, например, библиотека AWS SDK (пример C #: https://www.nuget.org/packages/AWSSDK .CodeCommit/).