Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/audit/management/PhabricatorAuditUpdateOwnersManagementWorkflow.php
12256 views
1
<?php
2
3
final class PhabricatorAuditUpdateOwnersManagementWorkflow
4
extends PhabricatorAuditManagementWorkflow {
5
6
protected function didConstruct() {
7
$this
8
->setName('update-owners')
9
->setExamples('**update-owners** ...')
10
->setSynopsis(pht('Update package relationships for commits.'))
11
->setArguments(
12
array_merge(
13
$this->getCommitConstraintArguments(),
14
array()));
15
}
16
17
public function execute(PhutilArgumentParser $args) {
18
$viewer = $this->getViewer();
19
$objects = $this->loadCommitsWithConstraints($args);
20
21
foreach ($objects as $object) {
22
$commits = $this->loadCommitsForConstraintObject($object);
23
24
foreach ($commits as $commit) {
25
$repository = $commit->getRepository();
26
27
$affected_paths = PhabricatorOwnerPathQuery::loadAffectedPaths(
28
$repository,
29
$commit,
30
$viewer);
31
32
$affected_packages = PhabricatorOwnersPackage::loadAffectedPackages(
33
$repository,
34
$affected_paths);
35
36
$monograms = mpull($affected_packages, 'getMonogram');
37
if ($monograms) {
38
$monograms = implode(', ', $monograms);
39
} else {
40
$monograms = pht('none');
41
}
42
43
echo tsprintf(
44
"%s\n",
45
pht(
46
'Updating "%s" (%s)...',
47
$commit->getDisplayName(),
48
$monograms));
49
50
$commit->writeOwnersEdges(mpull($affected_packages, 'getPHID'));
51
}
52
}
53
}
54
55
}
56
57