@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<?php
2
3final class DiffusionCommitPackageAuditHeraldField
4 extends DiffusionCommitHeraldField {
5
6 const FIELDCONST = 'diffusion.commit.package.audit';
7
8 // hide "Affected packages that need audit" Herald condition
9 // if Audit is disabled
10 public function supportsObject($object) {
11 if (id(new PhabricatorAuditApplication())->isInstalled()) {
12 return ($object instanceof PhabricatorRepositoryCommit);
13 } else {
14 return false;
15 }
16 }
17
18 public function getHeraldFieldName() {
19 return pht('Affected packages that need audit');
20 }
21
22 public function getFieldGroupKey() {
23 return HeraldRelatedFieldGroup::FIELDGROUPKEY;
24 }
25
26 public function getHeraldFieldValue($object) {
27 $packages = $this->getAdapter()->loadAuditNeededPackages();
28 if (!$packages) {
29 return array();
30 }
31
32 return mpull($packages, 'getPHID');
33 }
34
35 protected function getHeraldFieldStandardType() {
36 return self::STANDARD_PHID_LIST;
37 }
38
39 protected function getDatasource() {
40 return new PhabricatorOwnersPackageDatasource();
41 }
42
43}