Differential D17271 Diff 41553 src/applications/audit/management/PhabricatorAuditSynchronizeManagementWorkflow.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/audit/management/PhabricatorAuditSynchronizeManagementWorkflow.php
- This file was added.
<?php | |||||
final class PhabricatorAuditSynchronizeManagementWorkflow | |||||
extends PhabricatorAuditManagementWorkflow { | |||||
protected function didConstruct() { | |||||
$this | |||||
->setName('synchronize') | |||||
->setExamples('**synchronize** ...') | |||||
->setSynopsis(pht('Update audit status for commits.')) | |||||
->setArguments( | |||||
array_merge( | |||||
$this->getCommitConstraintArguments(), | |||||
array())); | |||||
} | |||||
public function execute(PhutilArgumentParser $args) { | |||||
$viewer = $this->getViewer(); | |||||
$objects = $this->loadCommitsWithConstraints($args); | |||||
foreach ($objects as $object) { | |||||
$commits = $this->loadCommitsForConstraintObject($object); | |||||
foreach ($commits as $commit) { | |||||
$commit = id(new DiffusionCommitQuery()) | |||||
->setViewer($viewer) | |||||
->withPHIDs(array($commit->getPHID())) | |||||
->needAuditRequests(true) | |||||
->executeOne(); | |||||
if (!$commit) { | |||||
continue; | |||||
} | |||||
$old_status = $commit->getAuditStatus(); | |||||
$commit->updateAuditStatus($commit->getAudits()); | |||||
$new_status = $commit->getAuditStatus(); | |||||
if ($old_status == $new_status) { | |||||
echo tsprintf( | |||||
"%s\n", | |||||
pht( | |||||
'No changes for "%s".', | |||||
$commit->getDisplayName())); | |||||
} else { | |||||
echo tsprintf( | |||||
"%s\n", | |||||
pht( | |||||
'Updated "%s": "%s" -> "%s".', | |||||
$commit->getDisplayName(), | |||||
PhabricatorAuditCommitStatusConstants::getStatusName( | |||||
$old_status), | |||||
PhabricatorAuditCommitStatusConstants::getStatusName( | |||||
$new_status))); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} |