| Gerrit Code Review - Mail Templates |
| =================================== |
| |
| Gerrit uses velocity templates for the bulk of the standard mails it sends out. |
| There are builtin default templates which are used if they are not overridden. |
| These defaults are also provided as examples so that administrators may copy |
| them and easily modify them to tweak their contents. |
| |
| |
| Template Locations and Extensions: |
| ---------------------------------- |
| |
| The default example templates reside under: `'$site_path'/etc/mail` and are |
| terminated with the double extension `.vm.example`. Modifying these example |
| files will have no effect on the behavior of Gerrit. However, copying an |
| example template to an equivalently named file without the `.example` extension |
| and modifying it will allow an administrator to customize the template. |
| |
| |
| Supported Mail Templates: |
| ------------------------- |
| |
| Each mail that Gerrit sends out is controlled by at least one template. These |
| are listed below. Change emails are influenced by two additional templates, |
| one to set the subject line, and one to set the footer which gets appended to |
| all the change emails (see `ChangeSubject.vm` and `ChangeFooter.vm` below.) |
| |
| Abandoned.vm |
| ~~~~~~~~~~~~ |
| |
| The `Abandoned.vm` template will determine the contents of the email related |
| to a change being abandoned. It is a `ChangeEmail`: see `ChangeSubject.vm` and |
| `ChangeFooter.vm`. |
| |
| ChangeFooter.vm |
| ~~~~~~~~~~~~~~~ |
| |
| The `ChangeFooter.vm` template will determine the contents of the footer |
| text that will be appended to emails related to changes (all `ChangeEmail`s). |
| |
| ChangeSubject.vm |
| ~~~~~~~~~~~~~~~~ |
| |
| The `ChangeSubject.vm` template will determine the contents of the email |
| subject line for ALL emails related to changes. |
| |
| Comment.vm |
| ~~~~~~~~~~ |
| |
| The `Comment.vm` template will determine the contents of the email related to |
| a user submitting comments on changes. It is a `ChangeEmail`: see |
| `ChangeSubject.vm` and `ChangeFooter.vm`. |
| |
| Merged.vm |
| ~~~~~~~~~ |
| |
| The `Merged.vm` template will determine the contents of the email related to |
| a change successfully merged to the head. It is a `ChangeEmail`: see |
| `ChangeSubject.vm` and `ChangeFooter.vm`. |
| |
| MergeFail.vm |
| ~~~~~~~~~~~~ |
| |
| The `MergeFail.vm` template will determine the contents of the email related |
| to a failure upon attempting to merge a change to the head. It is a |
| `ChangeEmail`: see `ChangeSubject.vm` and `ChangeFooter.vm`. |
| |
| NewChange.vm |
| ~~~~~~~~~~~~ |
| |
| The `NewChange.vm` template will determine the contents of the email related |
| to a user submitting a new change for review. It is a `ChangeEmail`: see |
| `ChangeSubject.vm` and `ChangeFooter.vm`. |
| |
| RebasedPatchSet.vm |
| ~~~~~~~~~~~~~~~~~~ |
| |
| The `RebasedPatchSet.vm` template will determine the contents of the email |
| related to a user rebasing a patchset for a change through the Gerrit UI. |
| It is a `ChangeEmail`: see `ChangeSubject.vm` and `ChangeFooter.vm`. |
| |
| RegisterNewEmail.vm |
| ~~~~~~~~~~~~~~~~~~~ |
| |
| The `RegisterNewEmail.vm` template will determine the contents of the email |
| related to registering new email accounts. |
| |
| ReplacePatchSet.vm |
| ~~~~~~~~~~~~~~~~~~ |
| |
| The `ReplacePatchSet.vm` template will determine the contents of the email |
| related to a user submitting a new patchset for a change. It is a |
| `ChangeEmail`: see `ChangeSubject.vm` and `ChangeFooter.vm`. |
| |
| Restored.vm |
| ~~~~~~~~~~~ |
| |
| The `Restored.vm` template will determine the contents of the email related |
| to a change being restored. It is a `ChangeEmail`: see `ChangeSubject.vm` and |
| `ChangeFooter.vm`. |
| |
| Reverted.vm |
| ~~~~~~~~~~~ |
| |
| The `Reverted.vm` template will determine the contents of the email related |
| to a change being reverted. It is a `ChangeEmail`: see `ChangeSubject.vm` and |
| `ChangeFooter.vm`. |
| |
| |
| Mail Variables and Methods |
| -------------------------- |
| |
| Mail templates can access and display objects currently made available to them |
| via the velocity context. While the base objects are documented here, it is |
| possible to call public methods on these objects from templates. Those methods |
| are not documented here since they could change with every release. As these |
| templates are meant to be modified only by a qualified sysadmin, it is accepted |
| that writing templates for Gerrit emails is likely to require some basic |
| knowledge of the class structure to be useful. Browsing the source code might |
| be necessary for anything more than a minor formatting change. |
| |
| Warning |
| ~~~~~~~ |
| |
| Be aware that modifying templates can cause them to fail to parse and therefore |
| not send out the actual email, or worse, calling methods on the available |
| objects could have internal side effects which would adversely affect the |
| health of your Gerrit server and/or data. |
| |
| All OutgoingEmails |
| ~~~~~~~~~~~~~~~~~~ |
| |
| All outgoing emails have the following variables available to them: |
| |
| $email:: |
| + |
| A reference to the class constructing the current `OutgoingEmail`. With this |
| reference it is possible to call any public method on the OutgoingEmail class |
| or the current child class inherited from it. |
| |
| $messageClass:: |
| + |
| A String containing the messageClass. |
| |
| $StringUtils:: |
| + |
| A reference to the Apache `StringUtils` class. This can be very useful for |
| formatting strings. |
| |
| Change Emails |
| ~~~~~~~~~~~~~ |
| |
| All change related emails have the following additional variables available to them: |
| |
| $change:: |
| + |
| A reference to the current `Change` object. |
| |
| $changeId:: |
| + |
| Id of the current change (a `Change.Key`). |
| |
| $coverLetter:: |
| + |
| The text of the `ChangeMessage`. |
| |
| $branch:: |
| + |
| A reference to the branch of this change (a `Branch.NameKey`). |
| |
| $fromName:: |
| + |
| The name of the from user. |
| |
| $projectName:: |
| + |
| The name of this change's project. |
| |
| $patchSet:: |
| + |
| A reference to the current `PatchSet`. |
| |
| $patchSetInfo:: |
| + |
| A reference to the current `PatchSetInfo`. |
| |
| |
| See Also |
| -------- |
| |
| * link:http://velocity.apache.org/[velocity] |
| |
| GERRIT |
| ------ |
| Part of link:index.html[Gerrit Code Review] |