1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-26 00:32:42 +01:00

Prevent creation of empty repository identities

Summary: Fixes issue reported in https://secure.phabricator.com/rPf191a66490b194785fae28c062b71be99bb14584#43240

Test Plan: Imported an SVN repo, observed clean import instead of daemon exception.

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

Differential Revision: https://secure.phabricator.com/D19466
This commit is contained in:
Austin McKinley 2018-06-05 15:57:30 -07:00
parent dbe72df557
commit b8b2d1672d

View file

@ -80,18 +80,22 @@ abstract class PhabricatorRepositoryCommitMessageParserWorker
->save(); ->save();
} }
$committer_identity = id(new PhabricatorRepositoryIdentityQuery()) $committer_identity = null;
->setViewer(PhabricatorUser::getOmnipotentUser())
->withIdentityNames(array($committer))
->executeOne();
if (!$committer_identity) { if ($committer) {
$committer_identity = id(new PhabricatorRepositoryIdentity()) $committer_identity = id(new PhabricatorRepositoryIdentityQuery())
->setAuthorPHID($commit->getPHID()) ->setViewer(PhabricatorUser::getOmnipotentUser())
->setIdentityName($committer) ->withIdentityNames(array($committer))
->setAutomaticGuessedUserPHID( ->executeOne();
$this->resolveUserPHID($commit, $committer))
->save(); if (!$committer_identity) {
$committer_identity = id(new PhabricatorRepositoryIdentity())
->setAuthorPHID($commit->getPHID())
->setIdentityName($committer)
->setAutomaticGuessedUserPHID(
$this->resolveUserPHID($commit, $committer))
->save();
}
} }
$data = id(new PhabricatorRepositoryCommitData())->loadOneWhere( $data = id(new PhabricatorRepositoryCommitData())->loadOneWhere(
@ -128,6 +132,8 @@ abstract class PhabricatorRepositoryCommitMessageParserWorker
$this->resolveUserPHID($commit, $committer)); $this->resolveUserPHID($commit, $committer));
$data->setCommitDetail( $data->setCommitDetail(
'committerIdentityPHID', $committer_identity->getPHID()); 'committerIdentityPHID', $committer_identity->getPHID());
$commit->setCommitterIdentityPHID($committer_identity->getPHID());
} }
$repository = $this->repository; $repository = $this->repository;
@ -166,7 +172,6 @@ abstract class PhabricatorRepositoryCommitMessageParserWorker
} }
$commit->setAuthorIdentityPHID($author_identity->getPHID()); $commit->setAuthorIdentityPHID($author_identity->getPHID());
$commit->setCommitterIdentityPHID($committer_identity->getPHID());
$commit->setSummary($data->getSummary()); $commit->setSummary($data->getSummary());
$commit->save(); $commit->save();