@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
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

[herald] Add support for Arcanist Project as a field for Differential revisions

Summary: Useful in cases where there is an Arcanist Project but not a repository tracked by Phabricator for a particular revision.

Test Plan: Created a new rule to flag Differential revisions with a particular Arcanist project, verified that it applied as expected via the test console to revisions with the project specified and with a different project specified.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: aran, epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D8463

authored by

Neal Poole and committed by
epriestley
8818252f 8b6c86e2

+27 -16
+15 -15
resources/celerity/map.php
··· 380 380 'rsrc/js/application/files/behavior-icon-composer.js' => '8ef9ab58', 381 381 'rsrc/js/application/files/behavior-launch-icon-composer.js' => '48086888', 382 382 'rsrc/js/application/harbormaster/behavior-reorder-steps.js' => '957a7fde', 383 - 'rsrc/js/application/herald/HeraldRuleEditor.js' => '4f31d692', 383 + 'rsrc/js/application/herald/HeraldRuleEditor.js' => '4173dbd8', 384 384 'rsrc/js/application/herald/PathTypeahead.js' => 'f7fc67ec', 385 385 'rsrc/js/application/herald/herald-rule-editor.js' => '7ebaeed3', 386 386 'rsrc/js/application/maniphest/behavior-batch-editor.js' => '391457d7', ··· 523 523 'font-source-sans-pro' => '225851dd', 524 524 'global-drag-and-drop-css' => '697324ad', 525 525 'herald-css' => '59d48f01', 526 - 'herald-rule-editor' => '4f31d692', 526 + 'herald-rule-editor' => '4173dbd8', 527 527 'herald-test-css' => '2b7d0f54', 528 528 'inline-comment-summary-css' => '14a91639', 529 529 'javelin-aphlict' => '493665ee', ··· 1088 1088 0 => 'javelin-install', 1089 1089 1 => 'javelin-event', 1090 1090 ), 1091 + '4173dbd8' => 1092 + array( 1093 + 0 => 'multirow-row-manager', 1094 + 1 => 'javelin-install', 1095 + 2 => 'javelin-typeahead', 1096 + 3 => 'javelin-util', 1097 + 4 => 'javelin-dom', 1098 + 5 => 'javelin-tokenizer', 1099 + 6 => 'javelin-typeahead-preloaded-source', 1100 + 7 => 'javelin-stratcom', 1101 + 8 => 'javelin-json', 1102 + 9 => 'phabricator-prefab', 1103 + ), 1091 1104 '441f2137' => 1092 1105 array( 1093 1106 0 => 'javelin-behavior', ··· 1120 1133 0 => 'javelin-install', 1121 1134 1 => 'javelin-dom', 1122 1135 2 => 'javelin-reactor-dom', 1123 - ), 1124 - '4f31d692' => 1125 - array( 1126 - 0 => 'multirow-row-manager', 1127 - 1 => 'javelin-install', 1128 - 2 => 'javelin-typeahead', 1129 - 3 => 'javelin-util', 1130 - 4 => 'javelin-dom', 1131 - 5 => 'javelin-tokenizer', 1132 - 6 => 'javelin-typeahead-preloaded-source', 1133 - 7 => 'javelin-stratcom', 1134 - 8 => 'javelin-json', 1135 - 9 => 'phabricator-prefab', 1136 1136 ), 1137 1137 '4f344388' => 1138 1138 array(
+6
src/applications/herald/adapter/HeraldAdapter.php
··· 40 40 const FIELD_COMMITTER_RAW = 'committer-raw'; 41 41 const FIELD_IS_NEW_OBJECT = 'new-object'; 42 42 const FIELD_TASK_PRIORITY = 'taskpriority'; 43 + const FIELD_ARCANIST_PROJECT = 'arcanist-project'; 43 44 44 45 const CONDITION_CONTAINS = 'contains'; 45 46 const CONDITION_NOT_CONTAINS = '!contains'; ··· 91 92 const VALUE_USER_OR_PROJECT = 'userorproject'; 92 93 const VALUE_BUILD_PLAN = 'buildplan'; 93 94 const VALUE_TASK_PRIORITY = 'taskpriority'; 95 + const VALUE_ARCANIST_PROJECT = 'arcanistprojects'; 94 96 95 97 private $contentSource; 96 98 private $isNewObject; ··· 237 239 self::FIELD_COMMITTER_RAW => pht('Raw committer name'), 238 240 self::FIELD_IS_NEW_OBJECT => pht('Is newly created?'), 239 241 self::FIELD_TASK_PRIORITY => pht('Task priority'), 242 + self::FIELD_ARCANIST_PROJECT => pht('Arcanist Project'), 240 243 ); 241 244 } 242 245 ··· 289 292 case self::FIELD_REVIEWER: 290 293 case self::FIELD_PUSHER: 291 294 case self::FIELD_TASK_PRIORITY: 295 + case self::FIELD_ARCANIST_PROJECT: 292 296 return array( 293 297 self::CONDITION_IS_ANY, 294 298 self::CONDITION_IS_NOT_ANY, ··· 725 729 return self::VALUE_REPOSITORY; 726 730 case self::FIELD_TASK_PRIORITY: 727 731 return self::VALUE_TASK_PRIORITY; 732 + case self::FIELD_ARCANIST_PROJECT: 733 + return self::VALUE_ARCANIST_PROJECT; 728 734 default: 729 735 return self::VALUE_USER; 730 736 }
+3
src/applications/herald/adapter/HeraldDifferentialRevisionAdapter.php
··· 76 76 self::FIELD_AFFECTED_PACKAGE, 77 77 self::FIELD_AFFECTED_PACKAGE_OWNER, 78 78 self::FIELD_IS_NEW_OBJECT, 79 + self::FIELD_ARCANIST_PROJECT, 79 80 ), 80 81 parent::getFields()); 81 82 } ··· 373 374 $packages = $this->loadAffectedPackages(); 374 375 return PhabricatorOwnersOwner::loadAffiliatedUserPHIDs( 375 376 mpull($packages, 'getID')); 377 + case self::FIELD_ARCANIST_PROJECT: 378 + return $this->revision->getArcanistProjectPHID(); 376 379 } 377 380 378 381 return parent::getHeraldField($field);
+1
src/applications/herald/controller/HeraldRuleController.php
··· 593 593 'userorproject' => '/typeahead/common/accountsorprojects/', 594 594 'buildplan' => '/typeahead/common/buildplans/', 595 595 'taskpriority' => '/typeahead/common/taskpriority/', 596 + 'arcanistprojects' => '/typeahead/common/arcanistprojects/', 596 597 ), 597 598 'markup' => $template, 598 599 );
+1 -1
src/applications/herald/storage/HeraldRule.php
··· 17 17 protected $isDisabled = 0; 18 18 protected $triggerObjectPHID; 19 19 20 - protected $configVersion = 31; 20 + protected $configVersion = 32; 21 21 22 22 // phids for which this rule has been applied 23 23 private $ruleApplied = self::ATTACHABLE;
+1
webroot/rsrc/js/application/herald/HeraldRuleEditor.js
··· 223 223 case 'userorproject': 224 224 case 'buildplan': 225 225 case 'taskpriority': 226 + case 'arcanistprojects': 226 227 var tokenizer = this._newTokenizer(type); 227 228 input = tokenizer[0]; 228 229 get_fn = tokenizer[1];