6cc1190d8f
Whenever a ref is updated via either a direct push to a branch or a Gerrit change submission, Gerrit will now send a new "ref-updated" event to the event stream. This can be used by external agents for things like automatic submodule ref updating, replication, build bot hooks, etc. Change-Id: Ice9d65db8fd662d53df53ff6b61d811815c9f2f6
107 lines
3.1 KiB
Plaintext
107 lines
3.1 KiB
Plaintext
Gerrit Code Review - Hooks
|
|
==========================
|
|
|
|
Gerrit does not run any of the standard git hooks in the
|
|
repositories it works with, but it does have its own hook mechanism
|
|
included. Gerrit looks in `'$site_path'/hooks` for executables with
|
|
names listed below.
|
|
|
|
The environment will have GIT_DIR set to the full path of the
|
|
affected git repository so that git commands can be easily run.
|
|
|
|
Make sure your hook scripts are executable if running on *nix.
|
|
|
|
Hooks are run in the background after the relevent change has
|
|
taken place so are unable to affect the outcome of any given
|
|
change. Because of the fact the hooks are run in the background
|
|
after the activity, a hook might not be notified about an event if
|
|
the server is shutdown before the hook can be invoked.
|
|
|
|
Supported Hooks
|
|
---------------
|
|
|
|
patchset-created
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
This is called whenever a patchset is created (this includes new
|
|
changes)
|
|
|
|
====
|
|
patchset-created --change <change id> --change-url <change url> --project <project name> --branch <branch> --uploader <uploader> --commit <sha1> --patchset <patchset id>
|
|
====
|
|
|
|
comment-added
|
|
~~~~~~~~~~~~~
|
|
|
|
This is called whenever a comment is added to a change.
|
|
|
|
====
|
|
comment-added --change <change id> --change-url <change url> --project <project name> --branch <branch> --author <comment author> --commit <commit> --comment <comment> [--<approval category id> <score> --<approval category id> <score> ...]
|
|
====
|
|
|
|
change-merged
|
|
~~~~~~~~~~~~~
|
|
|
|
Called whenever a change has been merged.
|
|
|
|
====
|
|
change-merged --change <change id> --change-url <change url> --project <project name> --branch <branch> --submitter <submitter> --commit <sha1>
|
|
====
|
|
|
|
change-abandoned
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
Called whenever a change has been abandoned.
|
|
|
|
====
|
|
change-abandoned --change <change id> --change-url <change url> --project <project name> --branch <branch> --abandoner <abandoner> --reason <reason>
|
|
====
|
|
|
|
change-restored
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
Called whenever a change has been restored.
|
|
|
|
====
|
|
change-restored --change <change id> --change-url <change url> --project <project name> --branch <branch> --restorer <restorer> --reason <reason>
|
|
====
|
|
|
|
ref-updated
|
|
~~~~~~~~~~~
|
|
|
|
Called whenever a ref has been updated.
|
|
|
|
====
|
|
ref-updated --oldrev <old rev> --newrev <new rev> --refname <ref name> --project <project name> --submitter <submitter>
|
|
====
|
|
|
|
|
|
Configuration Settings
|
|
----------------------
|
|
|
|
It is possible to change where gerrit looks for hooks, and what
|
|
filenames it looks for by adding a [hooks] section to gerrit.config.
|
|
|
|
Gerrit will use the value of hooks.path for the hooks directory, and
|
|
the values of hooks.patchsetCreatedHook, hooks.commentAddedHook,
|
|
hooks.changeMergedHook and hooks.changeAbandonedHook for the
|
|
filenames for the hooks.
|
|
|
|
Missing Change URLs
|
|
-------------------
|
|
|
|
If link:config-gerrit.html#gerrit.canonicalWebUrl[gerrit.canonicalWebUrl]
|
|
is not set in `gerrit.config` the `\--change-url` flag may not be
|
|
passed to all hooks. Hooks started out of an SSH context (for example
|
|
the patchset-created hook) don't know the server's web URL, unless
|
|
this variable is configured.
|
|
|
|
See Also
|
|
--------
|
|
|
|
* link:config-gerrit.html#hooks[Section hooks]
|
|
|
|
GERRIT
|
|
------
|
|
Part of link:index.html[Gerrit Code Review]
|