Swap Repository Edit UI to new code
Summary: Ref T10748. This needs more extensive testing and is sure to have some rough edges, but seems to basically work so far. Throwing this up so I can work through it more deliberately and make notes. Test Plan: - Ran migration. - Used `bin/repository list` to list existing repositories. - Used `bin/repository update <repository>` to update various repositories. - Updated a migrated, hosted Git repository. - Updated a migrated, observed Git repository. - Converted an observed repository into a hosted repository by toggling the I/O mode of the URI. - Conveted a hosted repository into an observed repository by toggling it back. - Created and activated a new empty hosted Git repository. - Created and activated an observed Git repository. - Updated a mirrored repository. - Cloned and pushed over HTTP. - Tried to HTTP push a read-only repository. - Cloned and pushed over SSH. - Tried to SSH push a read-only repository. - Updated several Mercurial repositories. - Updated several Subversion repositories. - Created and edited repositories via the API. Reviewers: chad Reviewed By: chad Maniphest Tasks: T10748 Differential Revision: https://secure.phabricator.com/D15842
This commit is contained in:
@@ -410,4 +410,44 @@ final class DiffusionURIEditor
|
||||
return $errors;
|
||||
}
|
||||
|
||||
protected function applyFinalEffects(
|
||||
PhabricatorLiskDAO $object,
|
||||
array $xactions) {
|
||||
|
||||
// Synchronize the repository state based on the presence of an "Observe"
|
||||
// URI.
|
||||
$repository = $object->getRepository();
|
||||
|
||||
$uris = id(new PhabricatorRepositoryURIQuery())
|
||||
->setViewer(PhabricatorUser::getOmnipotentUser())
|
||||
->withRepositories(array($repository))
|
||||
->execute();
|
||||
|
||||
$observe_uri = null;
|
||||
foreach ($uris as $uri) {
|
||||
if ($uri->getIoType() != PhabricatorRepositoryURI::IO_OBSERVE) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$observe_uri = $uri;
|
||||
break;
|
||||
}
|
||||
|
||||
if ($observe_uri) {
|
||||
$repository
|
||||
->setHosted(false)
|
||||
->setDetail('remote-uri', (string)$observe_uri->getEffectiveURI())
|
||||
->setCredentialPHID($observe_uri->getCredentialPHID());
|
||||
} else {
|
||||
$repository
|
||||
->setHosted(true)
|
||||
->setDetail('remote-uri', null)
|
||||
->setCredentialPHID(null);
|
||||
}
|
||||
|
||||
$repository->save();
|
||||
|
||||
return $xactions;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user