Я хочу, чтобы моя команда, включая меня, пересматривала друг друга. Ни один из коммитов не должен быть нажат, включая мой, в репо, пока он не будет проверен другим членом команды. Я как бы потерял в документации фабрикатора, поэтому я спрашиваю здесь, есть ли способ настроить такой рабочий процесс?
Фабрикатор ограничивает нажатие git
Ответ 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
. Присоединяйтесь к сообществу; они всегда были очень полезны для меня.