Path: blob/master/src/applications/drydock/operation/DrydockTestRepositoryOperation.php
12256 views
<?php12final class DrydockTestRepositoryOperation3extends DrydockRepositoryOperationType {45const OPCONST = 'test';67public function getOperationDescription(8DrydockRepositoryOperation $operation,9PhabricatorUser $viewer) {10return pht('Test Configuration');11}1213public function getOperationCurrentStatus(14DrydockRepositoryOperation $operation,15PhabricatorUser $viewer) {1617$repository = $operation->getRepository();18switch ($operation->getOperationState()) {19case DrydockRepositoryOperation::STATE_WAIT:20return pht(21'Waiting to test configuration for %s...',22$repository->getMonogram());23case DrydockRepositoryOperation::STATE_WORK:24return pht(25'Testing configuration for %s. This may take a moment if Drydock '.26'has to clone the repository for the first time.',27$repository->getMonogram());28case DrydockRepositoryOperation::STATE_DONE:29return pht(30'Success! Automation is configured properly and Drydock can '.31'operate on %s.',32$repository->getMonogram());33}34}3536public function applyOperation(37DrydockRepositoryOperation $operation,38DrydockInterface $interface) {39$repository = $operation->getRepository();4041if ($repository->isGit()) {42$interface->execx('git status');43} else if ($repository->isHg()) {44$interface->execx('hg status');45} else if ($repository->isSVN()) {46$interface->execx('svn status');47} else {48throw new PhutilMethodNotImplementedException();49}50}5152}535455