mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-19 21:32:43 +01:00
Update Herald documentation.
This commit is contained in:
parent
7bdb135ff7
commit
d33670c416
4 changed files with 72 additions and 3 deletions
|
@ -11,10 +11,13 @@
|
|||
"differential" : "Differential (Code Review)",
|
||||
"diffusion" : "Diffusion (Repository Browser)",
|
||||
"maniphest" : "Maniphest (Task Tracking)",
|
||||
"herald" : "Herald (Notifications)",
|
||||
"celerity" : "Celerity (CSS/JS Management)",
|
||||
"aphront" : "Aphront (Web Stack)",
|
||||
"console" : "DarkConsole (Debugging Console)",
|
||||
"storage" : "Storage"
|
||||
"storage" : "Storage",
|
||||
"irc" : "IRC",
|
||||
"markup" : "Remarkup Extensions"
|
||||
},
|
||||
"engines" : [
|
||||
["DivinerArticleEngine", {}],
|
||||
|
|
|
@ -27,6 +27,8 @@ abstract class HeraldController extends PhabricatorController {
|
|||
$page->setGlyph("\xE2\x98\xBF");
|
||||
$page->appendChild($view);
|
||||
|
||||
$doclink = PhabricatorEnv::getDoclink('article/Herald_User_Guide.html');
|
||||
|
||||
$page->setTabs(
|
||||
array(
|
||||
'rules' => array(
|
||||
|
@ -41,6 +43,10 @@ abstract class HeraldController extends PhabricatorController {
|
|||
'href' => '/herald/transcript/',
|
||||
'name' => 'Transcripts',
|
||||
),
|
||||
'help' => array(
|
||||
'href' => $doclink,
|
||||
'name' => 'Help',
|
||||
),
|
||||
),
|
||||
idx($data, 'tab'));
|
||||
|
||||
|
|
62
src/docs/userguide/herald.diviner
Normal file
62
src/docs/userguide/herald.diviner
Normal file
|
@ -0,0 +1,62 @@
|
|||
@title Herald User Guide
|
||||
@group userguide
|
||||
|
||||
Use Herald to get notified of changes you care about.
|
||||
|
||||
= Overview =
|
||||
|
||||
Herald allows you to write processing rules that take effect when objects are
|
||||
created or updated. For instance, you might want to get notified every time
|
||||
someone sends out a revision that affects some file you're interested in, even
|
||||
if they didn't add you as a reviewer.
|
||||
|
||||
Herald is less useful for small organizations (where everyone will generally
|
||||
know most of what's going on) but the usefulness of the application increases
|
||||
as an organization scales. Once there is too much activity to keep track of it
|
||||
all, Herald allows you to filter it down so you're only notified of things you
|
||||
are interested in.
|
||||
|
||||
= Rules, Conditions and Actions =
|
||||
|
||||
The best way to think of Herald is as a system similar to the mail rules you can
|
||||
set up in most email clients, to organize mail based on "To", "Subject", etc.
|
||||
Herald works very similarly, but operates on Phabricator objects (like revisions
|
||||
and commits) instead of emails.
|
||||
|
||||
Every time an object is created or updated, Herald rules are run on it and
|
||||
the actions for any matching rules are taken.
|
||||
|
||||
To create a new Herald rule, choose which type of event you want to act on
|
||||
(e.g., changes to Differential Revisions, or Commits), and then set a list of
|
||||
conditions. For example, you might add the condition ##Author is alincoln
|
||||
(Abraham Lincoln)## to keep track of everything alincoln does. Finally, set
|
||||
a list of actions to take when the conditions match, like adding yourself to the
|
||||
CC list.
|
||||
|
||||
Now you'll automatically be added to CC any time alincoln creates a revision,
|
||||
and can keep an eye on what he's up to.
|
||||
|
||||
= Testing Rules =
|
||||
|
||||
When you've created a rule, use the "Test Console" to test it out. Enter a
|
||||
revision or commit and Herald will do a dry run against that object, showing
|
||||
you which rules //would// match had it actually been updated. Dry runs executed
|
||||
via the test console don't take any actions.
|
||||
|
||||
= Advanced Herald =
|
||||
|
||||
A few features in Herald are particularly complicated:
|
||||
|
||||
- **matches regexp pair**: for Differential revisions, you can set a condition
|
||||
like "Any changed file content matches regexp pair...". This allows you to
|
||||
specify two regexes in JSON format. The first will be used to match the
|
||||
filename of the changed file; the second will be used to match the content.
|
||||
For example, if you want to match revisions which add or remove calls to
|
||||
a "muffinize" function, //but only in JS files//, you can set the value
|
||||
to ##["/\.js$/", "/muffinize/"]## or similar.
|
||||
- **Another Herald rule**: you can create Herald rules which depend on other
|
||||
rules. This can be useful if you need to express a more complicated predicate
|
||||
than "all" vs "any" allows, or have a common set of conditions which you want
|
||||
to share between several rules. If a rule is only being used as a group of
|
||||
conditions, you can set the action to "Do Nothing".
|
||||
|
|
@ -18,8 +18,6 @@
|
|||
|
||||
/**
|
||||
* Trivial example worker; processes tasks which require no work very slowly.
|
||||
*
|
||||
* @group worker
|
||||
*/
|
||||
class PhabricatorGoodForNothingWorker extends PhabricatorWorker {
|
||||
protected function doWork() {
|
||||
|
|
Loading…
Reference in a new issue