1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-22 21:40:55 +01:00

Record which user accepted on behalf of packages/owners reviewers

Summary:
Ref T12271. Don't do anything with this yet, but store who accepted/rejected/whatever on behalf of reviewers.

In the future, we could use this to render stuff like "Blessed Committers (accepted by epriestley)" or whatever. I don't know that this is necessarily super useful, but it's easy to track, seems likely to be useful, and would be a gigantic pain to backfill later if we decide we want it.

Test Plan: Accepted/rejected a revision, saw reviewers update appropriately.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T12271

Differential Revision: https://secure.phabricator.com/D17537
This commit is contained in:
epriestley 2017-03-22 11:42:52 -07:00
parent fab37aa4e3
commit aa91dc992e
3 changed files with 9 additions and 0 deletions

View file

@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_differential.differential_reviewer
ADD lastActorPHID VARBINARY(64);

View file

@ -8,6 +8,7 @@ final class DifferentialReviewer
protected $reviewerStatus; protected $reviewerStatus;
protected $lastActionDiffPHID; protected $lastActionDiffPHID;
protected $lastCommentDiffPHID; protected $lastCommentDiffPHID;
protected $lastActorPHID;
private $authority = array(); private $authority = array();
@ -17,6 +18,7 @@ final class DifferentialReviewer
'reviewerStatus' => 'text64', 'reviewerStatus' => 'text64',
'lastActionDiffPHID' => 'phid?', 'lastActionDiffPHID' => 'phid?',
'lastCommentDiffPHID' => 'phid?', 'lastCommentDiffPHID' => 'phid?',
'lastActorPHID' => 'phid?',
), ),
self::CONFIG_KEY_SCHEMA => array( self::CONFIG_KEY_SCHEMA => array(
'key_revision' => array( 'key_revision' => array(

View file

@ -198,12 +198,17 @@ abstract class DifferentialRevisionReviewTransaction
->setReviewerPHID($dst_phid); ->setReviewerPHID($dst_phid);
} }
$old_status = $reviewer->getReviewerStatus();
$reviewer->setReviewerStatus($status); $reviewer->setReviewerStatus($status);
if ($diff_phid) { if ($diff_phid) {
$reviewer->setLastActionDiffPHID($diff_phid); $reviewer->setLastActionDiffPHID($diff_phid);
} }
if ($old_status !== $status) {
$reviewer->setLastActorPHID($this->getActingAsPHID());
}
try { try {
$reviewer->save(); $reviewer->save();
} catch (AphrontDuplicateKeyQueryException $ex) { } catch (AphrontDuplicateKeyQueryException $ex) {