@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
···11+UPDATE {$NAMESPACE}_herald.herald_action a
22+ JOIN {$NAMESPACE}_herald.herald_rule r
33+ ON a.ruleID = r.id
44+ SET a.action = 'harbormaster.build'
55+ WHERE r.ruleType != 'personal'
66+ AND a.action = 'applybuildplans';
···11+<?php
22+33+interface HarbormasterBuildableAdapterInterface {
44+55+ public function getHarbormasterBuildablePHID();
66+ public function getHarbormasterContainerPHID();
77+ public function getQueuedHarbormasterBuildPlanPHIDs();
88+ public function queueHarbormasterBuildPlanPHID($phid);
99+1010+}
1111+1212+// TEMPLATE IMPLEMENTATION /////////////////////////////////////////////////////
1313+1414+1515+/* -( HarbormasterBuildableAdapterInterface )------------------------------ */
1616+/*
1717+1818+ public function getHarbormasterBuildablePHID() {
1919+ return $this->getObject()->getPHID();
2020+ }
2121+2222+ public function getHarbormasterContainerPHID() {
2323+ return null;
2424+ }
2525+2626+ public function getQueuedHarbormasterBuildPlanPHIDs() {
2727+ return $this->buildPlanPHIDs;
2828+ }
2929+3030+ public function queueHarbormasterBuildPlanPHID($phid) {
3131+ $this->buildPlanPHIDs[] = $phid;
3232+ }
3333+3434+*/