mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-10 00:42:41 +01:00
When a Herald rule blocks a push, show which rule fired in the push log UI
Summary: Ref T13164. See PHI765. We currently show "Rejected: Herald" in the push log UI, but don't show which rule rejected a push. We store this data, and it's potentially useful: either for hunting down a particular issue, or for getting a general sense of how often a reject rule is triggering (maybe because you want to tune how aggressive it is). Show this data in the web UI, and include it in the data export payload. Test Plan: - Pushed to a hosted repository so that I got blocked by a Herald rule. - Viewed the push logs in the web UI, now saw which rule triggered things. - Exported logs to CSV, saw Herald rule PHIDs in the data. {F5776211} Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T13164 Differential Revision: https://secure.phabricator.com/D19555
This commit is contained in:
parent
96e3c73159
commit
d8834377be
2 changed files with 22 additions and 5 deletions
|
@ -14,6 +14,8 @@ final class DiffusionPushLogListView extends AphrontView {
|
||||||
$logs = $this->logs;
|
$logs = $this->logs;
|
||||||
$viewer = $this->getViewer();
|
$viewer = $this->getViewer();
|
||||||
|
|
||||||
|
$reject_herald = PhabricatorRepositoryPushLog::REJECT_HERALD;
|
||||||
|
|
||||||
$handle_phids = array();
|
$handle_phids = array();
|
||||||
foreach ($logs as $log) {
|
foreach ($logs as $log) {
|
||||||
$handle_phids[] = $log->getPusherPHID();
|
$handle_phids[] = $log->getPusherPHID();
|
||||||
|
@ -21,9 +23,13 @@ final class DiffusionPushLogListView extends AphrontView {
|
||||||
if ($device_phid) {
|
if ($device_phid) {
|
||||||
$handle_phids[] = $device_phid;
|
$handle_phids[] = $device_phid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($log->getPushEvent()->getRejectCode() == $reject_herald) {
|
||||||
|
$handle_phids[] = $log->getPushEvent()->getRejectDetails();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$handles = $viewer->loadHandles($handle_phids);
|
$viewer->loadHandles($handle_phids);
|
||||||
|
|
||||||
// Only administrators can view remote addresses.
|
// Only administrators can view remote addresses.
|
||||||
$remotes_visible = $viewer->getIsAdmin();
|
$remotes_visible = $viewer->getIsAdmin();
|
||||||
|
@ -74,10 +80,17 @@ final class DiffusionPushLogListView extends AphrontView {
|
||||||
$flag_names);
|
$flag_names);
|
||||||
|
|
||||||
$reject_code = $log->getPushEvent()->getRejectCode();
|
$reject_code = $log->getPushEvent()->getRejectCode();
|
||||||
|
|
||||||
|
if ($reject_code == $reject_herald) {
|
||||||
|
$rule_phid = $log->getPushEvent()->getRejectDetails();
|
||||||
|
$handle = $viewer->renderHandle($rule_phid);
|
||||||
|
$reject_label = pht('Blocked: %s', $handle);
|
||||||
|
} else {
|
||||||
$reject_label = idx(
|
$reject_label = idx(
|
||||||
$reject_map,
|
$reject_map,
|
||||||
$reject_code,
|
$reject_code,
|
||||||
pht('Unknown ("%s")', $reject_code));
|
pht('Unknown ("%s")', $reject_code));
|
||||||
|
}
|
||||||
|
|
||||||
$rows[] = array(
|
$rows[] = array(
|
||||||
phutil_tag(
|
phutil_tag(
|
||||||
|
|
|
@ -149,6 +149,9 @@ final class PhabricatorRepositoryPushLogSearchEngine
|
||||||
id(new PhabricatorStringExportField())
|
id(new PhabricatorStringExportField())
|
||||||
->setKey('resultName')
|
->setKey('resultName')
|
||||||
->setLabel(pht('Result Name')),
|
->setLabel(pht('Result Name')),
|
||||||
|
id(new PhabricatorStringExportField())
|
||||||
|
->setKey('resultDetails')
|
||||||
|
->setLabel(pht('Result Details')),
|
||||||
id(new PhabricatorIntExportField())
|
id(new PhabricatorIntExportField())
|
||||||
->setKey('writeWait')
|
->setKey('writeWait')
|
||||||
->setLabel(pht('Write Wait (us)')),
|
->setLabel(pht('Write Wait (us)')),
|
||||||
|
@ -237,6 +240,7 @@ final class PhabricatorRepositoryPushLogSearchEngine
|
||||||
'flagNames' => $flag_names,
|
'flagNames' => $flag_names,
|
||||||
'result' => $result,
|
'result' => $result,
|
||||||
'resultName' => $result_name,
|
'resultName' => $result_name,
|
||||||
|
'resultDetails' => $event->getRejectDetails(),
|
||||||
'writeWait' => $event->getWriteWait(),
|
'writeWait' => $event->getWriteWait(),
|
||||||
'readWait' => $event->getReadWait(),
|
'readWait' => $event->getReadWait(),
|
||||||
'hostWait' => $event->getHostWait(),
|
'hostWait' => $event->getHostWait(),
|
||||||
|
|
Loading…
Reference in a new issue