2710a88863
Add a reviewer-deleted event to notify users that a reviewer and possibly her review(s) has been removed from a change. This event will fire a Gerrit hook, email and stream event notifications. We only send one event for a reviewer removal (a reviewer-deleted event), this event will contain all the info required from the update. The vote removal information (if it exists) will get appended to this event. The event will only fire if there is an associated vote that is being removed otherwise no notifications will be sent. preview of the notifications: http://paste.openstack.org/show/491451/ Feature: issue 2649 Change-Id: I8aa4a7b60144707d0d29da5218ab6b88b0685488
203 lines
7.1 KiB
Plaintext
203 lines
7.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.
|
|
|
|
With the exception of the ref-update hook, hooks are run in the background
|
|
after the relevant 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
|
|
|
|
=== ref-update
|
|
|
|
This is called when a push request is received by Gerrit. It allows
|
|
a push to be rejected before it is committed to the Gerrit repository.
|
|
If the script exits with non-zero return code the push will be rejected.
|
|
Any output from the script will be returned to the user, regardless of the
|
|
return code.
|
|
|
|
This hook is called synchronously so it is recommended that
|
|
it not block. A default timeout on the hook is set to 30 seconds to avoid
|
|
"runaway" hooks using up server threads. See link:config-gerrit.html#hooks.syncHookTimeout[hooks.syncHookTimeout]
|
|
for configuration details.
|
|
|
|
====
|
|
ref-update --project <project name> --refname <refname> --uploader <uploader> --oldrev <sha1> --newrev <sha1>
|
|
====
|
|
|
|
=== patchset-created
|
|
|
|
This is called whenever a patchset is created (this includes new
|
|
changes and drafts).
|
|
|
|
====
|
|
patchset-created --change <change id> --is-draft <boolean> --kind <change kind> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --topic <topic> --uploader <uploader> --commit <sha1> --patchset <patchset id>
|
|
====
|
|
|
|
kind:: change kind represents the kind of change uploaded, also represented in link:json.html#patchSet[patchSet]
|
|
|
|
REWORK;; Nontrivial content changes.
|
|
|
|
TRIVIAL_REBASE;; Conflict-free merge between the new parent and the prior patch set.
|
|
|
|
NO_CODE_CHANGE;; No code changed; same tree and same parent tree.
|
|
|
|
NO_CHANGE;; No changes; same commit message, same tree and same parent tree.
|
|
|
|
=== draft-published
|
|
|
|
This is called whenever a draft change is published.
|
|
|
|
====
|
|
draft-published --change <change id> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --topic <topic> --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> --is-draft <boolean> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --topic <topic> --author <comment author> --commit <commit> --comment <comment> [--<approval category id> <score> --<approval category id> <score> --<approval category id>-oldValue <score> ...]
|
|
====
|
|
|
|
=== change-merged
|
|
|
|
Called whenever a change has been merged.
|
|
|
|
====
|
|
change-merged --change <change id> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --topic <topic> --submitter <submitter> --commit <sha1> --newrev <sha1>
|
|
====
|
|
|
|
=== merge-failed
|
|
|
|
Called whenever a change has failed to merge.
|
|
|
|
====
|
|
merge-failed --change <change id> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --topic <topic> --submitter <submitter> --commit <sha1> --reason <reason>
|
|
====
|
|
|
|
=== change-abandoned
|
|
|
|
Called whenever a change has been abandoned.
|
|
|
|
====
|
|
change-abandoned --change <change id> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --topic <topic> --abandoner <abandoner> --commit <sha1> --reason <reason>
|
|
====
|
|
|
|
=== change-restored
|
|
|
|
Called whenever a change has been restored.
|
|
|
|
====
|
|
change-restored --change <change id> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --topic <topic> --restorer <restorer> --commit <sha1> --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>
|
|
====
|
|
|
|
=== project-created
|
|
|
|
Called whenever a project has been created.
|
|
|
|
====
|
|
project-created --project <project name> --head <head name>
|
|
====
|
|
|
|
=== reviewer-added
|
|
|
|
Called whenever a reviewer is added to a change.
|
|
|
|
====
|
|
reviewer-added --change <change id> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --reviewer <reviewer>
|
|
====
|
|
|
|
=== reviewer-deleted
|
|
|
|
Called whenever a reviewer (with a vote) is removed from a change.
|
|
|
|
====
|
|
reviewer-deleted --change <change id> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --reviewer <reviewer> [--<approval category id> <score> --<approval category id> <score> ...]
|
|
====
|
|
|
|
=== topic-changed
|
|
|
|
Called whenever a change's topic is changed from the Web UI or via the REST API.
|
|
|
|
====
|
|
topic-changed --change <change id> --change-owner <change owner> --project <project name> --branch <branch> --changer <changer> --old-topic <old topic> --new-topic <new topic>
|
|
====
|
|
|
|
=== hashtags-changed
|
|
|
|
Called whenever hashtags are added to or removed from a change from the Web UI
|
|
or via the REST API.
|
|
|
|
====
|
|
hashtags-changed --change <change id> --change-owner <change owner> --project <project name> --branch <branch> --editor <editor> --added <hashtag> --removed <hashtag> --hashtag <hashtag>
|
|
====
|
|
|
|
The `--added` parameter may be passed multiple times, once for each
|
|
hashtag that was added to the change.
|
|
|
|
The `--removed` parameter may be passed multiple times, once for each
|
|
hashtag that was removed from the change.
|
|
|
|
The `--hashtag` parameter may be passed multiple times, once for each
|
|
hashtag remaining on the change after the add or remove operation has
|
|
been performed.
|
|
|
|
=== cla-signed
|
|
|
|
Called whenever a user signs a contributor license agreement.
|
|
|
|
====
|
|
cla-signed --submitter <submitter> --user-id <user_id> --cla-id <cla_id>
|
|
====
|
|
|
|
|
|
== Configuration Settings
|
|
|
|
It is possible to change where Gerrit looks for hooks, and what
|
|
filenames it looks for, by adding a [hooks] section in gerrit.config.
|
|
|
|
Gerrit will use the value of hooks.path for the hooks directory.
|
|
|
|
For the hook filenames, Gerrit will use the values of hooks.patchsetCreatedHook,
|
|
hooks.draftPublishedHook, hooks.commentAddedHook, hooks.changeMergedHook,
|
|
hooks.changeAbandonedHook, hooks.changeRestoredHook, hooks.refUpdatedHook,
|
|
hooks.refUpdateHook, hooks.reviewerAddedHook and hooks.claSignedHook.
|
|
|
|
== 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]
|
|
|
|
SEARCHBOX
|
|
---------
|