There are two types of code reviews,
* [[#review|Review]] (pre-commit)
* [[#audit|Audit]] (post-commit)
## Review
* Create Diff from commits, merge them using [[projects/c4science/arcanist/ | Arcanist]]
IMPORTANT: There currently is an issue, Diff are created with "All user" view and edit policies, and this cannot be configured. We will address this issue and apply the repository policies.
A change is created and submitted
```
git clone ssh://git@c4science.ch:2222/diffusion/TEST/test.git
cd test
git checkout -b newfeature
echo TEST >> README.md
git commit -am "Add feature A"
arc diff
```
The reviewer tests the changes (patch), eventually accepts them (via webinterface)
```
git clone ssh://git@c4science.ch:2222/diffusion/TEST/test.git test2
cd test2
arc patch D#
```
When the changes are accepted in the Diff, you can push the changes.
You can either "land" the changes or push them:
* `arc land`: It squashes all commits into one and pushes it to the main branch
* `git push`: Standard git behaviour, merge/push all commits into the main branch
* Only the reviewer of a Diff can land or update a Diff, if you want to take over, you'll have to add a comment on the web UI and add the Commandeer action.
{F16219, size=full}
## Audit
* Everything is done in Phabricator web interface on a specific commit, after changes have been pushed
* You can comment on a commit, "accept it" or "raise a concern"
{F285, size=full}
* You can automatically create Audits when a commit is pushed and assign it to a team or a user using Herald rules