Подтвердить что ты не робот

Фабрикатор ограничивает нажатие git

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

4b9b3361

Ответ 1

Вы можете ограничивать нажатие на репозитории, размещенные в Phabricator. Если ваш репозиторий размещен в другом месте (например, GitHub), Phabricator, очевидно, не может помешать пользователям нажимать на него.

Чтобы ограничить нажатие, создайте новое правило Herald (в приложении Herald), например:

  • Создайте новое правило "Commit Hook: Commit Content".
  • Выберите "Глобальный" в качестве типа правила.

Затем настройте правило следующим образом:

When [all of] these conditions are met:
  [Accepted Differential revision][does not exist]
Take these actions every time this rule matches:
  [Block change with message][Review is required for all changes.]

Вы можете использовать дополнительные условия, подобные этому, для запуска правила только в определенных репозиториях:

[Repository][is any of][ ... list of review-requied repositories ... ]

Или такое условие, чтобы позволить пользователям обходить правило, написав некоторую строку, такую ​​как "@bypass-review" в сообщении в экстренном случае:

[Body][does not contain][@bypass-review]

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

Ответ 2

Кажется, что вам нужен предварительный обзор кода. Мы установили это, выполнив следующее (мы используем репозитории Git. Если вы используете какой-то другой тип, эти шаги могут быть разными):

  • Установить правило Herald
    • Новое правило для: Commit Hook: Commit Content
    • Если вам требуется только одно репо, вы можете использовать Тип правила: Object, однако мы использовали Global
    • Для условий: мы выбрали Accepted Differential revision и does not exist
    • Действие: Block Change with message Для сообщения мы ссылаемся на статью, которая проходит через Arcanist
  • Для каждого проекта потребуется .arcconfig, по крайней мере, в этой строке: { "phabricator.uri": "http://your.phabricator.url" }
  • Разработчикам дневного дня придется использовать arcanist.
    • Разработчик создает локальную ветвь.
    • Изменяет и фиксирует код в локальной ветке.
    • По завершении выполните arc diff [base_branch_name]
    • Это создаст дифференциальную ревизию, которая позволит другому разработчику проверить код.
    • Если изменения необходимы, разработчик проверяет свою локальную ветку, вносит изменения, совершает коммиты и повторно запускает arc diff [base_branch_name] для обновления diff.
    • После завершения всех изменений запустите arc land [local_branch_name] --onto [base_branch_name]

Надеюсь, это поможет. Кроме того, разработчик Phabricator подключается к IRC-каналу freenode.net под названием #phabricator. Присоединяйтесь к сообществу; они всегда были очень полезны для меня.