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

(stable) Promote 2015 Week 32

This commit is contained in:
epriestley 2015-08-08 08:01:11 -07:00
commit 2eab1c1943
387 changed files with 6573 additions and 4039 deletions

View file

@ -7,7 +7,7 @@
*/ */
return array( return array(
'names' => array( 'names' => array(
'core.pkg.css' => 'f79ebe46', 'core.pkg.css' => '33799ec4',
'core.pkg.js' => 'a590b451', 'core.pkg.js' => 'a590b451',
'darkconsole.pkg.js' => 'e7393ebb', 'darkconsole.pkg.js' => 'e7393ebb',
'differential.pkg.css' => '9451634c', 'differential.pkg.css' => '9451634c',
@ -28,7 +28,6 @@ return array(
'rsrc/css/aphront/table-view.css' => 'e3632cc9', 'rsrc/css/aphront/table-view.css' => 'e3632cc9',
'rsrc/css/aphront/tokenizer.css' => '04875312', 'rsrc/css/aphront/tokenizer.css' => '04875312',
'rsrc/css/aphront/tooltip.css' => '7672b60f', 'rsrc/css/aphront/tooltip.css' => '7672b60f',
'rsrc/css/aphront/two-column.css' => '16ab3ad2',
'rsrc/css/aphront/typeahead-browse.css' => 'd8581d2c', 'rsrc/css/aphront/typeahead-browse.css' => 'd8581d2c',
'rsrc/css/aphront/typeahead.css' => '0e403212', 'rsrc/css/aphront/typeahead.css' => '0e403212',
'rsrc/css/application/almanac/almanac.css' => 'dbb9b3af', 'rsrc/css/application/almanac/almanac.css' => 'dbb9b3af',
@ -48,13 +47,13 @@ return array(
'rsrc/css/application/config/unhandled-exception.css' => '4c96257a', 'rsrc/css/application/config/unhandled-exception.css' => '4c96257a',
'rsrc/css/application/conpherence/durable-column.css' => '86396117', 'rsrc/css/application/conpherence/durable-column.css' => '86396117',
'rsrc/css/application/conpherence/menu.css' => 'f99fee4c', 'rsrc/css/application/conpherence/menu.css' => 'f99fee4c',
'rsrc/css/application/conpherence/message-pane.css' => '2c16d204', 'rsrc/css/application/conpherence/message-pane.css' => 'dd4f8a3b',
'rsrc/css/application/conpherence/notification.css' => '6cdcc253', 'rsrc/css/application/conpherence/notification.css' => '6cdcc253',
'rsrc/css/application/conpherence/transaction.css' => '85d0974c', 'rsrc/css/application/conpherence/transaction.css' => '85d0974c',
'rsrc/css/application/conpherence/update.css' => 'faf6be09', 'rsrc/css/application/conpherence/update.css' => 'faf6be09',
'rsrc/css/application/conpherence/widget-pane.css' => '419fd50c', 'rsrc/css/application/conpherence/widget-pane.css' => '419fd50c',
'rsrc/css/application/contentsource/content-source-view.css' => '4b8b05d4', 'rsrc/css/application/contentsource/content-source-view.css' => '4b8b05d4',
'rsrc/css/application/countdown/timer.css' => '4f02bd98', 'rsrc/css/application/countdown/timer.css' => 'e7544472',
'rsrc/css/application/daemon/bulk-job.css' => 'df9c1d4a', 'rsrc/css/application/daemon/bulk-job.css' => 'df9c1d4a',
'rsrc/css/application/dashboard/dashboard.css' => 'eb458607', 'rsrc/css/application/dashboard/dashboard.css' => 'eb458607',
'rsrc/css/application/diff/inline-comment-summary.css' => '51efda3a', 'rsrc/css/application/diff/inline-comment-summary.css' => '51efda3a',
@ -73,7 +72,7 @@ return array(
'rsrc/css/application/files/global-drag-and-drop.css' => '697324ad', 'rsrc/css/application/files/global-drag-and-drop.css' => '697324ad',
'rsrc/css/application/flag/flag.css' => '5337623f', 'rsrc/css/application/flag/flag.css' => '5337623f',
'rsrc/css/application/harbormaster/harbormaster.css' => '49d64eb4', 'rsrc/css/application/harbormaster/harbormaster.css' => '49d64eb4',
'rsrc/css/application/herald/herald-test.css' => '778b008e', 'rsrc/css/application/herald/herald-test.css' => 'a52e323e',
'rsrc/css/application/herald/herald.css' => '826075fa', 'rsrc/css/application/herald/herald.css' => '826075fa',
'rsrc/css/application/maniphest/batch-editor.css' => 'b0f0b6d5', 'rsrc/css/application/maniphest/batch-editor.css' => 'b0f0b6d5',
'rsrc/css/application/maniphest/report.css' => 'f6931fdf', 'rsrc/css/application/maniphest/report.css' => 'f6931fdf',
@ -83,7 +82,7 @@ return array(
'rsrc/css/application/owners/owners-path-editor.css' => '2f00933b', 'rsrc/css/application/owners/owners-path-editor.css' => '2f00933b',
'rsrc/css/application/paste/paste.css' => '1898e534', 'rsrc/css/application/paste/paste.css' => '1898e534',
'rsrc/css/application/people/people-profile.css' => '25970776', 'rsrc/css/application/people/people-profile.css' => '25970776',
'rsrc/css/application/phame/phame.css' => '3259b53d', 'rsrc/css/application/phame/phame.css' => 'bb147387',
'rsrc/css/application/pholio/pholio-edit.css' => '3ad9d1ee', 'rsrc/css/application/pholio/pholio-edit.css' => '3ad9d1ee',
'rsrc/css/application/pholio/pholio-inline-comments.css' => '8e545e49', 'rsrc/css/application/pholio/pholio-inline-comments.css' => '8e545e49',
'rsrc/css/application/pholio/pholio.css' => '95174bdd', 'rsrc/css/application/pholio/pholio.css' => '95174bdd',
@ -94,10 +93,7 @@ return array(
'rsrc/css/application/policy/policy-edit.css' => '815c66f7', 'rsrc/css/application/policy/policy-edit.css' => '815c66f7',
'rsrc/css/application/policy/policy-transaction-detail.css' => '82100a43', 'rsrc/css/application/policy/policy-transaction-detail.css' => '82100a43',
'rsrc/css/application/policy/policy.css' => '957ea14c', 'rsrc/css/application/policy/policy.css' => '957ea14c',
'rsrc/css/application/ponder/comments.css' => '865a67e6', 'rsrc/css/application/ponder/ponder-view.css' => 'fcd6b398',
'rsrc/css/application/ponder/feed.css' => 'e62615b6',
'rsrc/css/application/ponder/post.css' => '9d415218',
'rsrc/css/application/ponder/vote.css' => 'aea452b0',
'rsrc/css/application/projects/project-icon.css' => '4e3eaa5a', 'rsrc/css/application/projects/project-icon.css' => '4e3eaa5a',
'rsrc/css/application/releeph/releeph-core.css' => '9b3c5733', 'rsrc/css/application/releeph/releeph-core.css' => '9b3c5733',
'rsrc/css/application/releeph/releeph-preview-branch.css' => 'b7a6f4a5', 'rsrc/css/application/releeph/releeph-preview-branch.css' => 'b7a6f4a5',
@ -112,7 +108,7 @@ return array(
'rsrc/css/core/syntax.css' => '9fd11da8', 'rsrc/css/core/syntax.css' => '9fd11da8',
'rsrc/css/core/z-index.css' => '57ddcaa2', 'rsrc/css/core/z-index.css' => '57ddcaa2',
'rsrc/css/diviner/diviner-shared.css' => '5a337049', 'rsrc/css/diviner/diviner-shared.css' => '5a337049',
'rsrc/css/font/font-awesome.css' => 'e2e712fe', 'rsrc/css/font/font-awesome.css' => 'd2fc4e8d',
'rsrc/css/font/font-lato.css' => '5ab1a46a', 'rsrc/css/font/font-lato.css' => '5ab1a46a',
'rsrc/css/font/font-roboto-slab.css' => 'f24a53cb', 'rsrc/css/font/font-roboto-slab.css' => 'f24a53cb',
'rsrc/css/font/phui-font-icon-base.css' => '3dad2ae3', 'rsrc/css/font/phui-font-icon-base.css' => '3dad2ae3',
@ -126,12 +122,12 @@ return array(
'rsrc/css/phui/calendar/phui-calendar.css' => 'ccabe893', 'rsrc/css/phui/calendar/phui-calendar.css' => 'ccabe893',
'rsrc/css/phui/phui-action-list.css' => 'c5eba19d', 'rsrc/css/phui/phui-action-list.css' => 'c5eba19d',
'rsrc/css/phui/phui-action-panel.css' => '3ee9afd5', 'rsrc/css/phui/phui-action-panel.css' => '3ee9afd5',
'rsrc/css/phui/phui-badge.css' => 'b6218fa8', 'rsrc/css/phui/phui-badge.css' => 'f25c3476',
'rsrc/css/phui/phui-box.css' => 'a5bb366d', 'rsrc/css/phui/phui-box.css' => 'a5bb366d',
'rsrc/css/phui/phui-button.css' => '16020a60', 'rsrc/css/phui/phui-button.css' => '16020a60',
'rsrc/css/phui/phui-crumbs-view.css' => 'd842f867', 'rsrc/css/phui/phui-crumbs-view.css' => 'd842f867',
'rsrc/css/phui/phui-document.css' => '0267054b', 'rsrc/css/phui/phui-document.css' => '0267054b',
'rsrc/css/phui/phui-feed-story.css' => 'c7d8113a', 'rsrc/css/phui/phui-feed-story.css' => 'b7b26d23',
'rsrc/css/phui/phui-fontkit.css' => 'cb8ae7ad', 'rsrc/css/phui/phui-fontkit.css' => 'cb8ae7ad',
'rsrc/css/phui/phui-form-view.css' => '621b21c5', 'rsrc/css/phui/phui-form-view.css' => '621b21c5',
'rsrc/css/phui/phui-form.css' => 'afdb2c6e', 'rsrc/css/phui/phui-form.css' => 'afdb2c6e',
@ -142,27 +138,27 @@ return array(
'rsrc/css/phui/phui-info-view.css' => '5b16bac6', 'rsrc/css/phui/phui-info-view.css' => '5b16bac6',
'rsrc/css/phui/phui-list.css' => '125599df', 'rsrc/css/phui/phui-list.css' => '125599df',
'rsrc/css/phui/phui-object-box.css' => '407eaf5a', 'rsrc/css/phui/phui-object-box.css' => '407eaf5a',
'rsrc/css/phui/phui-object-item-list-view.css' => 'a1b990b7', 'rsrc/css/phui/phui-object-item-list-view.css' => '36ce366c',
'rsrc/css/phui/phui-pager.css' => 'bea33d23', 'rsrc/css/phui/phui-pager.css' => 'bea33d23',
'rsrc/css/phui/phui-pinboard-view.css' => '2495140e', 'rsrc/css/phui/phui-pinboard-view.css' => '2495140e',
'rsrc/css/phui/phui-property-list-view.css' => 'aeb09581', 'rsrc/css/phui/phui-property-list-view.css' => '15bbe0b0',
'rsrc/css/phui/phui-remarkup-preview.css' => '867f85b3', 'rsrc/css/phui/phui-remarkup-preview.css' => '867f85b3',
'rsrc/css/phui/phui-spacing.css' => '042804d6', 'rsrc/css/phui/phui-spacing.css' => '042804d6',
'rsrc/css/phui/phui-status.css' => '888cedb8', 'rsrc/css/phui/phui-status.css' => '888cedb8',
'rsrc/css/phui/phui-tag-view.css' => '402691cc', 'rsrc/css/phui/phui-tag-view.css' => '402691cc',
'rsrc/css/phui/phui-text.css' => 'cf019f54', 'rsrc/css/phui/phui-text.css' => 'cf019f54',
'rsrc/css/phui/phui-timeline-view.css' => 'fc23e7b7', 'rsrc/css/phui/phui-timeline-view.css' => 'f1bccf73',
'rsrc/css/phui/phui-workboard-view.css' => '6a20991a', 'rsrc/css/phui/phui-workboard-view.css' => '6704d68d',
'rsrc/css/phui/phui-workpanel-view.css' => '8cebb2b1', 'rsrc/css/phui/phui-workpanel-view.css' => 'adec7699',
'rsrc/css/sprite-login.css' => '1ebb9bf9', 'rsrc/css/sprite-login.css' => '1ebb9bf9',
'rsrc/css/sprite-main-header.css' => 'f07bbb87', 'rsrc/css/sprite-main-header.css' => 'f07bbb87',
'rsrc/css/sprite-menu.css' => '9dd65b92', 'rsrc/css/sprite-menu.css' => '9dd65b92',
'rsrc/css/sprite-projects.css' => 'e5ad842a', 'rsrc/css/sprite-projects.css' => 'e5ad842a',
'rsrc/css/sprite-tokens.css' => '4f399012', 'rsrc/css/sprite-tokens.css' => '4f399012',
'rsrc/externals/font/fontawesome/fontawesome-webfont.eot' => '5fb6fb0e', 'rsrc/externals/font/fontawesome/fontawesome-webfont.eot' => '7d5a4653',
'rsrc/externals/font/fontawesome/fontawesome-webfont.ttf' => 'a653cb11', 'rsrc/externals/font/fontawesome/fontawesome-webfont.ttf' => '531835e8',
'rsrc/externals/font/fontawesome/fontawesome-webfont.woff' => '80526fc8', 'rsrc/externals/font/fontawesome/fontawesome-webfont.woff' => '427fe363',
'rsrc/externals/font/fontawesome/fontawesome-webfont.woff2' => '4924d54d', 'rsrc/externals/font/fontawesome/fontawesome-webfont.woff2' => 'a9897054',
'rsrc/externals/font/lato/lato-bold.eot' => '99fbcf8c', 'rsrc/externals/font/lato/lato-bold.eot' => '99fbcf8c',
'rsrc/externals/font/lato/lato-bold.ttf' => '0a7141f7', 'rsrc/externals/font/lato/lato-bold.ttf' => '0a7141f7',
'rsrc/externals/font/lato/lato-bold.woff' => 'f5db2061', 'rsrc/externals/font/lato/lato-bold.woff' => 'f5db2061',
@ -382,7 +378,7 @@ return array(
'rsrc/js/application/doorkeeper/behavior-doorkeeper-tag.js' => 'e5822781', 'rsrc/js/application/doorkeeper/behavior-doorkeeper-tag.js' => 'e5822781',
'rsrc/js/application/files/behavior-icon-composer.js' => '8ef9ab58', 'rsrc/js/application/files/behavior-icon-composer.js' => '8ef9ab58',
'rsrc/js/application/files/behavior-launch-icon-composer.js' => '48086888', 'rsrc/js/application/files/behavior-launch-icon-composer.js' => '48086888',
'rsrc/js/application/herald/HeraldRuleEditor.js' => '52684226', 'rsrc/js/application/herald/HeraldRuleEditor.js' => '91a6031b',
'rsrc/js/application/herald/PathTypeahead.js' => 'f7fc67ec', 'rsrc/js/application/herald/PathTypeahead.js' => 'f7fc67ec',
'rsrc/js/application/herald/herald-rule-editor.js' => '7ebaeed3', 'rsrc/js/application/herald/herald-rule-editor.js' => '7ebaeed3',
'rsrc/js/application/maniphest/behavior-batch-editor.js' => '782ab6e7', 'rsrc/js/application/maniphest/behavior-batch-editor.js' => '782ab6e7',
@ -503,7 +499,6 @@ return array(
'aphront-table-view-css' => 'e3632cc9', 'aphront-table-view-css' => 'e3632cc9',
'aphront-tokenizer-control-css' => '04875312', 'aphront-tokenizer-control-css' => '04875312',
'aphront-tooltip-css' => '7672b60f', 'aphront-tooltip-css' => '7672b60f',
'aphront-two-column-view-css' => '16ab3ad2',
'aphront-typeahead-control-css' => '0e403212', 'aphront-typeahead-control-css' => '0e403212',
'auth-css' => '0877ed6e', 'auth-css' => '0877ed6e',
'bulk-job-css' => 'df9c1d4a', 'bulk-job-css' => 'df9c1d4a',
@ -514,7 +509,7 @@ return array(
'config-welcome-css' => '6abd79be', 'config-welcome-css' => '6abd79be',
'conpherence-durable-column-view' => '86396117', 'conpherence-durable-column-view' => '86396117',
'conpherence-menu-css' => 'f99fee4c', 'conpherence-menu-css' => 'f99fee4c',
'conpherence-message-pane-css' => '2c16d204', 'conpherence-message-pane-css' => 'dd4f8a3b',
'conpherence-notification-css' => '6cdcc253', 'conpherence-notification-css' => '6cdcc253',
'conpherence-thread-manager' => '01774ab2', 'conpherence-thread-manager' => '01774ab2',
'conpherence-transaction-css' => '85d0974c', 'conpherence-transaction-css' => '85d0974c',
@ -532,14 +527,14 @@ return array(
'diffusion-readme-css' => '2106ea08', 'diffusion-readme-css' => '2106ea08',
'diffusion-source-css' => '66fdf661', 'diffusion-source-css' => '66fdf661',
'diviner-shared-css' => '5a337049', 'diviner-shared-css' => '5a337049',
'font-fontawesome' => 'e2e712fe', 'font-fontawesome' => 'd2fc4e8d',
'font-lato' => '5ab1a46a', 'font-lato' => '5ab1a46a',
'font-roboto-slab' => 'f24a53cb', 'font-roboto-slab' => 'f24a53cb',
'global-drag-and-drop-css' => '697324ad', 'global-drag-and-drop-css' => '697324ad',
'harbormaster-css' => '49d64eb4', 'harbormaster-css' => '49d64eb4',
'herald-css' => '826075fa', 'herald-css' => '826075fa',
'herald-rule-editor' => '52684226', 'herald-rule-editor' => '91a6031b',
'herald-test-css' => '778b008e', 'herald-test-css' => 'a52e323e',
'inline-comment-summary-css' => '51efda3a', 'inline-comment-summary-css' => '51efda3a',
'javelin-aphlict' => '5359e785', 'javelin-aphlict' => '5359e785',
'javelin-behavior' => '61cbc29a', 'javelin-behavior' => '61cbc29a',
@ -722,7 +717,7 @@ return array(
'phabricator-chatlog-css' => 'd295b020', 'phabricator-chatlog-css' => 'd295b020',
'phabricator-content-source-view-css' => '4b8b05d4', 'phabricator-content-source-view-css' => '4b8b05d4',
'phabricator-core-css' => 'a76cefc9', 'phabricator-core-css' => 'a76cefc9',
'phabricator-countdown-css' => '4f02bd98', 'phabricator-countdown-css' => 'e7544472',
'phabricator-dashboard-css' => 'eb458607', 'phabricator-dashboard-css' => 'eb458607',
'phabricator-drag-and-drop-file-upload' => '07de8873', 'phabricator-drag-and-drop-file-upload' => '07de8873',
'phabricator-draggable-list' => 'a16ec1c6', 'phabricator-draggable-list' => 'a16ec1c6',
@ -765,7 +760,7 @@ return array(
'phabricator-uiexample-reactor-sendclass' => '1def2711', 'phabricator-uiexample-reactor-sendclass' => '1def2711',
'phabricator-uiexample-reactor-sendproperties' => 'b1f0ccee', 'phabricator-uiexample-reactor-sendproperties' => 'b1f0ccee',
'phabricator-zindex-css' => '57ddcaa2', 'phabricator-zindex-css' => '57ddcaa2',
'phame-css' => '3259b53d', 'phame-css' => 'bb147387',
'pholio-css' => '95174bdd', 'pholio-css' => '95174bdd',
'pholio-edit-css' => '3ad9d1ee', 'pholio-edit-css' => '3ad9d1ee',
'pholio-inline-comments-css' => '8e545e49', 'pholio-inline-comments-css' => '8e545e49',
@ -775,7 +770,7 @@ return array(
'phrequent-css' => 'ffc185ad', 'phrequent-css' => 'ffc185ad',
'phriction-document-css' => 'd1861e06', 'phriction-document-css' => 'd1861e06',
'phui-action-panel-css' => '3ee9afd5', 'phui-action-panel-css' => '3ee9afd5',
'phui-badge-view-css' => 'b6218fa8', 'phui-badge-view-css' => 'f25c3476',
'phui-box-css' => 'a5bb366d', 'phui-box-css' => 'a5bb366d',
'phui-button-css' => '16020a60', 'phui-button-css' => '16020a60',
'phui-calendar-css' => 'ccabe893', 'phui-calendar-css' => 'ccabe893',
@ -784,7 +779,7 @@ return array(
'phui-calendar-month-css' => '476be7e0', 'phui-calendar-month-css' => '476be7e0',
'phui-crumbs-view-css' => 'd842f867', 'phui-crumbs-view-css' => 'd842f867',
'phui-document-view-css' => '0267054b', 'phui-document-view-css' => '0267054b',
'phui-feed-story-css' => 'c7d8113a', 'phui-feed-story-css' => 'b7b26d23',
'phui-font-icon-base-css' => '3dad2ae3', 'phui-font-icon-base-css' => '3dad2ae3',
'phui-fontkit-css' => 'cb8ae7ad', 'phui-fontkit-css' => 'cb8ae7ad',
'phui-form-css' => 'afdb2c6e', 'phui-form-css' => 'afdb2c6e',
@ -797,29 +792,26 @@ return array(
'phui-inline-comment-view-css' => '9fadd6b8', 'phui-inline-comment-view-css' => '9fadd6b8',
'phui-list-view-css' => '125599df', 'phui-list-view-css' => '125599df',
'phui-object-box-css' => '407eaf5a', 'phui-object-box-css' => '407eaf5a',
'phui-object-item-list-view-css' => 'a1b990b7', 'phui-object-item-list-view-css' => '36ce366c',
'phui-pager-css' => 'bea33d23', 'phui-pager-css' => 'bea33d23',
'phui-pinboard-view-css' => '2495140e', 'phui-pinboard-view-css' => '2495140e',
'phui-property-list-view-css' => 'aeb09581', 'phui-property-list-view-css' => '15bbe0b0',
'phui-remarkup-preview-css' => '867f85b3', 'phui-remarkup-preview-css' => '867f85b3',
'phui-spacing-css' => '042804d6', 'phui-spacing-css' => '042804d6',
'phui-status-list-view-css' => '888cedb8', 'phui-status-list-view-css' => '888cedb8',
'phui-tag-view-css' => '402691cc', 'phui-tag-view-css' => '402691cc',
'phui-text-css' => 'cf019f54', 'phui-text-css' => 'cf019f54',
'phui-theme-css' => '6b451f24', 'phui-theme-css' => '6b451f24',
'phui-timeline-view-css' => 'fc23e7b7', 'phui-timeline-view-css' => 'f1bccf73',
'phui-workboard-view-css' => '6a20991a', 'phui-workboard-view-css' => '6704d68d',
'phui-workpanel-view-css' => '8cebb2b1', 'phui-workpanel-view-css' => 'adec7699',
'phuix-action-list-view' => 'b5c256b8', 'phuix-action-list-view' => 'b5c256b8',
'phuix-action-view' => '8cf6d262', 'phuix-action-view' => '8cf6d262',
'phuix-dropdown-menu' => 'bd4c8dca', 'phuix-dropdown-menu' => 'bd4c8dca',
'policy-css' => '957ea14c', 'policy-css' => '957ea14c',
'policy-edit-css' => '815c66f7', 'policy-edit-css' => '815c66f7',
'policy-transaction-detail-css' => '82100a43', 'policy-transaction-detail-css' => '82100a43',
'ponder-comment-table-css' => '865a67e6', 'ponder-view-css' => 'fcd6b398',
'ponder-feed-view-css' => 'e62615b6',
'ponder-post-css' => '9d415218',
'ponder-vote-css' => 'aea452b0',
'project-icon-css' => '4e3eaa5a', 'project-icon-css' => '4e3eaa5a',
'raphael-core' => '51ee6b43', 'raphael-core' => '51ee6b43',
'raphael-g' => '40dde778', 'raphael-g' => '40dde778',
@ -1172,15 +1164,6 @@ return array(
'javelin-dom', 'javelin-dom',
'javelin-reactor-dom', 'javelin-reactor-dom',
), ),
52684226 => array(
'multirow-row-manager',
'javelin-install',
'javelin-util',
'javelin-dom',
'javelin-stratcom',
'javelin-json',
'phabricator-prefab',
),
'5359e785' => array( '5359e785' => array(
'javelin-install', 'javelin-install',
'javelin-util', 'javelin-util',
@ -1539,6 +1522,15 @@ return array(
'javelin-dom', 'javelin-dom',
'javelin-stratcom', 'javelin-stratcom',
), ),
'91a6031b' => array(
'multirow-row-manager',
'javelin-install',
'javelin-util',
'javelin-dom',
'javelin-stratcom',
'javelin-json',
'phabricator-prefab',
),
'93d0c9e3' => array( '93d0c9e3' => array(
'javelin-behavior', 'javelin-behavior',
'javelin-stratcom', 'javelin-stratcom',

View file

@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_badges.badges_badge
ADD mailKey binary(20) NOT NULL;

View file

@ -0,0 +1,18 @@
<?php
$table = new PhabricatorBadgesBadge();
$conn_w = $table->establishConnection('w');
$iterator = new LiskMigrationIterator($table);
foreach ($iterator as $badge) {
$id = $badge->getID();
echo pht('Adding mail key for badge %d...', $id);
echo "\n";
queryfx(
$conn_w,
'UPDATE %T SET mailKey = %s WHERE id = %d',
$table->getTableName(),
Filesystem::readRandomCharacters(20),
$id);
}

View file

@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_badges.badges_badge
DROP COLUMN viewPolicy;

View file

@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_countdown.countdown
ADD mailKey binary(20) NOT NULL;

View file

@ -0,0 +1,18 @@
<?php
$table = new PhabricatorCountdown();
$conn_w = $table->establishConnection('w');
$iterator = new LiskMigrationIterator($table);
foreach ($iterator as $countdown) {
$id = $countdown->getID();
echo pht('Adding mail key for countdown %d...', $id);
echo "\n";
queryfx(
$conn_w,
'UPDATE %T SET mailKey = %s WHERE id = %d',
$table->getTableName(),
Filesystem::readRandomCharacters(20),
$id);
}

View file

@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_slowvote.slowvote_poll
ADD mailKey binary(20) NOT NULL;

View file

@ -0,0 +1,18 @@
<?php
$table = new PhabricatorSlowvotePoll();
$conn_w = $table->establishConnection('w');
$iterator = new LiskMigrationIterator($table);
foreach ($iterator as $slowvote) {
$id = $slowvote->getID();
echo pht('Adding mail key for Slowvote %d...', $id);
echo "\n";
queryfx(
$conn_w,
'UPDATE %T SET mailKey = %s WHERE id = %d',
$table->getTableName(),
Filesystem::readRandomCharacters(20),
$id);
}

View file

@ -0,0 +1,27 @@
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'subscribers.add'
WHERE r.ruleType != 'personal'
AND a.action = 'addcc';
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'subscribers.self.add'
WHERE r.ruleType = 'personal'
AND a.action = 'addcc';
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'subscribers.remove'
WHERE r.ruleType != 'personal'
AND a.action = 'remcc';
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'subscribers.self.remove'
WHERE r.ruleType = 'personal'
AND a.action = 'remcc';

View file

@ -0,0 +1,13 @@
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'email.other'
WHERE r.ruleType != 'personal'
AND a.action = 'email';
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'email.self'
WHERE r.ruleType = 'personal'
AND a.action = 'email';

View file

@ -0,0 +1,11 @@
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'projects.add'
WHERE a.action = 'addprojects';
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'projects.remove'
WHERE a.action = 'removeprojects';

View file

@ -0,0 +1,13 @@
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'maniphest.assign.other'
WHERE r.ruleType != 'personal'
AND a.action = 'assigntask';
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'maniphest.assign.self'
WHERE r.ruleType = 'personal'
AND a.action = 'assigntask';

View file

@ -0,0 +1,27 @@
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'differential.reviewers.blocking'
WHERE r.ruleType != 'personal'
AND a.action = 'addreviewers';
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'differential.reviewers.self.blocking'
WHERE r.ruleType = 'personal'
AND a.action = 'addreviewers';
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'differential.reviewers.add'
WHERE r.ruleType != 'personal'
AND a.action = 'addblockingreviewers';
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'differential.reviewers.self.add'
WHERE r.ruleType = 'personal'
AND a.action = 'addblockingreviewers';

View file

@ -0,0 +1,6 @@
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'legalpad.require'
WHERE r.ruleType != 'personal'
AND a.action = 'signature';

View file

@ -0,0 +1,6 @@
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'harbormaster.build'
WHERE r.ruleType != 'personal'
AND a.action = 'applybuildplans';

View file

@ -0,0 +1,13 @@
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'diffusion.auditors.add'
WHERE r.ruleType != 'personal'
AND a.action = 'audit';
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'diffusion.auditors.self.add'
WHERE r.ruleType = 'personal'
AND a.action = 'audit';

View file

@ -0,0 +1,13 @@
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'diffusion.block'
WHERE r.contentType != 'differential.diff'
AND a.action = 'block';
UPDATE {$NAMESPACE}_herald.herald_action a
JOIN {$NAMESPACE}_herald.herald_rule r
ON a.ruleID = r.id
SET a.action = 'differential.block'
WHERE r.contentType = 'differential.diff'
AND a.action = 'block';

View file

@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_ponder.ponder_answer
ADD mailKey binary(20) NOT NULL;

View file

@ -0,0 +1,18 @@
<?php
$table = new PonderAnswer();
$conn_w = $table->establishConnection('w');
$iterator = new LiskMigrationIterator($table);
foreach ($iterator as $answer) {
$id = $answer->getID();
echo pht('Adding mail key for Answer %d...', $id);
echo "\n";
queryfx(
$conn_w,
'UPDATE %T SET mailKey = %s WHERE id = %d',
$table->getTableName(),
Filesystem::readRandomCharacters(20),
$id);
}

View file

@ -0,0 +1,5 @@
ALTER TABLE {$NAMESPACE}_ponder.ponder_question
ADD editPolicy VARBINARY(64) NOT NULL;
ALTER TABLE {$NAMESPACE}_ponder.ponder_question
ADD viewPolicy VARBINARY(64) NOT NULL;

View file

@ -0,0 +1,2 @@
UPDATE {$NAMESPACE}_ponder.ponder_question
SET editPolicy = authorPHID WHERE editPolicy = '';

View file

@ -0,0 +1,2 @@
UPDATE {$NAMESPACE}_ponder.ponder_question
SET viewPolicy = 'users' WHERE viewPolicy = '';

View file

@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_ponder.ponder_question
ADD spacePHID VARBINARY(64);

View file

@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_pastebin.pastebin_paste
ADD status VARCHAR(32) NOT NULL COLLATE {$COLLATE_TEXT};

View file

@ -0,0 +1,2 @@
UPDATE {$NAMESPACE}_pastebin.pastebin_paste
SET status = 'active' WHERE status = '';

View file

@ -203,7 +203,7 @@ foreach ($input as $key => $line) {
} }
} }
if (count ($symbols) >= $args->getArg('max-transaction')) { if (count($symbols) >= $args->getArg('max-transaction')) {
try { try {
echo pht( echo pht(
"Committing %s symbols...\n", "Committing %s symbols...\n",

View file

@ -165,7 +165,6 @@ phutil_register_library_map(array(
'AphrontTableView' => 'view/control/AphrontTableView.php', 'AphrontTableView' => 'view/control/AphrontTableView.php',
'AphrontTagView' => 'view/AphrontTagView.php', 'AphrontTagView' => 'view/AphrontTagView.php',
'AphrontTokenizerTemplateView' => 'view/control/AphrontTokenizerTemplateView.php', 'AphrontTokenizerTemplateView' => 'view/control/AphrontTokenizerTemplateView.php',
'AphrontTwoColumnView' => 'view/layout/AphrontTwoColumnView.php',
'AphrontTypeaheadTemplateView' => 'view/control/AphrontTypeaheadTemplateView.php', 'AphrontTypeaheadTemplateView' => 'view/control/AphrontTypeaheadTemplateView.php',
'AphrontURIMapper' => 'aphront/AphrontURIMapper.php', 'AphrontURIMapper' => 'aphront/AphrontURIMapper.php',
'AphrontUnhandledExceptionResponse' => 'aphront/response/AphrontUnhandledExceptionResponse.php', 'AphrontUnhandledExceptionResponse' => 'aphront/response/AphrontUnhandledExceptionResponse.php',
@ -303,6 +302,7 @@ phutil_register_library_map(array(
'DifferentialAuditorsField' => 'applications/differential/customfield/DifferentialAuditorsField.php', 'DifferentialAuditorsField' => 'applications/differential/customfield/DifferentialAuditorsField.php',
'DifferentialAuthorField' => 'applications/differential/customfield/DifferentialAuthorField.php', 'DifferentialAuthorField' => 'applications/differential/customfield/DifferentialAuthorField.php',
'DifferentialBlameRevisionField' => 'applications/differential/customfield/DifferentialBlameRevisionField.php', 'DifferentialBlameRevisionField' => 'applications/differential/customfield/DifferentialBlameRevisionField.php',
'DifferentialBlockHeraldAction' => 'applications/differential/herald/DifferentialBlockHeraldAction.php',
'DifferentialBranchField' => 'applications/differential/customfield/DifferentialBranchField.php', 'DifferentialBranchField' => 'applications/differential/customfield/DifferentialBranchField.php',
'DifferentialChangeHeraldFieldGroup' => 'applications/differential/herald/DifferentialChangeHeraldFieldGroup.php', 'DifferentialChangeHeraldFieldGroup' => 'applications/differential/herald/DifferentialChangeHeraldFieldGroup.php',
'DifferentialChangeType' => 'applications/differential/constants/DifferentialChangeType.php', 'DifferentialChangeType' => 'applications/differential/constants/DifferentialChangeType.php',
@ -435,7 +435,12 @@ phutil_register_library_map(array(
'DifferentialReviewer' => 'applications/differential/storage/DifferentialReviewer.php', 'DifferentialReviewer' => 'applications/differential/storage/DifferentialReviewer.php',
'DifferentialReviewerForRevisionEdgeType' => 'applications/differential/edge/DifferentialReviewerForRevisionEdgeType.php', 'DifferentialReviewerForRevisionEdgeType' => 'applications/differential/edge/DifferentialReviewerForRevisionEdgeType.php',
'DifferentialReviewerStatus' => 'applications/differential/constants/DifferentialReviewerStatus.php', 'DifferentialReviewerStatus' => 'applications/differential/constants/DifferentialReviewerStatus.php',
'DifferentialReviewersAddBlockingReviewersHeraldAction' => 'applications/differential/herald/DifferentialReviewersAddBlockingReviewersHeraldAction.php',
'DifferentialReviewersAddBlockingSelfHeraldAction' => 'applications/differential/herald/DifferentialReviewersAddBlockingSelfHeraldAction.php',
'DifferentialReviewersAddReviewersHeraldAction' => 'applications/differential/herald/DifferentialReviewersAddReviewersHeraldAction.php',
'DifferentialReviewersAddSelfHeraldAction' => 'applications/differential/herald/DifferentialReviewersAddSelfHeraldAction.php',
'DifferentialReviewersField' => 'applications/differential/customfield/DifferentialReviewersField.php', 'DifferentialReviewersField' => 'applications/differential/customfield/DifferentialReviewersField.php',
'DifferentialReviewersHeraldAction' => 'applications/differential/herald/DifferentialReviewersHeraldAction.php',
'DifferentialReviewersView' => 'applications/differential/view/DifferentialReviewersView.php', 'DifferentialReviewersView' => 'applications/differential/view/DifferentialReviewersView.php',
'DifferentialRevision' => 'applications/differential/storage/DifferentialRevision.php', 'DifferentialRevision' => 'applications/differential/storage/DifferentialRevision.php',
'DifferentialRevisionAffectedFilesHeraldField' => 'applications/differential/herald/DifferentialRevisionAffectedFilesHeraldField.php', 'DifferentialRevisionAffectedFilesHeraldField' => 'applications/differential/herald/DifferentialRevisionAffectedFilesHeraldField.php',
@ -493,6 +498,10 @@ phutil_register_library_map(array(
'DifferentialUpdateUnitResultsConduitAPIMethod' => 'applications/differential/conduit/DifferentialUpdateUnitResultsConduitAPIMethod.php', 'DifferentialUpdateUnitResultsConduitAPIMethod' => 'applications/differential/conduit/DifferentialUpdateUnitResultsConduitAPIMethod.php',
'DifferentialViewPolicyField' => 'applications/differential/customfield/DifferentialViewPolicyField.php', 'DifferentialViewPolicyField' => 'applications/differential/customfield/DifferentialViewPolicyField.php',
'DiffusionAuditorDatasource' => 'applications/diffusion/typeahead/DiffusionAuditorDatasource.php', 'DiffusionAuditorDatasource' => 'applications/diffusion/typeahead/DiffusionAuditorDatasource.php',
'DiffusionAuditorsAddAuditorsHeraldAction' => 'applications/diffusion/herald/DiffusionAuditorsAddAuditorsHeraldAction.php',
'DiffusionAuditorsAddSelfHeraldAction' => 'applications/diffusion/herald/DiffusionAuditorsAddSelfHeraldAction.php',
'DiffusionAuditorsHeraldAction' => 'applications/diffusion/herald/DiffusionAuditorsHeraldAction.php',
'DiffusionBlockHeraldAction' => 'applications/diffusion/herald/DiffusionBlockHeraldAction.php',
'DiffusionBranchQueryConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php', 'DiffusionBranchQueryConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php',
'DiffusionBranchTableController' => 'applications/diffusion/controller/DiffusionBranchTableController.php', 'DiffusionBranchTableController' => 'applications/diffusion/controller/DiffusionBranchTableController.php',
'DiffusionBranchTableView' => 'applications/diffusion/view/DiffusionBranchTableView.php', 'DiffusionBranchTableView' => 'applications/diffusion/view/DiffusionBranchTableView.php',
@ -941,6 +950,7 @@ phutil_register_library_map(array(
'HarbormasterBuildStepCoreCustomField' => 'applications/harbormaster/customfield/HarbormasterBuildStepCoreCustomField.php', 'HarbormasterBuildStepCoreCustomField' => 'applications/harbormaster/customfield/HarbormasterBuildStepCoreCustomField.php',
'HarbormasterBuildStepCustomField' => 'applications/harbormaster/customfield/HarbormasterBuildStepCustomField.php', 'HarbormasterBuildStepCustomField' => 'applications/harbormaster/customfield/HarbormasterBuildStepCustomField.php',
'HarbormasterBuildStepEditor' => 'applications/harbormaster/editor/HarbormasterBuildStepEditor.php', 'HarbormasterBuildStepEditor' => 'applications/harbormaster/editor/HarbormasterBuildStepEditor.php',
'HarbormasterBuildStepGroup' => 'applications/harbormaster/stepgroup/HarbormasterBuildStepGroup.php',
'HarbormasterBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterBuildStepImplementation.php', 'HarbormasterBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterBuildStepImplementation.php',
'HarbormasterBuildStepImplementationTestCase' => 'applications/harbormaster/step/__tests__/HarbormasterBuildStepImplementationTestCase.php', 'HarbormasterBuildStepImplementationTestCase' => 'applications/harbormaster/step/__tests__/HarbormasterBuildStepImplementationTestCase.php',
'HarbormasterBuildStepPHIDType' => 'applications/harbormaster/phid/HarbormasterBuildStepPHIDType.php', 'HarbormasterBuildStepPHIDType' => 'applications/harbormaster/phid/HarbormasterBuildStepPHIDType.php',
@ -958,6 +968,7 @@ phutil_register_library_map(array(
'HarbormasterBuildWorker' => 'applications/harbormaster/worker/HarbormasterBuildWorker.php', 'HarbormasterBuildWorker' => 'applications/harbormaster/worker/HarbormasterBuildWorker.php',
'HarbormasterBuildable' => 'applications/harbormaster/storage/HarbormasterBuildable.php', 'HarbormasterBuildable' => 'applications/harbormaster/storage/HarbormasterBuildable.php',
'HarbormasterBuildableActionController' => 'applications/harbormaster/controller/HarbormasterBuildableActionController.php', 'HarbormasterBuildableActionController' => 'applications/harbormaster/controller/HarbormasterBuildableActionController.php',
'HarbormasterBuildableAdapterInterface' => 'applications/harbormaster/herald/HarbormasterBuildableAdapterInterface.php',
'HarbormasterBuildableInterface' => 'applications/harbormaster/interface/HarbormasterBuildableInterface.php', 'HarbormasterBuildableInterface' => 'applications/harbormaster/interface/HarbormasterBuildableInterface.php',
'HarbormasterBuildableListController' => 'applications/harbormaster/controller/HarbormasterBuildableListController.php', 'HarbormasterBuildableListController' => 'applications/harbormaster/controller/HarbormasterBuildableListController.php',
'HarbormasterBuildablePHIDType' => 'applications/harbormaster/phid/HarbormasterBuildablePHIDType.php', 'HarbormasterBuildablePHIDType' => 'applications/harbormaster/phid/HarbormasterBuildablePHIDType.php',
@ -967,10 +978,12 @@ phutil_register_library_map(array(
'HarbormasterBuildableTransactionEditor' => 'applications/harbormaster/editor/HarbormasterBuildableTransactionEditor.php', 'HarbormasterBuildableTransactionEditor' => 'applications/harbormaster/editor/HarbormasterBuildableTransactionEditor.php',
'HarbormasterBuildableTransactionQuery' => 'applications/harbormaster/query/HarbormasterBuildableTransactionQuery.php', 'HarbormasterBuildableTransactionQuery' => 'applications/harbormaster/query/HarbormasterBuildableTransactionQuery.php',
'HarbormasterBuildableViewController' => 'applications/harbormaster/controller/HarbormasterBuildableViewController.php', 'HarbormasterBuildableViewController' => 'applications/harbormaster/controller/HarbormasterBuildableViewController.php',
'HarbormasterBuiltinBuildStepGroup' => 'applications/harbormaster/stepgroup/HarbormasterBuiltinBuildStepGroup.php',
'HarbormasterCommandBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterCommandBuildStepImplementation.php', 'HarbormasterCommandBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterCommandBuildStepImplementation.php',
'HarbormasterConduitAPIMethod' => 'applications/harbormaster/conduit/HarbormasterConduitAPIMethod.php', 'HarbormasterConduitAPIMethod' => 'applications/harbormaster/conduit/HarbormasterConduitAPIMethod.php',
'HarbormasterController' => 'applications/harbormaster/controller/HarbormasterController.php', 'HarbormasterController' => 'applications/harbormaster/controller/HarbormasterController.php',
'HarbormasterDAO' => 'applications/harbormaster/storage/HarbormasterDAO.php', 'HarbormasterDAO' => 'applications/harbormaster/storage/HarbormasterDAO.php',
'HarbormasterExternalBuildStepGroup' => 'applications/harbormaster/stepgroup/HarbormasterExternalBuildStepGroup.php',
'HarbormasterHTTPRequestBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterHTTPRequestBuildStepImplementation.php', 'HarbormasterHTTPRequestBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterHTTPRequestBuildStepImplementation.php',
'HarbormasterLeaseHostBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterLeaseHostBuildStepImplementation.php', 'HarbormasterLeaseHostBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterLeaseHostBuildStepImplementation.php',
'HarbormasterLintMessagesController' => 'applications/harbormaster/controller/HarbormasterLintMessagesController.php', 'HarbormasterLintMessagesController' => 'applications/harbormaster/controller/HarbormasterLintMessagesController.php',
@ -979,18 +992,22 @@ phutil_register_library_map(array(
'HarbormasterManagementBuildWorkflow' => 'applications/harbormaster/management/HarbormasterManagementBuildWorkflow.php', 'HarbormasterManagementBuildWorkflow' => 'applications/harbormaster/management/HarbormasterManagementBuildWorkflow.php',
'HarbormasterManagementUpdateWorkflow' => 'applications/harbormaster/management/HarbormasterManagementUpdateWorkflow.php', 'HarbormasterManagementUpdateWorkflow' => 'applications/harbormaster/management/HarbormasterManagementUpdateWorkflow.php',
'HarbormasterManagementWorkflow' => 'applications/harbormaster/management/HarbormasterManagementWorkflow.php', 'HarbormasterManagementWorkflow' => 'applications/harbormaster/management/HarbormasterManagementWorkflow.php',
'HarbormasterMessageType' => 'applications/harbormaster/engine/HarbormasterMessageType.php',
'HarbormasterObject' => 'applications/harbormaster/storage/HarbormasterObject.php', 'HarbormasterObject' => 'applications/harbormaster/storage/HarbormasterObject.php',
'HarbormasterOtherBuildStepGroup' => 'applications/harbormaster/stepgroup/HarbormasterOtherBuildStepGroup.php',
'HarbormasterPlanController' => 'applications/harbormaster/controller/HarbormasterPlanController.php', 'HarbormasterPlanController' => 'applications/harbormaster/controller/HarbormasterPlanController.php',
'HarbormasterPlanDisableController' => 'applications/harbormaster/controller/HarbormasterPlanDisableController.php', 'HarbormasterPlanDisableController' => 'applications/harbormaster/controller/HarbormasterPlanDisableController.php',
'HarbormasterPlanEditController' => 'applications/harbormaster/controller/HarbormasterPlanEditController.php', 'HarbormasterPlanEditController' => 'applications/harbormaster/controller/HarbormasterPlanEditController.php',
'HarbormasterPlanListController' => 'applications/harbormaster/controller/HarbormasterPlanListController.php', 'HarbormasterPlanListController' => 'applications/harbormaster/controller/HarbormasterPlanListController.php',
'HarbormasterPlanRunController' => 'applications/harbormaster/controller/HarbormasterPlanRunController.php', 'HarbormasterPlanRunController' => 'applications/harbormaster/controller/HarbormasterPlanRunController.php',
'HarbormasterPlanViewController' => 'applications/harbormaster/controller/HarbormasterPlanViewController.php', 'HarbormasterPlanViewController' => 'applications/harbormaster/controller/HarbormasterPlanViewController.php',
'HarbormasterPrototypeBuildStepGroup' => 'applications/harbormaster/stepgroup/HarbormasterPrototypeBuildStepGroup.php',
'HarbormasterPublishFragmentBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterPublishFragmentBuildStepImplementation.php', 'HarbormasterPublishFragmentBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterPublishFragmentBuildStepImplementation.php',
'HarbormasterQueryAutotargetsConduitAPIMethod' => 'applications/harbormaster/conduit/HarbormasterQueryAutotargetsConduitAPIMethod.php', 'HarbormasterQueryAutotargetsConduitAPIMethod' => 'applications/harbormaster/conduit/HarbormasterQueryAutotargetsConduitAPIMethod.php',
'HarbormasterQueryBuildablesConduitAPIMethod' => 'applications/harbormaster/conduit/HarbormasterQueryBuildablesConduitAPIMethod.php', 'HarbormasterQueryBuildablesConduitAPIMethod' => 'applications/harbormaster/conduit/HarbormasterQueryBuildablesConduitAPIMethod.php',
'HarbormasterQueryBuildsConduitAPIMethod' => 'applications/harbormaster/conduit/HarbormasterQueryBuildsConduitAPIMethod.php', 'HarbormasterQueryBuildsConduitAPIMethod' => 'applications/harbormaster/conduit/HarbormasterQueryBuildsConduitAPIMethod.php',
'HarbormasterRemarkupRule' => 'applications/harbormaster/remarkup/HarbormasterRemarkupRule.php', 'HarbormasterRemarkupRule' => 'applications/harbormaster/remarkup/HarbormasterRemarkupRule.php',
'HarbormasterRunBuildPlansHeraldAction' => 'applications/harbormaster/herald/HarbormasterRunBuildPlansHeraldAction.php',
'HarbormasterSchemaSpec' => 'applications/harbormaster/storage/HarbormasterSchemaSpec.php', 'HarbormasterSchemaSpec' => 'applications/harbormaster/storage/HarbormasterSchemaSpec.php',
'HarbormasterScratchTable' => 'applications/harbormaster/storage/HarbormasterScratchTable.php', 'HarbormasterScratchTable' => 'applications/harbormaster/storage/HarbormasterScratchTable.php',
'HarbormasterSendMessageConduitAPIMethod' => 'applications/harbormaster/conduit/HarbormasterSendMessageConduitAPIMethod.php', 'HarbormasterSendMessageConduitAPIMethod' => 'applications/harbormaster/conduit/HarbormasterSendMessageConduitAPIMethod.php',
@ -1000,6 +1017,7 @@ phutil_register_library_map(array(
'HarbormasterStepEditController' => 'applications/harbormaster/controller/HarbormasterStepEditController.php', 'HarbormasterStepEditController' => 'applications/harbormaster/controller/HarbormasterStepEditController.php',
'HarbormasterTargetEngine' => 'applications/harbormaster/engine/HarbormasterTargetEngine.php', 'HarbormasterTargetEngine' => 'applications/harbormaster/engine/HarbormasterTargetEngine.php',
'HarbormasterTargetWorker' => 'applications/harbormaster/worker/HarbormasterTargetWorker.php', 'HarbormasterTargetWorker' => 'applications/harbormaster/worker/HarbormasterTargetWorker.php',
'HarbormasterTestBuildStepGroup' => 'applications/harbormaster/stepgroup/HarbormasterTestBuildStepGroup.php',
'HarbormasterThrowExceptionBuildStep' => 'applications/harbormaster/step/HarbormasterThrowExceptionBuildStep.php', 'HarbormasterThrowExceptionBuildStep' => 'applications/harbormaster/step/HarbormasterThrowExceptionBuildStep.php',
'HarbormasterUIEventListener' => 'applications/harbormaster/event/HarbormasterUIEventListener.php', 'HarbormasterUIEventListener' => 'applications/harbormaster/event/HarbormasterUIEventListener.php',
'HarbormasterUnitMessagesController' => 'applications/harbormaster/controller/HarbormasterUnitMessagesController.php', 'HarbormasterUnitMessagesController' => 'applications/harbormaster/controller/HarbormasterUnitMessagesController.php',
@ -1007,10 +1025,13 @@ phutil_register_library_map(array(
'HarbormasterUploadArtifactBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterUploadArtifactBuildStepImplementation.php', 'HarbormasterUploadArtifactBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterUploadArtifactBuildStepImplementation.php',
'HarbormasterWaitForPreviousBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterWaitForPreviousBuildStepImplementation.php', 'HarbormasterWaitForPreviousBuildStepImplementation' => 'applications/harbormaster/step/HarbormasterWaitForPreviousBuildStepImplementation.php',
'HarbormasterWorker' => 'applications/harbormaster/worker/HarbormasterWorker.php', 'HarbormasterWorker' => 'applications/harbormaster/worker/HarbormasterWorker.php',
'HeraldAction' => 'applications/herald/action/HeraldAction.php',
'HeraldActionGroup' => 'applications/herald/action/HeraldActionGroup.php',
'HeraldActionRecord' => 'applications/herald/storage/HeraldActionRecord.php', 'HeraldActionRecord' => 'applications/herald/storage/HeraldActionRecord.php',
'HeraldAdapter' => 'applications/herald/adapter/HeraldAdapter.php', 'HeraldAdapter' => 'applications/herald/adapter/HeraldAdapter.php',
'HeraldAlwaysField' => 'applications/herald/field/HeraldAlwaysField.php', 'HeraldAlwaysField' => 'applications/herald/field/HeraldAlwaysField.php',
'HeraldAnotherRuleField' => 'applications/herald/field/HeraldAnotherRuleField.php', 'HeraldAnotherRuleField' => 'applications/herald/field/HeraldAnotherRuleField.php',
'HeraldApplicationActionGroup' => 'applications/herald/action/HeraldApplicationActionGroup.php',
'HeraldApplyTranscript' => 'applications/herald/storage/transcript/HeraldApplyTranscript.php', 'HeraldApplyTranscript' => 'applications/herald/storage/transcript/HeraldApplyTranscript.php',
'HeraldBasicFieldGroup' => 'applications/herald/field/HeraldBasicFieldGroup.php', 'HeraldBasicFieldGroup' => 'applications/herald/field/HeraldBasicFieldGroup.php',
'HeraldCommitAdapter' => 'applications/diffusion/herald/HeraldCommitAdapter.php', 'HeraldCommitAdapter' => 'applications/diffusion/herald/HeraldCommitAdapter.php',
@ -1018,12 +1039,12 @@ phutil_register_library_map(array(
'HeraldConditionTranscript' => 'applications/herald/storage/transcript/HeraldConditionTranscript.php', 'HeraldConditionTranscript' => 'applications/herald/storage/transcript/HeraldConditionTranscript.php',
'HeraldContentSourceField' => 'applications/herald/field/HeraldContentSourceField.php', 'HeraldContentSourceField' => 'applications/herald/field/HeraldContentSourceField.php',
'HeraldController' => 'applications/herald/controller/HeraldController.php', 'HeraldController' => 'applications/herald/controller/HeraldController.php',
'HeraldCustomAction' => 'applications/herald/extension/HeraldCustomAction.php',
'HeraldDAO' => 'applications/herald/storage/HeraldDAO.php', 'HeraldDAO' => 'applications/herald/storage/HeraldDAO.php',
'HeraldDifferentialAdapter' => 'applications/differential/herald/HeraldDifferentialAdapter.php', 'HeraldDifferentialAdapter' => 'applications/differential/herald/HeraldDifferentialAdapter.php',
'HeraldDifferentialDiffAdapter' => 'applications/differential/herald/HeraldDifferentialDiffAdapter.php', 'HeraldDifferentialDiffAdapter' => 'applications/differential/herald/HeraldDifferentialDiffAdapter.php',
'HeraldDifferentialRevisionAdapter' => 'applications/differential/herald/HeraldDifferentialRevisionAdapter.php', 'HeraldDifferentialRevisionAdapter' => 'applications/differential/herald/HeraldDifferentialRevisionAdapter.php',
'HeraldDisableController' => 'applications/herald/controller/HeraldDisableController.php', 'HeraldDisableController' => 'applications/herald/controller/HeraldDisableController.php',
'HeraldDoNothingAction' => 'applications/herald/action/HeraldDoNothingAction.php',
'HeraldEditFieldGroup' => 'applications/herald/field/HeraldEditFieldGroup.php', 'HeraldEditFieldGroup' => 'applications/herald/field/HeraldEditFieldGroup.php',
'HeraldEffect' => 'applications/herald/engine/HeraldEffect.php', 'HeraldEffect' => 'applications/herald/engine/HeraldEffect.php',
'HeraldEmptyFieldValue' => 'applications/herald/value/HeraldEmptyFieldValue.php', 'HeraldEmptyFieldValue' => 'applications/herald/value/HeraldEmptyFieldValue.php',
@ -1032,17 +1053,20 @@ phutil_register_library_map(array(
'HeraldFieldGroup' => 'applications/herald/field/HeraldFieldGroup.php', 'HeraldFieldGroup' => 'applications/herald/field/HeraldFieldGroup.php',
'HeraldFieldTestCase' => 'applications/herald/field/__tests__/HeraldFieldTestCase.php', 'HeraldFieldTestCase' => 'applications/herald/field/__tests__/HeraldFieldTestCase.php',
'HeraldFieldValue' => 'applications/herald/value/HeraldFieldValue.php', 'HeraldFieldValue' => 'applications/herald/value/HeraldFieldValue.php',
'HeraldGroup' => 'applications/herald/group/HeraldGroup.php',
'HeraldInvalidActionException' => 'applications/herald/engine/exception/HeraldInvalidActionException.php', 'HeraldInvalidActionException' => 'applications/herald/engine/exception/HeraldInvalidActionException.php',
'HeraldInvalidConditionException' => 'applications/herald/engine/exception/HeraldInvalidConditionException.php', 'HeraldInvalidConditionException' => 'applications/herald/engine/exception/HeraldInvalidConditionException.php',
'HeraldManageGlobalRulesCapability' => 'applications/herald/capability/HeraldManageGlobalRulesCapability.php', 'HeraldManageGlobalRulesCapability' => 'applications/herald/capability/HeraldManageGlobalRulesCapability.php',
'HeraldManiphestTaskAdapter' => 'applications/maniphest/herald/HeraldManiphestTaskAdapter.php', 'HeraldManiphestTaskAdapter' => 'applications/maniphest/herald/HeraldManiphestTaskAdapter.php',
'HeraldNewController' => 'applications/herald/controller/HeraldNewController.php', 'HeraldNewController' => 'applications/herald/controller/HeraldNewController.php',
'HeraldNewObjectField' => 'applications/herald/field/HeraldNewObjectField.php', 'HeraldNewObjectField' => 'applications/herald/field/HeraldNewObjectField.php',
'HeraldNotifyActionGroup' => 'applications/herald/action/HeraldNotifyActionGroup.php',
'HeraldObjectTranscript' => 'applications/herald/storage/transcript/HeraldObjectTranscript.php', 'HeraldObjectTranscript' => 'applications/herald/storage/transcript/HeraldObjectTranscript.php',
'HeraldPholioMockAdapter' => 'applications/pholio/herald/HeraldPholioMockAdapter.php', 'HeraldPholioMockAdapter' => 'applications/pholio/herald/HeraldPholioMockAdapter.php',
'HeraldPreCommitAdapter' => 'applications/diffusion/herald/HeraldPreCommitAdapter.php', 'HeraldPreCommitAdapter' => 'applications/diffusion/herald/HeraldPreCommitAdapter.php',
'HeraldPreCommitContentAdapter' => 'applications/diffusion/herald/HeraldPreCommitContentAdapter.php', 'HeraldPreCommitContentAdapter' => 'applications/diffusion/herald/HeraldPreCommitContentAdapter.php',
'HeraldPreCommitRefAdapter' => 'applications/diffusion/herald/HeraldPreCommitRefAdapter.php', 'HeraldPreCommitRefAdapter' => 'applications/diffusion/herald/HeraldPreCommitRefAdapter.php',
'HeraldPreventActionGroup' => 'applications/herald/action/HeraldPreventActionGroup.php',
'HeraldProjectsField' => 'applications/project/herald/HeraldProjectsField.php', 'HeraldProjectsField' => 'applications/project/herald/HeraldProjectsField.php',
'HeraldRecursiveConditionsException' => 'applications/herald/engine/exception/HeraldRecursiveConditionsException.php', 'HeraldRecursiveConditionsException' => 'applications/herald/engine/exception/HeraldRecursiveConditionsException.php',
'HeraldRelatedFieldGroup' => 'applications/herald/field/HeraldRelatedFieldGroup.php', 'HeraldRelatedFieldGroup' => 'applications/herald/field/HeraldRelatedFieldGroup.php',
@ -1065,6 +1089,7 @@ phutil_register_library_map(array(
'HeraldSelectFieldValue' => 'applications/herald/value/HeraldSelectFieldValue.php', 'HeraldSelectFieldValue' => 'applications/herald/value/HeraldSelectFieldValue.php',
'HeraldSpaceField' => 'applications/spaces/herald/HeraldSpaceField.php', 'HeraldSpaceField' => 'applications/spaces/herald/HeraldSpaceField.php',
'HeraldSubscribersField' => 'applications/subscriptions/herald/HeraldSubscribersField.php', 'HeraldSubscribersField' => 'applications/subscriptions/herald/HeraldSubscribersField.php',
'HeraldSupportActionGroup' => 'applications/herald/action/HeraldSupportActionGroup.php',
'HeraldSupportFieldGroup' => 'applications/herald/field/HeraldSupportFieldGroup.php', 'HeraldSupportFieldGroup' => 'applications/herald/field/HeraldSupportFieldGroup.php',
'HeraldTestConsoleController' => 'applications/herald/controller/HeraldTestConsoleController.php', 'HeraldTestConsoleController' => 'applications/herald/controller/HeraldTestConsoleController.php',
'HeraldTextFieldValue' => 'applications/herald/value/HeraldTextFieldValue.php', 'HeraldTextFieldValue' => 'applications/herald/value/HeraldTextFieldValue.php',
@ -1077,6 +1102,7 @@ phutil_register_library_map(array(
'HeraldTranscriptQuery' => 'applications/herald/query/HeraldTranscriptQuery.php', 'HeraldTranscriptQuery' => 'applications/herald/query/HeraldTranscriptQuery.php',
'HeraldTranscriptSearchEngine' => 'applications/herald/query/HeraldTranscriptSearchEngine.php', 'HeraldTranscriptSearchEngine' => 'applications/herald/query/HeraldTranscriptSearchEngine.php',
'HeraldTranscriptTestCase' => 'applications/herald/storage/__tests__/HeraldTranscriptTestCase.php', 'HeraldTranscriptTestCase' => 'applications/herald/storage/__tests__/HeraldTranscriptTestCase.php',
'HeraldUtilityActionGroup' => 'applications/herald/action/HeraldUtilityActionGroup.php',
'Javelin' => 'infrastructure/javelin/Javelin.php', 'Javelin' => 'infrastructure/javelin/Javelin.php',
'JavelinReactorUIExample' => 'applications/uiexample/examples/JavelinReactorUIExample.php', 'JavelinReactorUIExample' => 'applications/uiexample/examples/JavelinReactorUIExample.php',
'JavelinUIExample' => 'applications/uiexample/examples/JavelinUIExample.php', 'JavelinUIExample' => 'applications/uiexample/examples/JavelinUIExample.php',
@ -1110,6 +1136,7 @@ phutil_register_library_map(array(
'LegalpadMailReceiver' => 'applications/legalpad/mail/LegalpadMailReceiver.php', 'LegalpadMailReceiver' => 'applications/legalpad/mail/LegalpadMailReceiver.php',
'LegalpadObjectNeedsSignatureEdgeType' => 'applications/legalpad/edge/LegalpadObjectNeedsSignatureEdgeType.php', 'LegalpadObjectNeedsSignatureEdgeType' => 'applications/legalpad/edge/LegalpadObjectNeedsSignatureEdgeType.php',
'LegalpadReplyHandler' => 'applications/legalpad/mail/LegalpadReplyHandler.php', 'LegalpadReplyHandler' => 'applications/legalpad/mail/LegalpadReplyHandler.php',
'LegalpadRequireSignatureHeraldAction' => 'applications/legalpad/herald/LegalpadRequireSignatureHeraldAction.php',
'LegalpadSchemaSpec' => 'applications/legalpad/storage/LegalpadSchemaSpec.php', 'LegalpadSchemaSpec' => 'applications/legalpad/storage/LegalpadSchemaSpec.php',
'LegalpadSignatureNeededByObjectEdgeType' => 'applications/legalpad/edge/LegalpadSignatureNeededByObjectEdgeType.php', 'LegalpadSignatureNeededByObjectEdgeType' => 'applications/legalpad/edge/LegalpadSignatureNeededByObjectEdgeType.php',
'LegalpadTransaction' => 'applications/legalpad/storage/LegalpadTransaction.php', 'LegalpadTransaction' => 'applications/legalpad/storage/LegalpadTransaction.php',
@ -1178,6 +1205,9 @@ phutil_register_library_map(array(
'ManiphestStatusEmailCommand' => 'applications/maniphest/command/ManiphestStatusEmailCommand.php', 'ManiphestStatusEmailCommand' => 'applications/maniphest/command/ManiphestStatusEmailCommand.php',
'ManiphestSubpriorityController' => 'applications/maniphest/controller/ManiphestSubpriorityController.php', 'ManiphestSubpriorityController' => 'applications/maniphest/controller/ManiphestSubpriorityController.php',
'ManiphestTask' => 'applications/maniphest/storage/ManiphestTask.php', 'ManiphestTask' => 'applications/maniphest/storage/ManiphestTask.php',
'ManiphestTaskAssignHeraldAction' => 'applications/maniphest/herald/ManiphestTaskAssignHeraldAction.php',
'ManiphestTaskAssignOtherHeraldAction' => 'applications/maniphest/herald/ManiphestTaskAssignOtherHeraldAction.php',
'ManiphestTaskAssignSelfHeraldAction' => 'applications/maniphest/herald/ManiphestTaskAssignSelfHeraldAction.php',
'ManiphestTaskAssigneeHeraldField' => 'applications/maniphest/herald/ManiphestTaskAssigneeHeraldField.php', 'ManiphestTaskAssigneeHeraldField' => 'applications/maniphest/herald/ManiphestTaskAssigneeHeraldField.php',
'ManiphestTaskAuthorHeraldField' => 'applications/maniphest/herald/ManiphestTaskAuthorHeraldField.php', 'ManiphestTaskAuthorHeraldField' => 'applications/maniphest/herald/ManiphestTaskAuthorHeraldField.php',
'ManiphestTaskAuthorPolicyRule' => 'applications/maniphest/policyrule/ManiphestTaskAuthorPolicyRule.php', 'ManiphestTaskAuthorPolicyRule' => 'applications/maniphest/policyrule/ManiphestTaskAuthorPolicyRule.php',
@ -1631,10 +1661,12 @@ phutil_register_library_map(array(
'PhabricatorBadgesEditor' => 'applications/badges/editor/PhabricatorBadgesEditor.php', 'PhabricatorBadgesEditor' => 'applications/badges/editor/PhabricatorBadgesEditor.php',
'PhabricatorBadgesIcon' => 'applications/badges/icon/PhabricatorBadgesIcon.php', 'PhabricatorBadgesIcon' => 'applications/badges/icon/PhabricatorBadgesIcon.php',
'PhabricatorBadgesListController' => 'applications/badges/controller/PhabricatorBadgesListController.php', 'PhabricatorBadgesListController' => 'applications/badges/controller/PhabricatorBadgesListController.php',
'PhabricatorBadgesMailReceiver' => 'applications/badges/mail/PhabricatorBadgesMailReceiver.php',
'PhabricatorBadgesPHIDType' => 'applications/badges/phid/PhabricatorBadgesPHIDType.php', 'PhabricatorBadgesPHIDType' => 'applications/badges/phid/PhabricatorBadgesPHIDType.php',
'PhabricatorBadgesQuery' => 'applications/badges/query/PhabricatorBadgesQuery.php', 'PhabricatorBadgesQuery' => 'applications/badges/query/PhabricatorBadgesQuery.php',
'PhabricatorBadgesRecipientsListView' => 'applications/badges/view/PhabricatorBadgesRecipientsListView.php', 'PhabricatorBadgesRecipientsListView' => 'applications/badges/view/PhabricatorBadgesRecipientsListView.php',
'PhabricatorBadgesRemoveRecipientsController' => 'applications/badges/controller/PhabricatorBadgesRemoveRecipientsController.php', 'PhabricatorBadgesRemoveRecipientsController' => 'applications/badges/controller/PhabricatorBadgesRemoveRecipientsController.php',
'PhabricatorBadgesReplyHandler' => 'applications/badges/mail/PhabricatorBadgesReplyHandler.php',
'PhabricatorBadgesSchemaSpec' => 'applications/badges/storage/PhabricatorBadgesSchemaSpec.php', 'PhabricatorBadgesSchemaSpec' => 'applications/badges/storage/PhabricatorBadgesSchemaSpec.php',
'PhabricatorBadgesSearchEngine' => 'applications/badges/query/PhabricatorBadgesSearchEngine.php', 'PhabricatorBadgesSearchEngine' => 'applications/badges/query/PhabricatorBadgesSearchEngine.php',
'PhabricatorBadgesTransaction' => 'applications/badges/storage/PhabricatorBadgesTransaction.php', 'PhabricatorBadgesTransaction' => 'applications/badges/storage/PhabricatorBadgesTransaction.php',
@ -1830,6 +1862,7 @@ phutil_register_library_map(array(
'PhabricatorCountdownEditController' => 'applications/countdown/controller/PhabricatorCountdownEditController.php', 'PhabricatorCountdownEditController' => 'applications/countdown/controller/PhabricatorCountdownEditController.php',
'PhabricatorCountdownEditor' => 'applications/countdown/editor/PhabricatorCountdownEditor.php', 'PhabricatorCountdownEditor' => 'applications/countdown/editor/PhabricatorCountdownEditor.php',
'PhabricatorCountdownListController' => 'applications/countdown/controller/PhabricatorCountdownListController.php', 'PhabricatorCountdownListController' => 'applications/countdown/controller/PhabricatorCountdownListController.php',
'PhabricatorCountdownMailReceiver' => 'applications/countdown/mail/PhabricatorCountdownMailReceiver.php',
'PhabricatorCountdownQuery' => 'applications/countdown/query/PhabricatorCountdownQuery.php', 'PhabricatorCountdownQuery' => 'applications/countdown/query/PhabricatorCountdownQuery.php',
'PhabricatorCountdownRemarkupRule' => 'applications/countdown/remarkup/PhabricatorCountdownRemarkupRule.php', 'PhabricatorCountdownRemarkupRule' => 'applications/countdown/remarkup/PhabricatorCountdownRemarkupRule.php',
'PhabricatorCountdownReplyHandler' => 'applications/countdown/mail/PhabricatorCountdownReplyHandler.php', 'PhabricatorCountdownReplyHandler' => 'applications/countdown/mail/PhabricatorCountdownReplyHandler.php',
@ -2099,6 +2132,7 @@ phutil_register_library_map(array(
'PhabricatorFilesManagementWorkflow' => 'applications/files/management/PhabricatorFilesManagementWorkflow.php', 'PhabricatorFilesManagementWorkflow' => 'applications/files/management/PhabricatorFilesManagementWorkflow.php',
'PhabricatorFilesOutboundRequestAction' => 'applications/files/action/PhabricatorFilesOutboundRequestAction.php', 'PhabricatorFilesOutboundRequestAction' => 'applications/files/action/PhabricatorFilesOutboundRequestAction.php',
'PhabricatorFlag' => 'applications/flag/storage/PhabricatorFlag.php', 'PhabricatorFlag' => 'applications/flag/storage/PhabricatorFlag.php',
'PhabricatorFlagAddFlagHeraldAction' => 'applications/flag/herald/PhabricatorFlagAddFlagHeraldAction.php',
'PhabricatorFlagColor' => 'applications/flag/constants/PhabricatorFlagColor.php', 'PhabricatorFlagColor' => 'applications/flag/constants/PhabricatorFlagColor.php',
'PhabricatorFlagConstants' => 'applications/flag/constants/PhabricatorFlagConstants.php', 'PhabricatorFlagConstants' => 'applications/flag/constants/PhabricatorFlagConstants.php',
'PhabricatorFlagController' => 'applications/flag/controller/PhabricatorFlagController.php', 'PhabricatorFlagController' => 'applications/flag/controller/PhabricatorFlagController.php',
@ -2222,6 +2256,7 @@ phutil_register_library_map(array(
'PhabricatorMailManagementSendTestWorkflow' => 'applications/metamta/management/PhabricatorMailManagementSendTestWorkflow.php', 'PhabricatorMailManagementSendTestWorkflow' => 'applications/metamta/management/PhabricatorMailManagementSendTestWorkflow.php',
'PhabricatorMailManagementShowInboundWorkflow' => 'applications/metamta/management/PhabricatorMailManagementShowInboundWorkflow.php', 'PhabricatorMailManagementShowInboundWorkflow' => 'applications/metamta/management/PhabricatorMailManagementShowInboundWorkflow.php',
'PhabricatorMailManagementShowOutboundWorkflow' => 'applications/metamta/management/PhabricatorMailManagementShowOutboundWorkflow.php', 'PhabricatorMailManagementShowOutboundWorkflow' => 'applications/metamta/management/PhabricatorMailManagementShowOutboundWorkflow.php',
'PhabricatorMailManagementVolumeWorkflow' => 'applications/metamta/management/PhabricatorMailManagementVolumeWorkflow.php',
'PhabricatorMailManagementWorkflow' => 'applications/metamta/management/PhabricatorMailManagementWorkflow.php', 'PhabricatorMailManagementWorkflow' => 'applications/metamta/management/PhabricatorMailManagementWorkflow.php',
'PhabricatorMailReceiver' => 'applications/metamta/receiver/PhabricatorMailReceiver.php', 'PhabricatorMailReceiver' => 'applications/metamta/receiver/PhabricatorMailReceiver.php',
'PhabricatorMailReceiverTestCase' => 'applications/metamta/receiver/__tests__/PhabricatorMailReceiverTestCase.php', 'PhabricatorMailReceiverTestCase' => 'applications/metamta/receiver/__tests__/PhabricatorMailReceiverTestCase.php',
@ -2262,6 +2297,9 @@ phutil_register_library_map(array(
'PhabricatorMetaMTADAO' => 'applications/metamta/storage/PhabricatorMetaMTADAO.php', 'PhabricatorMetaMTADAO' => 'applications/metamta/storage/PhabricatorMetaMTADAO.php',
'PhabricatorMetaMTAEmailBodyParser' => 'applications/metamta/parser/PhabricatorMetaMTAEmailBodyParser.php', 'PhabricatorMetaMTAEmailBodyParser' => 'applications/metamta/parser/PhabricatorMetaMTAEmailBodyParser.php',
'PhabricatorMetaMTAEmailBodyParserTestCase' => 'applications/metamta/parser/__tests__/PhabricatorMetaMTAEmailBodyParserTestCase.php', 'PhabricatorMetaMTAEmailBodyParserTestCase' => 'applications/metamta/parser/__tests__/PhabricatorMetaMTAEmailBodyParserTestCase.php',
'PhabricatorMetaMTAEmailHeraldAction' => 'applications/metamta/herald/PhabricatorMetaMTAEmailHeraldAction.php',
'PhabricatorMetaMTAEmailOthersHeraldAction' => 'applications/metamta/herald/PhabricatorMetaMTAEmailOthersHeraldAction.php',
'PhabricatorMetaMTAEmailSelfHeraldAction' => 'applications/metamta/herald/PhabricatorMetaMTAEmailSelfHeraldAction.php',
'PhabricatorMetaMTAErrorMailAction' => 'applications/metamta/action/PhabricatorMetaMTAErrorMailAction.php', 'PhabricatorMetaMTAErrorMailAction' => 'applications/metamta/action/PhabricatorMetaMTAErrorMailAction.php',
'PhabricatorMetaMTAMail' => 'applications/metamta/storage/PhabricatorMetaMTAMail.php', 'PhabricatorMetaMTAMail' => 'applications/metamta/storage/PhabricatorMetaMTAMail.php',
'PhabricatorMetaMTAMailBody' => 'applications/metamta/view/PhabricatorMetaMTAMailBody.php', 'PhabricatorMetaMTAMailBody' => 'applications/metamta/view/PhabricatorMetaMTAMailBody.php',
@ -2525,6 +2563,7 @@ phutil_register_library_map(array(
'PhabricatorPolicyType' => 'applications/policy/constants/PhabricatorPolicyType.php', 'PhabricatorPolicyType' => 'applications/policy/constants/PhabricatorPolicyType.php',
'PhabricatorPonderApplication' => 'applications/ponder/application/PhabricatorPonderApplication.php', 'PhabricatorPonderApplication' => 'applications/ponder/application/PhabricatorPonderApplication.php',
'PhabricatorProject' => 'applications/project/storage/PhabricatorProject.php', 'PhabricatorProject' => 'applications/project/storage/PhabricatorProject.php',
'PhabricatorProjectAddHeraldAction' => 'applications/project/herald/PhabricatorProjectAddHeraldAction.php',
'PhabricatorProjectApplication' => 'applications/project/application/PhabricatorProjectApplication.php', 'PhabricatorProjectApplication' => 'applications/project/application/PhabricatorProjectApplication.php',
'PhabricatorProjectArchiveController' => 'applications/project/controller/PhabricatorProjectArchiveController.php', 'PhabricatorProjectArchiveController' => 'applications/project/controller/PhabricatorProjectArchiveController.php',
'PhabricatorProjectBoardController' => 'applications/project/controller/PhabricatorProjectBoardController.php', 'PhabricatorProjectBoardController' => 'applications/project/controller/PhabricatorProjectBoardController.php',
@ -2557,6 +2596,7 @@ phutil_register_library_map(array(
'PhabricatorProjectEditPictureController' => 'applications/project/controller/PhabricatorProjectEditPictureController.php', 'PhabricatorProjectEditPictureController' => 'applications/project/controller/PhabricatorProjectEditPictureController.php',
'PhabricatorProjectEditorTestCase' => 'applications/project/editor/__tests__/PhabricatorProjectEditorTestCase.php', 'PhabricatorProjectEditorTestCase' => 'applications/project/editor/__tests__/PhabricatorProjectEditorTestCase.php',
'PhabricatorProjectFeedController' => 'applications/project/controller/PhabricatorProjectFeedController.php', 'PhabricatorProjectFeedController' => 'applications/project/controller/PhabricatorProjectFeedController.php',
'PhabricatorProjectHeraldAction' => 'applications/project/herald/PhabricatorProjectHeraldAction.php',
'PhabricatorProjectIcon' => 'applications/project/icon/PhabricatorProjectIcon.php', 'PhabricatorProjectIcon' => 'applications/project/icon/PhabricatorProjectIcon.php',
'PhabricatorProjectInterface' => 'applications/project/interface/PhabricatorProjectInterface.php', 'PhabricatorProjectInterface' => 'applications/project/interface/PhabricatorProjectInterface.php',
'PhabricatorProjectListController' => 'applications/project/controller/PhabricatorProjectListController.php', 'PhabricatorProjectListController' => 'applications/project/controller/PhabricatorProjectListController.php',
@ -2578,6 +2618,7 @@ phutil_register_library_map(array(
'PhabricatorProjectProjectHasObjectEdgeType' => 'applications/project/edge/PhabricatorProjectProjectHasObjectEdgeType.php', 'PhabricatorProjectProjectHasObjectEdgeType' => 'applications/project/edge/PhabricatorProjectProjectHasObjectEdgeType.php',
'PhabricatorProjectProjectPHIDType' => 'applications/project/phid/PhabricatorProjectProjectPHIDType.php', 'PhabricatorProjectProjectPHIDType' => 'applications/project/phid/PhabricatorProjectProjectPHIDType.php',
'PhabricatorProjectQuery' => 'applications/project/query/PhabricatorProjectQuery.php', 'PhabricatorProjectQuery' => 'applications/project/query/PhabricatorProjectQuery.php',
'PhabricatorProjectRemoveHeraldAction' => 'applications/project/herald/PhabricatorProjectRemoveHeraldAction.php',
'PhabricatorProjectSchemaSpec' => 'applications/project/storage/PhabricatorProjectSchemaSpec.php', 'PhabricatorProjectSchemaSpec' => 'applications/project/storage/PhabricatorProjectSchemaSpec.php',
'PhabricatorProjectSearchEngine' => 'applications/project/query/PhabricatorProjectSearchEngine.php', 'PhabricatorProjectSearchEngine' => 'applications/project/query/PhabricatorProjectSearchEngine.php',
'PhabricatorProjectSearchField' => 'applications/project/searchfield/PhabricatorProjectSearchField.php', 'PhabricatorProjectSearchField' => 'applications/project/searchfield/PhabricatorProjectSearchField.php',
@ -2789,11 +2830,13 @@ phutil_register_library_map(array(
'PhabricatorSlowvoteEditController' => 'applications/slowvote/controller/PhabricatorSlowvoteEditController.php', 'PhabricatorSlowvoteEditController' => 'applications/slowvote/controller/PhabricatorSlowvoteEditController.php',
'PhabricatorSlowvoteEditor' => 'applications/slowvote/editor/PhabricatorSlowvoteEditor.php', 'PhabricatorSlowvoteEditor' => 'applications/slowvote/editor/PhabricatorSlowvoteEditor.php',
'PhabricatorSlowvoteListController' => 'applications/slowvote/controller/PhabricatorSlowvoteListController.php', 'PhabricatorSlowvoteListController' => 'applications/slowvote/controller/PhabricatorSlowvoteListController.php',
'PhabricatorSlowvoteMailReceiver' => 'applications/slowvote/mail/PhabricatorSlowvoteMailReceiver.php',
'PhabricatorSlowvoteOption' => 'applications/slowvote/storage/PhabricatorSlowvoteOption.php', 'PhabricatorSlowvoteOption' => 'applications/slowvote/storage/PhabricatorSlowvoteOption.php',
'PhabricatorSlowvotePoll' => 'applications/slowvote/storage/PhabricatorSlowvotePoll.php', 'PhabricatorSlowvotePoll' => 'applications/slowvote/storage/PhabricatorSlowvotePoll.php',
'PhabricatorSlowvotePollController' => 'applications/slowvote/controller/PhabricatorSlowvotePollController.php', 'PhabricatorSlowvotePollController' => 'applications/slowvote/controller/PhabricatorSlowvotePollController.php',
'PhabricatorSlowvotePollPHIDType' => 'applications/slowvote/phid/PhabricatorSlowvotePollPHIDType.php', 'PhabricatorSlowvotePollPHIDType' => 'applications/slowvote/phid/PhabricatorSlowvotePollPHIDType.php',
'PhabricatorSlowvoteQuery' => 'applications/slowvote/query/PhabricatorSlowvoteQuery.php', 'PhabricatorSlowvoteQuery' => 'applications/slowvote/query/PhabricatorSlowvoteQuery.php',
'PhabricatorSlowvoteReplyHandler' => 'applications/slowvote/mail/PhabricatorSlowvoteReplyHandler.php',
'PhabricatorSlowvoteSchemaSpec' => 'applications/slowvote/storage/PhabricatorSlowvoteSchemaSpec.php', 'PhabricatorSlowvoteSchemaSpec' => 'applications/slowvote/storage/PhabricatorSlowvoteSchemaSpec.php',
'PhabricatorSlowvoteSearchEngine' => 'applications/slowvote/query/PhabricatorSlowvoteSearchEngine.php', 'PhabricatorSlowvoteSearchEngine' => 'applications/slowvote/query/PhabricatorSlowvoteSearchEngine.php',
'PhabricatorSlowvoteTransaction' => 'applications/slowvote/storage/PhabricatorSlowvoteTransaction.php', 'PhabricatorSlowvoteTransaction' => 'applications/slowvote/storage/PhabricatorSlowvoteTransaction.php',
@ -2866,10 +2909,15 @@ phutil_register_library_map(array(
'PhabricatorSubscribedToObjectEdgeType' => 'applications/transactions/edges/PhabricatorSubscribedToObjectEdgeType.php', 'PhabricatorSubscribedToObjectEdgeType' => 'applications/transactions/edges/PhabricatorSubscribedToObjectEdgeType.php',
'PhabricatorSubscribersQuery' => 'applications/subscriptions/query/PhabricatorSubscribersQuery.php', 'PhabricatorSubscribersQuery' => 'applications/subscriptions/query/PhabricatorSubscribersQuery.php',
'PhabricatorSubscriptionTriggerClock' => 'infrastructure/daemon/workers/clock/PhabricatorSubscriptionTriggerClock.php', 'PhabricatorSubscriptionTriggerClock' => 'infrastructure/daemon/workers/clock/PhabricatorSubscriptionTriggerClock.php',
'PhabricatorSubscriptionsAddSelfHeraldAction' => 'applications/subscriptions/herald/PhabricatorSubscriptionsAddSelfHeraldAction.php',
'PhabricatorSubscriptionsAddSubscribersHeraldAction' => 'applications/subscriptions/herald/PhabricatorSubscriptionsAddSubscribersHeraldAction.php',
'PhabricatorSubscriptionsApplication' => 'applications/subscriptions/application/PhabricatorSubscriptionsApplication.php', 'PhabricatorSubscriptionsApplication' => 'applications/subscriptions/application/PhabricatorSubscriptionsApplication.php',
'PhabricatorSubscriptionsEditController' => 'applications/subscriptions/controller/PhabricatorSubscriptionsEditController.php', 'PhabricatorSubscriptionsEditController' => 'applications/subscriptions/controller/PhabricatorSubscriptionsEditController.php',
'PhabricatorSubscriptionsEditor' => 'applications/subscriptions/editor/PhabricatorSubscriptionsEditor.php', 'PhabricatorSubscriptionsEditor' => 'applications/subscriptions/editor/PhabricatorSubscriptionsEditor.php',
'PhabricatorSubscriptionsHeraldAction' => 'applications/subscriptions/herald/PhabricatorSubscriptionsHeraldAction.php',
'PhabricatorSubscriptionsListController' => 'applications/subscriptions/controller/PhabricatorSubscriptionsListController.php', 'PhabricatorSubscriptionsListController' => 'applications/subscriptions/controller/PhabricatorSubscriptionsListController.php',
'PhabricatorSubscriptionsRemoveSelfHeraldAction' => 'applications/subscriptions/herald/PhabricatorSubscriptionsRemoveSelfHeraldAction.php',
'PhabricatorSubscriptionsRemoveSubscribersHeraldAction' => 'applications/subscriptions/herald/PhabricatorSubscriptionsRemoveSubscribersHeraldAction.php',
'PhabricatorSubscriptionsSubscribeEmailCommand' => 'applications/subscriptions/command/PhabricatorSubscriptionsSubscribeEmailCommand.php', 'PhabricatorSubscriptionsSubscribeEmailCommand' => 'applications/subscriptions/command/PhabricatorSubscriptionsSubscribeEmailCommand.php',
'PhabricatorSubscriptionsSubscribersPolicyRule' => 'applications/subscriptions/policyrule/PhabricatorSubscriptionsSubscribersPolicyRule.php', 'PhabricatorSubscriptionsSubscribersPolicyRule' => 'applications/subscriptions/policyrule/PhabricatorSubscriptionsSubscribersPolicyRule.php',
'PhabricatorSubscriptionsTransactionController' => 'applications/subscriptions/controller/PhabricatorSubscriptionsTransactionController.php', 'PhabricatorSubscriptionsTransactionController' => 'applications/subscriptions/controller/PhabricatorSubscriptionsTransactionController.php',
@ -2937,7 +2985,6 @@ phutil_register_library_map(array(
'PhabricatorTrivialTestCase' => 'infrastructure/testing/__tests__/PhabricatorTrivialTestCase.php', 'PhabricatorTrivialTestCase' => 'infrastructure/testing/__tests__/PhabricatorTrivialTestCase.php',
'PhabricatorTwitchAuthProvider' => 'applications/auth/provider/PhabricatorTwitchAuthProvider.php', 'PhabricatorTwitchAuthProvider' => 'applications/auth/provider/PhabricatorTwitchAuthProvider.php',
'PhabricatorTwitterAuthProvider' => 'applications/auth/provider/PhabricatorTwitterAuthProvider.php', 'PhabricatorTwitterAuthProvider' => 'applications/auth/provider/PhabricatorTwitterAuthProvider.php',
'PhabricatorTwoColumnUIExample' => 'applications/uiexample/examples/PhabricatorTwoColumnUIExample.php',
'PhabricatorTypeaheadApplication' => 'applications/typeahead/application/PhabricatorTypeaheadApplication.php', 'PhabricatorTypeaheadApplication' => 'applications/typeahead/application/PhabricatorTypeaheadApplication.php',
'PhabricatorTypeaheadCompositeDatasource' => 'applications/typeahead/datasource/PhabricatorTypeaheadCompositeDatasource.php', 'PhabricatorTypeaheadCompositeDatasource' => 'applications/typeahead/datasource/PhabricatorTypeaheadCompositeDatasource.php',
'PhabricatorTypeaheadDatasource' => 'applications/typeahead/datasource/PhabricatorTypeaheadDatasource.php', 'PhabricatorTypeaheadDatasource' => 'applications/typeahead/datasource/PhabricatorTypeaheadDatasource.php',
@ -3357,6 +3404,8 @@ phutil_register_library_map(array(
'PonderEditor' => 'applications/ponder/editor/PonderEditor.php', 'PonderEditor' => 'applications/ponder/editor/PonderEditor.php',
'PonderQuestion' => 'applications/ponder/storage/PonderQuestion.php', 'PonderQuestion' => 'applications/ponder/storage/PonderQuestion.php',
'PonderQuestionCommentController' => 'applications/ponder/controller/PonderQuestionCommentController.php', 'PonderQuestionCommentController' => 'applications/ponder/controller/PonderQuestionCommentController.php',
'PonderQuestionDefaultEditCapability' => 'applications/ponder/capability/PonderQuestionDefaultEditCapability.php',
'PonderQuestionDefaultViewCapability' => 'applications/ponder/capability/PonderQuestionDefaultViewCapability.php',
'PonderQuestionEditController' => 'applications/ponder/controller/PonderQuestionEditController.php', 'PonderQuestionEditController' => 'applications/ponder/controller/PonderQuestionEditController.php',
'PonderQuestionEditor' => 'applications/ponder/editor/PonderQuestionEditor.php', 'PonderQuestionEditor' => 'applications/ponder/editor/PonderQuestionEditor.php',
'PonderQuestionHasVotingUserEdgeType' => 'applications/ponder/edge/PonderQuestionHasVotingUserEdgeType.php', 'PonderQuestionHasVotingUserEdgeType' => 'applications/ponder/edge/PonderQuestionHasVotingUserEdgeType.php',
@ -3716,7 +3765,6 @@ phutil_register_library_map(array(
'AphrontTableView' => 'AphrontView', 'AphrontTableView' => 'AphrontView',
'AphrontTagView' => 'AphrontView', 'AphrontTagView' => 'AphrontView',
'AphrontTokenizerTemplateView' => 'AphrontView', 'AphrontTokenizerTemplateView' => 'AphrontView',
'AphrontTwoColumnView' => 'AphrontView',
'AphrontTypeaheadTemplateView' => 'AphrontView', 'AphrontTypeaheadTemplateView' => 'AphrontView',
'AphrontURIMapper' => 'Phobject', 'AphrontURIMapper' => 'Phobject',
'AphrontUnhandledExceptionResponse' => 'AphrontStandaloneHTMLResponse', 'AphrontUnhandledExceptionResponse' => 'AphrontStandaloneHTMLResponse',
@ -3868,6 +3916,7 @@ phutil_register_library_map(array(
'DifferentialAuditorsField' => 'DifferentialStoredCustomField', 'DifferentialAuditorsField' => 'DifferentialStoredCustomField',
'DifferentialAuthorField' => 'DifferentialCustomField', 'DifferentialAuthorField' => 'DifferentialCustomField',
'DifferentialBlameRevisionField' => 'DifferentialStoredCustomField', 'DifferentialBlameRevisionField' => 'DifferentialStoredCustomField',
'DifferentialBlockHeraldAction' => 'HeraldAction',
'DifferentialBranchField' => 'DifferentialCustomField', 'DifferentialBranchField' => 'DifferentialCustomField',
'DifferentialChangeHeraldFieldGroup' => 'HeraldFieldGroup', 'DifferentialChangeHeraldFieldGroup' => 'HeraldFieldGroup',
'DifferentialChangeType' => 'Phobject', 'DifferentialChangeType' => 'Phobject',
@ -4015,7 +4064,12 @@ phutil_register_library_map(array(
'DifferentialReviewer' => 'Phobject', 'DifferentialReviewer' => 'Phobject',
'DifferentialReviewerForRevisionEdgeType' => 'PhabricatorEdgeType', 'DifferentialReviewerForRevisionEdgeType' => 'PhabricatorEdgeType',
'DifferentialReviewerStatus' => 'Phobject', 'DifferentialReviewerStatus' => 'Phobject',
'DifferentialReviewersAddBlockingReviewersHeraldAction' => 'DifferentialReviewersHeraldAction',
'DifferentialReviewersAddBlockingSelfHeraldAction' => 'DifferentialReviewersHeraldAction',
'DifferentialReviewersAddReviewersHeraldAction' => 'DifferentialReviewersHeraldAction',
'DifferentialReviewersAddSelfHeraldAction' => 'DifferentialReviewersHeraldAction',
'DifferentialReviewersField' => 'DifferentialCoreCustomField', 'DifferentialReviewersField' => 'DifferentialCoreCustomField',
'DifferentialReviewersHeraldAction' => 'HeraldAction',
'DifferentialReviewersView' => 'AphrontView', 'DifferentialReviewersView' => 'AphrontView',
'DifferentialRevision' => array( 'DifferentialRevision' => array(
'DifferentialDAO', 'DifferentialDAO',
@ -4087,6 +4141,10 @@ phutil_register_library_map(array(
'DifferentialUpdateUnitResultsConduitAPIMethod' => 'DifferentialConduitAPIMethod', 'DifferentialUpdateUnitResultsConduitAPIMethod' => 'DifferentialConduitAPIMethod',
'DifferentialViewPolicyField' => 'DifferentialCoreCustomField', 'DifferentialViewPolicyField' => 'DifferentialCoreCustomField',
'DiffusionAuditorDatasource' => 'PhabricatorTypeaheadCompositeDatasource', 'DiffusionAuditorDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
'DiffusionAuditorsAddAuditorsHeraldAction' => 'DiffusionAuditorsHeraldAction',
'DiffusionAuditorsAddSelfHeraldAction' => 'DiffusionAuditorsHeraldAction',
'DiffusionAuditorsHeraldAction' => 'HeraldAction',
'DiffusionBlockHeraldAction' => 'HeraldAction',
'DiffusionBranchQueryConduitAPIMethod' => 'DiffusionQueryConduitAPIMethod', 'DiffusionBranchQueryConduitAPIMethod' => 'DiffusionQueryConduitAPIMethod',
'DiffusionBranchTableController' => 'DiffusionController', 'DiffusionBranchTableController' => 'DiffusionController',
'DiffusionBranchTableView' => 'DiffusionView', 'DiffusionBranchTableView' => 'DiffusionView',
@ -4606,6 +4664,7 @@ phutil_register_library_map(array(
), ),
'HarbormasterBuildStepCustomField' => 'PhabricatorCustomField', 'HarbormasterBuildStepCustomField' => 'PhabricatorCustomField',
'HarbormasterBuildStepEditor' => 'PhabricatorApplicationTransactionEditor', 'HarbormasterBuildStepEditor' => 'PhabricatorApplicationTransactionEditor',
'HarbormasterBuildStepGroup' => 'Phobject',
'HarbormasterBuildStepImplementation' => 'Phobject', 'HarbormasterBuildStepImplementation' => 'Phobject',
'HarbormasterBuildStepImplementationTestCase' => 'PhabricatorTestCase', 'HarbormasterBuildStepImplementationTestCase' => 'PhabricatorTestCase',
'HarbormasterBuildStepPHIDType' => 'PhabricatorPHIDType', 'HarbormasterBuildStepPHIDType' => 'PhabricatorPHIDType',
@ -4639,10 +4698,12 @@ phutil_register_library_map(array(
'HarbormasterBuildableTransactionEditor' => 'PhabricatorApplicationTransactionEditor', 'HarbormasterBuildableTransactionEditor' => 'PhabricatorApplicationTransactionEditor',
'HarbormasterBuildableTransactionQuery' => 'PhabricatorApplicationTransactionQuery', 'HarbormasterBuildableTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
'HarbormasterBuildableViewController' => 'HarbormasterController', 'HarbormasterBuildableViewController' => 'HarbormasterController',
'HarbormasterBuiltinBuildStepGroup' => 'HarbormasterBuildStepGroup',
'HarbormasterCommandBuildStepImplementation' => 'HarbormasterBuildStepImplementation', 'HarbormasterCommandBuildStepImplementation' => 'HarbormasterBuildStepImplementation',
'HarbormasterConduitAPIMethod' => 'ConduitAPIMethod', 'HarbormasterConduitAPIMethod' => 'ConduitAPIMethod',
'HarbormasterController' => 'PhabricatorController', 'HarbormasterController' => 'PhabricatorController',
'HarbormasterDAO' => 'PhabricatorLiskDAO', 'HarbormasterDAO' => 'PhabricatorLiskDAO',
'HarbormasterExternalBuildStepGroup' => 'HarbormasterBuildStepGroup',
'HarbormasterHTTPRequestBuildStepImplementation' => 'HarbormasterBuildStepImplementation', 'HarbormasterHTTPRequestBuildStepImplementation' => 'HarbormasterBuildStepImplementation',
'HarbormasterLeaseHostBuildStepImplementation' => 'HarbormasterBuildStepImplementation', 'HarbormasterLeaseHostBuildStepImplementation' => 'HarbormasterBuildStepImplementation',
'HarbormasterLintMessagesController' => 'HarbormasterController', 'HarbormasterLintMessagesController' => 'HarbormasterController',
@ -4651,18 +4712,22 @@ phutil_register_library_map(array(
'HarbormasterManagementBuildWorkflow' => 'HarbormasterManagementWorkflow', 'HarbormasterManagementBuildWorkflow' => 'HarbormasterManagementWorkflow',
'HarbormasterManagementUpdateWorkflow' => 'HarbormasterManagementWorkflow', 'HarbormasterManagementUpdateWorkflow' => 'HarbormasterManagementWorkflow',
'HarbormasterManagementWorkflow' => 'PhabricatorManagementWorkflow', 'HarbormasterManagementWorkflow' => 'PhabricatorManagementWorkflow',
'HarbormasterMessageType' => 'Phobject',
'HarbormasterObject' => 'HarbormasterDAO', 'HarbormasterObject' => 'HarbormasterDAO',
'HarbormasterOtherBuildStepGroup' => 'HarbormasterBuildStepGroup',
'HarbormasterPlanController' => 'HarbormasterController', 'HarbormasterPlanController' => 'HarbormasterController',
'HarbormasterPlanDisableController' => 'HarbormasterPlanController', 'HarbormasterPlanDisableController' => 'HarbormasterPlanController',
'HarbormasterPlanEditController' => 'HarbormasterPlanController', 'HarbormasterPlanEditController' => 'HarbormasterPlanController',
'HarbormasterPlanListController' => 'HarbormasterPlanController', 'HarbormasterPlanListController' => 'HarbormasterPlanController',
'HarbormasterPlanRunController' => 'HarbormasterController', 'HarbormasterPlanRunController' => 'HarbormasterController',
'HarbormasterPlanViewController' => 'HarbormasterPlanController', 'HarbormasterPlanViewController' => 'HarbormasterPlanController',
'HarbormasterPrototypeBuildStepGroup' => 'HarbormasterBuildStepGroup',
'HarbormasterPublishFragmentBuildStepImplementation' => 'HarbormasterBuildStepImplementation', 'HarbormasterPublishFragmentBuildStepImplementation' => 'HarbormasterBuildStepImplementation',
'HarbormasterQueryAutotargetsConduitAPIMethod' => 'HarbormasterConduitAPIMethod', 'HarbormasterQueryAutotargetsConduitAPIMethod' => 'HarbormasterConduitAPIMethod',
'HarbormasterQueryBuildablesConduitAPIMethod' => 'HarbormasterConduitAPIMethod', 'HarbormasterQueryBuildablesConduitAPIMethod' => 'HarbormasterConduitAPIMethod',
'HarbormasterQueryBuildsConduitAPIMethod' => 'HarbormasterConduitAPIMethod', 'HarbormasterQueryBuildsConduitAPIMethod' => 'HarbormasterConduitAPIMethod',
'HarbormasterRemarkupRule' => 'PhabricatorObjectRemarkupRule', 'HarbormasterRemarkupRule' => 'PhabricatorObjectRemarkupRule',
'HarbormasterRunBuildPlansHeraldAction' => 'HeraldAction',
'HarbormasterSchemaSpec' => 'PhabricatorConfigSchemaSpec', 'HarbormasterSchemaSpec' => 'PhabricatorConfigSchemaSpec',
'HarbormasterScratchTable' => 'HarbormasterDAO', 'HarbormasterScratchTable' => 'HarbormasterDAO',
'HarbormasterSendMessageConduitAPIMethod' => 'HarbormasterConduitAPIMethod', 'HarbormasterSendMessageConduitAPIMethod' => 'HarbormasterConduitAPIMethod',
@ -4672,6 +4737,7 @@ phutil_register_library_map(array(
'HarbormasterStepEditController' => 'HarbormasterController', 'HarbormasterStepEditController' => 'HarbormasterController',
'HarbormasterTargetEngine' => 'Phobject', 'HarbormasterTargetEngine' => 'Phobject',
'HarbormasterTargetWorker' => 'HarbormasterWorker', 'HarbormasterTargetWorker' => 'HarbormasterWorker',
'HarbormasterTestBuildStepGroup' => 'HarbormasterBuildStepGroup',
'HarbormasterThrowExceptionBuildStep' => 'HarbormasterBuildStepImplementation', 'HarbormasterThrowExceptionBuildStep' => 'HarbormasterBuildStepImplementation',
'HarbormasterUIEventListener' => 'PhabricatorEventListener', 'HarbormasterUIEventListener' => 'PhabricatorEventListener',
'HarbormasterUnitMessagesController' => 'HarbormasterController', 'HarbormasterUnitMessagesController' => 'HarbormasterController',
@ -4679,42 +4745,54 @@ phutil_register_library_map(array(
'HarbormasterUploadArtifactBuildStepImplementation' => 'HarbormasterBuildStepImplementation', 'HarbormasterUploadArtifactBuildStepImplementation' => 'HarbormasterBuildStepImplementation',
'HarbormasterWaitForPreviousBuildStepImplementation' => 'HarbormasterBuildStepImplementation', 'HarbormasterWaitForPreviousBuildStepImplementation' => 'HarbormasterBuildStepImplementation',
'HarbormasterWorker' => 'PhabricatorWorker', 'HarbormasterWorker' => 'PhabricatorWorker',
'HeraldAction' => 'Phobject',
'HeraldActionGroup' => 'HeraldGroup',
'HeraldActionRecord' => 'HeraldDAO', 'HeraldActionRecord' => 'HeraldDAO',
'HeraldAdapter' => 'Phobject', 'HeraldAdapter' => 'Phobject',
'HeraldAlwaysField' => 'HeraldField', 'HeraldAlwaysField' => 'HeraldField',
'HeraldAnotherRuleField' => 'HeraldField', 'HeraldAnotherRuleField' => 'HeraldField',
'HeraldApplicationActionGroup' => 'HeraldActionGroup',
'HeraldApplyTranscript' => 'Phobject', 'HeraldApplyTranscript' => 'Phobject',
'HeraldBasicFieldGroup' => 'HeraldFieldGroup', 'HeraldBasicFieldGroup' => 'HeraldFieldGroup',
'HeraldCommitAdapter' => 'HeraldAdapter', 'HeraldCommitAdapter' => array(
'HeraldAdapter',
'HarbormasterBuildableAdapterInterface',
),
'HeraldCondition' => 'HeraldDAO', 'HeraldCondition' => 'HeraldDAO',
'HeraldConditionTranscript' => 'Phobject', 'HeraldConditionTranscript' => 'Phobject',
'HeraldContentSourceField' => 'HeraldField', 'HeraldContentSourceField' => 'HeraldField',
'HeraldController' => 'PhabricatorController', 'HeraldController' => 'PhabricatorController',
'HeraldCustomAction' => 'Phobject',
'HeraldDAO' => 'PhabricatorLiskDAO', 'HeraldDAO' => 'PhabricatorLiskDAO',
'HeraldDifferentialAdapter' => 'HeraldAdapter', 'HeraldDifferentialAdapter' => 'HeraldAdapter',
'HeraldDifferentialDiffAdapter' => 'HeraldDifferentialAdapter', 'HeraldDifferentialDiffAdapter' => 'HeraldDifferentialAdapter',
'HeraldDifferentialRevisionAdapter' => 'HeraldDifferentialAdapter', 'HeraldDifferentialRevisionAdapter' => array(
'HeraldDifferentialAdapter',
'HarbormasterBuildableAdapterInterface',
),
'HeraldDisableController' => 'HeraldController', 'HeraldDisableController' => 'HeraldController',
'HeraldDoNothingAction' => 'HeraldAction',
'HeraldEditFieldGroup' => 'HeraldFieldGroup', 'HeraldEditFieldGroup' => 'HeraldFieldGroup',
'HeraldEffect' => 'Phobject', 'HeraldEffect' => 'Phobject',
'HeraldEmptyFieldValue' => 'HeraldFieldValue', 'HeraldEmptyFieldValue' => 'HeraldFieldValue',
'HeraldEngine' => 'Phobject', 'HeraldEngine' => 'Phobject',
'HeraldField' => 'Phobject', 'HeraldField' => 'Phobject',
'HeraldFieldGroup' => 'Phobject', 'HeraldFieldGroup' => 'HeraldGroup',
'HeraldFieldTestCase' => 'PhutilTestCase', 'HeraldFieldTestCase' => 'PhutilTestCase',
'HeraldFieldValue' => 'Phobject', 'HeraldFieldValue' => 'Phobject',
'HeraldGroup' => 'Phobject',
'HeraldInvalidActionException' => 'Exception', 'HeraldInvalidActionException' => 'Exception',
'HeraldInvalidConditionException' => 'Exception', 'HeraldInvalidConditionException' => 'Exception',
'HeraldManageGlobalRulesCapability' => 'PhabricatorPolicyCapability', 'HeraldManageGlobalRulesCapability' => 'PhabricatorPolicyCapability',
'HeraldManiphestTaskAdapter' => 'HeraldAdapter', 'HeraldManiphestTaskAdapter' => 'HeraldAdapter',
'HeraldNewController' => 'HeraldController', 'HeraldNewController' => 'HeraldController',
'HeraldNewObjectField' => 'HeraldField', 'HeraldNewObjectField' => 'HeraldField',
'HeraldNotifyActionGroup' => 'HeraldActionGroup',
'HeraldObjectTranscript' => 'Phobject', 'HeraldObjectTranscript' => 'Phobject',
'HeraldPholioMockAdapter' => 'HeraldAdapter', 'HeraldPholioMockAdapter' => 'HeraldAdapter',
'HeraldPreCommitAdapter' => 'HeraldAdapter', 'HeraldPreCommitAdapter' => 'HeraldAdapter',
'HeraldPreCommitContentAdapter' => 'HeraldPreCommitAdapter', 'HeraldPreCommitContentAdapter' => 'HeraldPreCommitAdapter',
'HeraldPreCommitRefAdapter' => 'HeraldPreCommitAdapter', 'HeraldPreCommitRefAdapter' => 'HeraldPreCommitAdapter',
'HeraldPreventActionGroup' => 'HeraldActionGroup',
'HeraldProjectsField' => 'HeraldField', 'HeraldProjectsField' => 'HeraldField',
'HeraldRecursiveConditionsException' => 'Exception', 'HeraldRecursiveConditionsException' => 'Exception',
'HeraldRelatedFieldGroup' => 'HeraldFieldGroup', 'HeraldRelatedFieldGroup' => 'HeraldFieldGroup',
@ -4743,6 +4821,7 @@ phutil_register_library_map(array(
'HeraldSelectFieldValue' => 'HeraldFieldValue', 'HeraldSelectFieldValue' => 'HeraldFieldValue',
'HeraldSpaceField' => 'HeraldField', 'HeraldSpaceField' => 'HeraldField',
'HeraldSubscribersField' => 'HeraldField', 'HeraldSubscribersField' => 'HeraldField',
'HeraldSupportActionGroup' => 'HeraldActionGroup',
'HeraldSupportFieldGroup' => 'HeraldFieldGroup', 'HeraldSupportFieldGroup' => 'HeraldFieldGroup',
'HeraldTestConsoleController' => 'HeraldController', 'HeraldTestConsoleController' => 'HeraldController',
'HeraldTextFieldValue' => 'HeraldFieldValue', 'HeraldTextFieldValue' => 'HeraldFieldValue',
@ -4759,6 +4838,7 @@ phutil_register_library_map(array(
'HeraldTranscriptQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'HeraldTranscriptQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'HeraldTranscriptSearchEngine' => 'PhabricatorApplicationSearchEngine', 'HeraldTranscriptSearchEngine' => 'PhabricatorApplicationSearchEngine',
'HeraldTranscriptTestCase' => 'PhabricatorTestCase', 'HeraldTranscriptTestCase' => 'PhabricatorTestCase',
'HeraldUtilityActionGroup' => 'HeraldActionGroup',
'Javelin' => 'Phobject', 'Javelin' => 'Phobject',
'JavelinReactorUIExample' => 'PhabricatorUIExample', 'JavelinReactorUIExample' => 'PhabricatorUIExample',
'JavelinUIExample' => 'PhabricatorUIExample', 'JavelinUIExample' => 'PhabricatorUIExample',
@ -4804,6 +4884,7 @@ phutil_register_library_map(array(
'LegalpadMailReceiver' => 'PhabricatorObjectMailReceiver', 'LegalpadMailReceiver' => 'PhabricatorObjectMailReceiver',
'LegalpadObjectNeedsSignatureEdgeType' => 'PhabricatorEdgeType', 'LegalpadObjectNeedsSignatureEdgeType' => 'PhabricatorEdgeType',
'LegalpadReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler', 'LegalpadReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
'LegalpadRequireSignatureHeraldAction' => 'HeraldAction',
'LegalpadSchemaSpec' => 'PhabricatorConfigSchemaSpec', 'LegalpadSchemaSpec' => 'PhabricatorConfigSchemaSpec',
'LegalpadSignatureNeededByObjectEdgeType' => 'PhabricatorEdgeType', 'LegalpadSignatureNeededByObjectEdgeType' => 'PhabricatorEdgeType',
'LegalpadTransaction' => 'PhabricatorApplicationTransaction', 'LegalpadTransaction' => 'PhabricatorApplicationTransaction',
@ -4889,6 +4970,9 @@ phutil_register_library_map(array(
'PhabricatorProjectInterface', 'PhabricatorProjectInterface',
'PhabricatorSpacesInterface', 'PhabricatorSpacesInterface',
), ),
'ManiphestTaskAssignHeraldAction' => 'HeraldAction',
'ManiphestTaskAssignOtherHeraldAction' => 'ManiphestTaskAssignHeraldAction',
'ManiphestTaskAssignSelfHeraldAction' => 'ManiphestTaskAssignHeraldAction',
'ManiphestTaskAssigneeHeraldField' => 'ManiphestTaskHeraldField', 'ManiphestTaskAssigneeHeraldField' => 'ManiphestTaskHeraldField',
'ManiphestTaskAuthorHeraldField' => 'ManiphestTaskHeraldField', 'ManiphestTaskAuthorHeraldField' => 'ManiphestTaskHeraldField',
'ManiphestTaskAuthorPolicyRule' => 'PhabricatorPolicyRule', 'ManiphestTaskAuthorPolicyRule' => 'PhabricatorPolicyRule',
@ -5115,6 +5199,7 @@ phutil_register_library_map(array(
'PhabricatorApplicationTransactionInterface', 'PhabricatorApplicationTransactionInterface',
'PhabricatorPolicyInterface', 'PhabricatorPolicyInterface',
'PhabricatorFlaggableInterface', 'PhabricatorFlaggableInterface',
'PhabricatorSubscribableInterface',
'PhabricatorDestructibleInterface', 'PhabricatorDestructibleInterface',
'PhabricatorSpacesInterface', 'PhabricatorSpacesInterface',
), ),
@ -5388,6 +5473,7 @@ phutil_register_library_map(array(
'PhabricatorPolicyInterface', 'PhabricatorPolicyInterface',
'PhabricatorApplicationTransactionInterface', 'PhabricatorApplicationTransactionInterface',
'PhabricatorSubscribableInterface', 'PhabricatorSubscribableInterface',
'PhabricatorTokenReceiverInterface',
'PhabricatorFlaggableInterface', 'PhabricatorFlaggableInterface',
'PhabricatorDestructibleInterface', 'PhabricatorDestructibleInterface',
), ),
@ -5402,10 +5488,12 @@ phutil_register_library_map(array(
'PhabricatorBadgesEditor' => 'PhabricatorApplicationTransactionEditor', 'PhabricatorBadgesEditor' => 'PhabricatorApplicationTransactionEditor',
'PhabricatorBadgesIcon' => 'Phobject', 'PhabricatorBadgesIcon' => 'Phobject',
'PhabricatorBadgesListController' => 'PhabricatorBadgesController', 'PhabricatorBadgesListController' => 'PhabricatorBadgesController',
'PhabricatorBadgesMailReceiver' => 'PhabricatorObjectMailReceiver',
'PhabricatorBadgesPHIDType' => 'PhabricatorPHIDType', 'PhabricatorBadgesPHIDType' => 'PhabricatorPHIDType',
'PhabricatorBadgesQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'PhabricatorBadgesQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'PhabricatorBadgesRecipientsListView' => 'AphrontTagView', 'PhabricatorBadgesRecipientsListView' => 'AphrontTagView',
'PhabricatorBadgesRemoveRecipientsController' => 'PhabricatorBadgesController', 'PhabricatorBadgesRemoveRecipientsController' => 'PhabricatorBadgesController',
'PhabricatorBadgesReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
'PhabricatorBadgesSchemaSpec' => 'PhabricatorConfigSchemaSpec', 'PhabricatorBadgesSchemaSpec' => 'PhabricatorConfigSchemaSpec',
'PhabricatorBadgesSearchEngine' => 'PhabricatorApplicationSearchEngine', 'PhabricatorBadgesSearchEngine' => 'PhabricatorApplicationSearchEngine',
'PhabricatorBadgesTransaction' => 'PhabricatorApplicationTransaction', 'PhabricatorBadgesTransaction' => 'PhabricatorApplicationTransaction',
@ -5644,6 +5732,7 @@ phutil_register_library_map(array(
'PhabricatorCountdownEditController' => 'PhabricatorCountdownController', 'PhabricatorCountdownEditController' => 'PhabricatorCountdownController',
'PhabricatorCountdownEditor' => 'PhabricatorApplicationTransactionEditor', 'PhabricatorCountdownEditor' => 'PhabricatorApplicationTransactionEditor',
'PhabricatorCountdownListController' => 'PhabricatorCountdownController', 'PhabricatorCountdownListController' => 'PhabricatorCountdownController',
'PhabricatorCountdownMailReceiver' => 'PhabricatorObjectMailReceiver',
'PhabricatorCountdownQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'PhabricatorCountdownQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'PhabricatorCountdownRemarkupRule' => 'PhabricatorObjectRemarkupRule', 'PhabricatorCountdownRemarkupRule' => 'PhabricatorObjectRemarkupRule',
'PhabricatorCountdownReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler', 'PhabricatorCountdownReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
@ -5918,6 +6007,7 @@ phutil_register_library_map(array(
'PhabricatorSubscribableInterface', 'PhabricatorSubscribableInterface',
'PhabricatorApplicationTransactionInterface', 'PhabricatorApplicationTransactionInterface',
'PhabricatorFlaggableInterface', 'PhabricatorFlaggableInterface',
'PhabricatorTokenReceiverInterface',
'PhabricatorPolicyInterface', 'PhabricatorPolicyInterface',
), ),
'PhabricatorFileImageTransform' => 'PhabricatorFileTransform', 'PhabricatorFileImageTransform' => 'PhabricatorFileTransform',
@ -5962,6 +6052,7 @@ phutil_register_library_map(array(
'PhabricatorFlagDAO', 'PhabricatorFlagDAO',
'PhabricatorPolicyInterface', 'PhabricatorPolicyInterface',
), ),
'PhabricatorFlagAddFlagHeraldAction' => 'HeraldAction',
'PhabricatorFlagColor' => 'PhabricatorFlagConstants', 'PhabricatorFlagColor' => 'PhabricatorFlagConstants',
'PhabricatorFlagConstants' => 'Phobject', 'PhabricatorFlagConstants' => 'Phobject',
'PhabricatorFlagController' => 'PhabricatorController', 'PhabricatorFlagController' => 'PhabricatorController',
@ -6090,6 +6181,7 @@ phutil_register_library_map(array(
'PhabricatorMailManagementSendTestWorkflow' => 'PhabricatorMailManagementWorkflow', 'PhabricatorMailManagementSendTestWorkflow' => 'PhabricatorMailManagementWorkflow',
'PhabricatorMailManagementShowInboundWorkflow' => 'PhabricatorMailManagementWorkflow', 'PhabricatorMailManagementShowInboundWorkflow' => 'PhabricatorMailManagementWorkflow',
'PhabricatorMailManagementShowOutboundWorkflow' => 'PhabricatorMailManagementWorkflow', 'PhabricatorMailManagementShowOutboundWorkflow' => 'PhabricatorMailManagementWorkflow',
'PhabricatorMailManagementVolumeWorkflow' => 'PhabricatorMailManagementWorkflow',
'PhabricatorMailManagementWorkflow' => 'PhabricatorManagementWorkflow', 'PhabricatorMailManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorMailReceiver' => 'Phobject', 'PhabricatorMailReceiver' => 'Phobject',
'PhabricatorMailReceiverTestCase' => 'PhabricatorTestCase', 'PhabricatorMailReceiverTestCase' => 'PhabricatorTestCase',
@ -6137,6 +6229,9 @@ phutil_register_library_map(array(
'PhabricatorMetaMTADAO' => 'PhabricatorLiskDAO', 'PhabricatorMetaMTADAO' => 'PhabricatorLiskDAO',
'PhabricatorMetaMTAEmailBodyParser' => 'Phobject', 'PhabricatorMetaMTAEmailBodyParser' => 'Phobject',
'PhabricatorMetaMTAEmailBodyParserTestCase' => 'PhabricatorTestCase', 'PhabricatorMetaMTAEmailBodyParserTestCase' => 'PhabricatorTestCase',
'PhabricatorMetaMTAEmailHeraldAction' => 'HeraldAction',
'PhabricatorMetaMTAEmailOthersHeraldAction' => 'PhabricatorMetaMTAEmailHeraldAction',
'PhabricatorMetaMTAEmailSelfHeraldAction' => 'PhabricatorMetaMTAEmailHeraldAction',
'PhabricatorMetaMTAErrorMailAction' => 'PhabricatorSystemAction', 'PhabricatorMetaMTAErrorMailAction' => 'PhabricatorSystemAction',
'PhabricatorMetaMTAMail' => array( 'PhabricatorMetaMTAMail' => array(
'PhabricatorMetaMTADAO', 'PhabricatorMetaMTADAO',
@ -6457,6 +6552,7 @@ phutil_register_library_map(array(
'PhabricatorCustomFieldInterface', 'PhabricatorCustomFieldInterface',
'PhabricatorDestructibleInterface', 'PhabricatorDestructibleInterface',
), ),
'PhabricatorProjectAddHeraldAction' => 'PhabricatorProjectHeraldAction',
'PhabricatorProjectApplication' => 'PhabricatorApplication', 'PhabricatorProjectApplication' => 'PhabricatorApplication',
'PhabricatorProjectArchiveController' => 'PhabricatorProjectController', 'PhabricatorProjectArchiveController' => 'PhabricatorProjectController',
'PhabricatorProjectBoardController' => 'PhabricatorProjectController', 'PhabricatorProjectBoardController' => 'PhabricatorProjectController',
@ -6500,6 +6596,7 @@ phutil_register_library_map(array(
'PhabricatorProjectEditPictureController' => 'PhabricatorProjectController', 'PhabricatorProjectEditPictureController' => 'PhabricatorProjectController',
'PhabricatorProjectEditorTestCase' => 'PhabricatorTestCase', 'PhabricatorProjectEditorTestCase' => 'PhabricatorTestCase',
'PhabricatorProjectFeedController' => 'PhabricatorProjectController', 'PhabricatorProjectFeedController' => 'PhabricatorProjectController',
'PhabricatorProjectHeraldAction' => 'HeraldAction',
'PhabricatorProjectIcon' => 'Phobject', 'PhabricatorProjectIcon' => 'Phobject',
'PhabricatorProjectListController' => 'PhabricatorProjectController', 'PhabricatorProjectListController' => 'PhabricatorProjectController',
'PhabricatorProjectLogicalAndDatasource' => 'PhabricatorTypeaheadCompositeDatasource', 'PhabricatorProjectLogicalAndDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
@ -6520,6 +6617,7 @@ phutil_register_library_map(array(
'PhabricatorProjectProjectHasObjectEdgeType' => 'PhabricatorEdgeType', 'PhabricatorProjectProjectHasObjectEdgeType' => 'PhabricatorEdgeType',
'PhabricatorProjectProjectPHIDType' => 'PhabricatorPHIDType', 'PhabricatorProjectProjectPHIDType' => 'PhabricatorPHIDType',
'PhabricatorProjectQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'PhabricatorProjectQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'PhabricatorProjectRemoveHeraldAction' => 'PhabricatorProjectHeraldAction',
'PhabricatorProjectSchemaSpec' => 'PhabricatorConfigSchemaSpec', 'PhabricatorProjectSchemaSpec' => 'PhabricatorConfigSchemaSpec',
'PhabricatorProjectSearchEngine' => 'PhabricatorApplicationSearchEngine', 'PhabricatorProjectSearchEngine' => 'PhabricatorApplicationSearchEngine',
'PhabricatorProjectSearchField' => 'PhabricatorSearchTokenizerField', 'PhabricatorProjectSearchField' => 'PhabricatorSearchTokenizerField',
@ -6774,6 +6872,7 @@ phutil_register_library_map(array(
'PhabricatorSlowvoteEditController' => 'PhabricatorSlowvoteController', 'PhabricatorSlowvoteEditController' => 'PhabricatorSlowvoteController',
'PhabricatorSlowvoteEditor' => 'PhabricatorApplicationTransactionEditor', 'PhabricatorSlowvoteEditor' => 'PhabricatorApplicationTransactionEditor',
'PhabricatorSlowvoteListController' => 'PhabricatorSlowvoteController', 'PhabricatorSlowvoteListController' => 'PhabricatorSlowvoteController',
'PhabricatorSlowvoteMailReceiver' => 'PhabricatorObjectMailReceiver',
'PhabricatorSlowvoteOption' => 'PhabricatorSlowvoteDAO', 'PhabricatorSlowvoteOption' => 'PhabricatorSlowvoteDAO',
'PhabricatorSlowvotePoll' => array( 'PhabricatorSlowvotePoll' => array(
'PhabricatorSlowvoteDAO', 'PhabricatorSlowvoteDAO',
@ -6789,6 +6888,7 @@ phutil_register_library_map(array(
'PhabricatorSlowvotePollController' => 'PhabricatorSlowvoteController', 'PhabricatorSlowvotePollController' => 'PhabricatorSlowvoteController',
'PhabricatorSlowvotePollPHIDType' => 'PhabricatorPHIDType', 'PhabricatorSlowvotePollPHIDType' => 'PhabricatorPHIDType',
'PhabricatorSlowvoteQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'PhabricatorSlowvoteQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'PhabricatorSlowvoteReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
'PhabricatorSlowvoteSchemaSpec' => 'PhabricatorConfigSchemaSpec', 'PhabricatorSlowvoteSchemaSpec' => 'PhabricatorConfigSchemaSpec',
'PhabricatorSlowvoteSearchEngine' => 'PhabricatorApplicationSearchEngine', 'PhabricatorSlowvoteSearchEngine' => 'PhabricatorApplicationSearchEngine',
'PhabricatorSlowvoteTransaction' => 'PhabricatorApplicationTransaction', 'PhabricatorSlowvoteTransaction' => 'PhabricatorApplicationTransaction',
@ -6864,10 +6964,15 @@ phutil_register_library_map(array(
'PhabricatorSubscribedToObjectEdgeType' => 'PhabricatorEdgeType', 'PhabricatorSubscribedToObjectEdgeType' => 'PhabricatorEdgeType',
'PhabricatorSubscribersQuery' => 'PhabricatorQuery', 'PhabricatorSubscribersQuery' => 'PhabricatorQuery',
'PhabricatorSubscriptionTriggerClock' => 'PhabricatorTriggerClock', 'PhabricatorSubscriptionTriggerClock' => 'PhabricatorTriggerClock',
'PhabricatorSubscriptionsAddSelfHeraldAction' => 'PhabricatorSubscriptionsHeraldAction',
'PhabricatorSubscriptionsAddSubscribersHeraldAction' => 'PhabricatorSubscriptionsHeraldAction',
'PhabricatorSubscriptionsApplication' => 'PhabricatorApplication', 'PhabricatorSubscriptionsApplication' => 'PhabricatorApplication',
'PhabricatorSubscriptionsEditController' => 'PhabricatorController', 'PhabricatorSubscriptionsEditController' => 'PhabricatorController',
'PhabricatorSubscriptionsEditor' => 'PhabricatorEditor', 'PhabricatorSubscriptionsEditor' => 'PhabricatorEditor',
'PhabricatorSubscriptionsHeraldAction' => 'HeraldAction',
'PhabricatorSubscriptionsListController' => 'PhabricatorController', 'PhabricatorSubscriptionsListController' => 'PhabricatorController',
'PhabricatorSubscriptionsRemoveSelfHeraldAction' => 'PhabricatorSubscriptionsHeraldAction',
'PhabricatorSubscriptionsRemoveSubscribersHeraldAction' => 'PhabricatorSubscriptionsHeraldAction',
'PhabricatorSubscriptionsSubscribeEmailCommand' => 'MetaMTAEmailTransactionCommand', 'PhabricatorSubscriptionsSubscribeEmailCommand' => 'MetaMTAEmailTransactionCommand',
'PhabricatorSubscriptionsSubscribersPolicyRule' => 'PhabricatorPolicyRule', 'PhabricatorSubscriptionsSubscribersPolicyRule' => 'PhabricatorPolicyRule',
'PhabricatorSubscriptionsTransactionController' => 'PhabricatorController', 'PhabricatorSubscriptionsTransactionController' => 'PhabricatorController',
@ -6940,7 +7045,6 @@ phutil_register_library_map(array(
'PhabricatorTrivialTestCase' => 'PhabricatorTestCase', 'PhabricatorTrivialTestCase' => 'PhabricatorTestCase',
'PhabricatorTwitchAuthProvider' => 'PhabricatorOAuth2AuthProvider', 'PhabricatorTwitchAuthProvider' => 'PhabricatorOAuth2AuthProvider',
'PhabricatorTwitterAuthProvider' => 'PhabricatorOAuth1AuthProvider', 'PhabricatorTwitterAuthProvider' => 'PhabricatorOAuth1AuthProvider',
'PhabricatorTwoColumnUIExample' => 'PhabricatorUIExample',
'PhabricatorTypeaheadApplication' => 'PhabricatorApplication', 'PhabricatorTypeaheadApplication' => 'PhabricatorApplication',
'PhabricatorTypeaheadCompositeDatasource' => 'PhabricatorTypeaheadDatasource', 'PhabricatorTypeaheadCompositeDatasource' => 'PhabricatorTypeaheadDatasource',
'PhabricatorTypeaheadDatasource' => 'Phobject', 'PhabricatorTypeaheadDatasource' => 'Phobject',
@ -7497,8 +7601,11 @@ phutil_register_library_map(array(
'PhabricatorTokenReceiverInterface', 'PhabricatorTokenReceiverInterface',
'PhabricatorProjectInterface', 'PhabricatorProjectInterface',
'PhabricatorDestructibleInterface', 'PhabricatorDestructibleInterface',
'PhabricatorSpacesInterface',
), ),
'PonderQuestionCommentController' => 'PonderController', 'PonderQuestionCommentController' => 'PonderController',
'PonderQuestionDefaultEditCapability' => 'PhabricatorPolicyCapability',
'PonderQuestionDefaultViewCapability' => 'PhabricatorPolicyCapability',
'PonderQuestionEditController' => 'PonderController', 'PonderQuestionEditController' => 'PonderController',
'PonderQuestionEditor' => 'PonderEditor', 'PonderQuestionEditor' => 'PonderEditor',
'PonderQuestionHasVotingUserEdgeType' => 'PhabricatorEdgeType', 'PonderQuestionHasVotingUserEdgeType' => 'PhabricatorEdgeType',

View file

@ -3,9 +3,8 @@
final class PhabricatorAuditAddCommentController final class PhabricatorAuditAddCommentController
extends PhabricatorAuditController { extends PhabricatorAuditController {
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $request->getViewer();
$user = $request->getUser();
if (!$request->isFormPost()) { if (!$request->isFormPost()) {
return new Aphront403Response(); return new Aphront403Response();
@ -13,7 +12,7 @@ final class PhabricatorAuditAddCommentController
$commit_phid = $request->getStr('commit'); $commit_phid = $request->getStr('commit');
$commit = id(new DiffusionCommitQuery()) $commit = id(new DiffusionCommitQuery())
->setViewer($user) ->setViewer($viewer)
->withPHIDs(array($commit_phid)) ->withPHIDs(array($commit_phid))
->needAuditRequests(true) ->needAuditRequests(true)
->executeOne(); ->executeOne();
@ -61,7 +60,7 @@ final class PhabricatorAuditAddCommentController
} }
$inlines = PhabricatorAuditInlineComment::loadDraftComments( $inlines = PhabricatorAuditInlineComment::loadDraftComments(
$user, $viewer,
$commit->getPHID()); $commit->getPHID());
foreach ($inlines as $inline) { foreach ($inlines as $inline) {
$xactions[] = id(new PhabricatorAuditTransaction()) $xactions[] = id(new PhabricatorAuditTransaction())
@ -70,14 +69,14 @@ final class PhabricatorAuditAddCommentController
} }
id(new PhabricatorAuditEditor()) id(new PhabricatorAuditEditor())
->setActor($user) ->setActor($viewer)
->setContentSourceFromRequest($request) ->setContentSourceFromRequest($request)
->setContinueOnMissingFields(true) ->setContinueOnMissingFields(true)
->applyTransactions($commit, $xactions); ->applyTransactions($commit, $xactions);
$draft = id(new PhabricatorDraft())->loadOneWhere( $draft = id(new PhabricatorDraft())->loadOneWhere(
'authorPHID = %s AND draftKey = %s', 'authorPHID = %s AND draftKey = %s',
$user->getPHID(), $viewer->getPHID(),
'diffusion-audit-'.$commit->getID()); 'diffusion-audit-'.$commit->getID());
if ($draft) { if ($draft) {
$draft->delete(); $draft->delete();

View file

@ -3,17 +3,11 @@
final class PhabricatorAuditPreviewController final class PhabricatorAuditPreviewController
extends PhabricatorAuditController { extends PhabricatorAuditController {
private $id; public function handleRequest(AphrontRequest $request) {
$viewer = $request->getViewer();
$id = $request->getURIData('id');
public function willProcessRequest(array $data) { $commit = id(new PhabricatorRepositoryCommit())->load($id);
$this->id = $data['id'];
}
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
$commit = id(new PhabricatorRepositoryCommit())->load($this->id);
if (!$commit) { if (!$commit) {
return new Aphront404Response(); return new Aphront404Response();
} }
@ -23,7 +17,7 @@ final class PhabricatorAuditPreviewController
$action = $request->getStr('action'); $action = $request->getStr('action');
if ($action != PhabricatorAuditActionConstants::COMMENT) { if ($action != PhabricatorAuditActionConstants::COMMENT) {
$action_xaction = id(new PhabricatorAuditTransaction()) $action_xaction = id(new PhabricatorAuditTransaction())
->setAuthorPHID($user->getPHID()) ->setAuthorPHID($viewer->getPHID())
->setObjectPHID($commit->getPHID()) ->setObjectPHID($commit->getPHID())
->setTransactionType(PhabricatorAuditActionConstants::ACTION) ->setTransactionType(PhabricatorAuditActionConstants::ACTION)
->setNewValue($action); ->setNewValue($action);
@ -52,7 +46,7 @@ final class PhabricatorAuditPreviewController
$content = $request->getStr('content'); $content = $request->getStr('content');
if (strlen($content)) { if (strlen($content)) {
$xactions[] = id(new PhabricatorAuditTransaction()) $xactions[] = id(new PhabricatorAuditTransaction())
->setAuthorPHID($user->getPHID()) ->setAuthorPHID($viewer->getPHID())
->setObjectPHID($commit->getPHID()) ->setObjectPHID($commit->getPHID())
->setTransactionType(PhabricatorTransactions::TYPE_COMMENT) ->setTransactionType(PhabricatorTransactions::TYPE_COMMENT)
->attachComment( ->attachComment(
@ -72,13 +66,13 @@ final class PhabricatorAuditPreviewController
$view = id(new PhabricatorAuditTransactionView()) $view = id(new PhabricatorAuditTransactionView())
->setIsPreview(true) ->setIsPreview(true)
->setUser($user) ->setUser($viewer)
->setObjectPHID($commit->getPHID()) ->setObjectPHID($commit->getPHID())
->setTransactions($xactions); ->setTransactions($xactions);
id(new PhabricatorDraft()) id(new PhabricatorDraft())
->setAuthorPHID($user->getPHID()) ->setAuthorPHID($viewer->getPHID())
->setDraftKey('diffusion-audit-'.$this->id) ->setDraftKey('diffusion-audit-'.$id)
->setDraft($content) ->setDraft($content)
->replaceOrDelete(); ->replaceOrDelete();

View file

@ -170,7 +170,7 @@ final class PhabricatorAuditEditor
$audit_requested = PhabricatorAuditStatusConstants::AUDIT_REQUESTED; $audit_requested = PhabricatorAuditStatusConstants::AUDIT_REQUESTED;
$audit_reason = $this->getAuditReasons($phid); $audit_reason = $this->getAuditReasons($phid);
} }
$requests[] = id (new PhabricatorRepositoryAuditRequest()) $requests[] = id(new PhabricatorRepositoryAuditRequest())
->setCommitPHID($object->getPHID()) ->setCommitPHID($object->getPHID())
->setAuditorPHID($phid) ->setAuditorPHID($phid)
->setAuditStatus($audit_requested) ->setAuditStatus($audit_requested)
@ -877,35 +877,6 @@ final class PhabricatorAuditEditor
HeraldAdapter $adapter, HeraldAdapter $adapter,
HeraldTranscript $transcript) { HeraldTranscript $transcript) {
$xactions = array();
$audit_phids = $adapter->getAuditMap();
foreach ($audit_phids as $phid => $rule_ids) {
foreach ($rule_ids as $rule_id) {
$this->addAuditReason(
$phid,
pht(
'%s Triggered Audit',
"H{$rule_id}"));
}
}
if ($audit_phids) {
$xactions[] = id(new PhabricatorAuditTransaction())
->setTransactionType(PhabricatorAuditActionConstants::ADD_AUDITORS)
->setNewValue(array_fuse(array_keys($audit_phids)))
->setMetadataValue(
'auditStatus',
PhabricatorAuditStatusConstants::AUDIT_REQUIRED)
->setMetadataValue(
'auditReasonMap', $this->auditReasonMap);
}
HarbormasterBuildable::applyBuildPlans(
$object->getPHID(),
$object->getRepository()->getPHID(),
$adapter->getBuildPlans());
$limit = self::MAX_FILES_SHOWN_IN_EMAIL; $limit = self::MAX_FILES_SHOWN_IN_EMAIL;
$files = $adapter->loadAffectedPaths(); $files = $adapter->loadAffectedPaths();
sort($files); sort($files);
@ -919,7 +890,7 @@ final class PhabricatorAuditEditor
} }
$this->affectedFiles = implode("\n", $files); $this->affectedFiles = implode("\n", $files);
return $xactions; return array();
} }
private function isCommitMostlyImported(PhabricatorLiskDAO $object) { private function isCommitMostlyImported(PhabricatorLiskDAO $object) {

View file

@ -3,17 +3,11 @@
final class PhabricatorAuthConfirmLinkController final class PhabricatorAuthConfirmLinkController
extends PhabricatorAuthController { extends PhabricatorAuthController {
private $accountKey; public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer();
$accountkey = $request->getURIData('akey');
public function willProcessRequest(array $data) { $result = $this->loadAccountForRegistrationOrLinking($accountkey);
$this->accountKey = idx($data, 'akey');
}
public function processRequest() {
$request = $this->getRequest();
$viewer = $request->getUser();
$result = $this->loadAccountForRegistrationOrLinking($this->accountKey);
list($account, $provider, $response) = $result; list($account, $provider, $response) = $result;
if ($response) { if ($response) {

View file

@ -3,9 +3,8 @@
final class PhabricatorAuthDowngradeSessionController final class PhabricatorAuthDowngradeSessionController
extends PhabricatorAuthController { extends PhabricatorAuthController {
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $this->getViewer();
$viewer = $request->getUser();
$panel_uri = '/settings/panel/sessions/'; $panel_uri = '/settings/panel/sessions/';

View file

@ -15,9 +15,8 @@ final class PhabricatorAuthFinishController
return true; return true;
} }
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $this->getViewer();
$viewer = $request->getUser();
// If the user already has a full session, just kick them out of here. // If the user already has a full session, just kick them out of here.
$has_partial_session = $viewer->hasSession() && $has_partial_session = $viewer->hasSession() &&

View file

@ -3,25 +3,18 @@
final class PhabricatorAuthLinkController final class PhabricatorAuthLinkController
extends PhabricatorAuthController { extends PhabricatorAuthController {
private $action; public function handleRequest(AphrontRequest $request) {
private $providerKey; $viewer = $this->getViewer();
$action = $request->getURIData('action');
public function willProcessRequest(array $data) { $provider_key = $request->getURIData('pkey');
$this->providerKey = $data['pkey'];
$this->action = $data['action'];
}
public function processRequest() {
$request = $this->getRequest();
$viewer = $request->getUser();
$provider = PhabricatorAuthProvider::getEnabledProviderByKey( $provider = PhabricatorAuthProvider::getEnabledProviderByKey(
$this->providerKey); $provider_key);
if (!$provider) { if (!$provider) {
return new Aphront404Response(); return new Aphront404Response();
} }
switch ($this->action) { switch ($action) {
case 'link': case 'link':
if (!$provider->shouldAllowAccountLink()) { if (!$provider->shouldAllowAccountLink()) {
return $this->renderErrorPage( return $this->renderErrorPage(
@ -50,7 +43,7 @@ final class PhabricatorAuthLinkController
$provider->getProviderDomain(), $provider->getProviderDomain(),
$viewer->getPHID()); $viewer->getPHID());
switch ($this->action) { switch ($action) {
case 'link': case 'link':
if ($account) { if ($account) {
return $this->renderErrorPage( return $this->renderErrorPage(
@ -81,7 +74,7 @@ final class PhabricatorAuthLinkController
PhabricatorCookies::setClientIDCookie($request); PhabricatorCookies::setClientIDCookie($request);
switch ($this->action) { switch ($action) {
case 'link': case 'link':
id(new PhabricatorAuthSessionEngine())->requireHighSecuritySession( id(new PhabricatorAuthSessionEngine())->requireHighSecuritySession(
$viewer, $viewer,
@ -107,7 +100,7 @@ final class PhabricatorAuthLinkController
$form); $form);
} }
switch ($this->action) { switch ($action) {
case 'link': case 'link':
$name = pht('Link Account'); $name = pht('Link Account');
$title = pht('Link %s Account', $provider->getProviderName()); $title = pht('Link %s Account', $provider->getProviderName());

View file

@ -20,18 +20,14 @@ final class PhabricatorAuthLoginController
return parent::shouldAllowRestrictedParameter($parameter_name); return parent::shouldAllowRestrictedParameter($parameter_name);
} }
public function willProcessRequest(array $data) {
$this->providerKey = $data['pkey'];
$this->extraURIData = idx($data, 'extra');
}
public function getExtraURIData() { public function getExtraURIData() {
return $this->extraURIData; return $this->extraURIData;
} }
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $this->getViewer();
$viewer = $request->getUser(); $this->providerKey = $request->getURIData('pkey');
$this->extraURIData = $request->getURIData('extra');
$response = $this->loadProvider(); $response = $this->loadProvider();
if ($response) { if ($response) {

View file

@ -15,16 +15,15 @@ final class PhabricatorAuthNeedsApprovalController
return false; return false;
} }
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $this->getViewer();
$user = $request->getUser();
$wait_for_approval = pht( $wait_for_approval = pht(
"Your account has been created, but needs to be approved by an ". "Your account has been created, but needs to be approved by an ".
"administrator. You'll receive an email once your account is approved."); "administrator. You'll receive an email once your account is approved.");
$dialog = id(new AphrontDialogView()) $dialog = id(new AphrontDialogView())
->setUser($user) ->setUser($viewer)
->setTitle(pht('Wait for Approval')) ->setTitle(pht('Wait for Approval'))
->appendChild($wait_for_approval) ->appendChild($wait_for_approval)
->addCancelButton('/', pht('Wait Patiently')); ->addCancelButton('/', pht('Wait Patiently'));

View file

@ -9,9 +9,8 @@ final class PhabricatorAuthNeedsMultiFactorController
return false; return false;
} }
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $this->getViewer();
$viewer = $request->getUser();
$panel = id(new PhabricatorMultiFactorSettingsPanel()) $panel = id(new PhabricatorMultiFactorSettingsPanel())
->setUser($viewer) ->setUser($viewer)

View file

@ -3,8 +3,6 @@
final class PhabricatorAuthOldOAuthRedirectController final class PhabricatorAuthOldOAuthRedirectController
extends PhabricatorAuthController { extends PhabricatorAuthController {
private $provider;
public function shouldRequireLogin() { public function shouldRequireLogin() {
return false; return false;
} }
@ -16,11 +14,9 @@ final class PhabricatorAuthOldOAuthRedirectController
return parent::shouldAllowRestrictedParameter($parameter_name); return parent::shouldAllowRestrictedParameter($parameter_name);
} }
public function willProcessRequest(array $data) { public function handleRequest(AphrontRequest $request) {
$this->provider = $data['provider']; $viewer = $this->getViewer();
} $provider = $request->getURIData('provider');
public function processRequest() {
// TODO: Most OAuth providers are OK with changing the redirect URI, but // TODO: Most OAuth providers are OK with changing the redirect URI, but
// Google and GitHub are strict. We need to respect the old OAuth URI until // Google and GitHub are strict. We need to respect the old OAuth URI until
// we can get installs to migrate. This just keeps the old OAuth URI working // we can get installs to migrate. This just keeps the old OAuth URI working
@ -31,11 +27,11 @@ final class PhabricatorAuthOldOAuthRedirectController
'github' => 'github:github.com', 'github' => 'github:github.com',
); );
if (!isset($provider_map[$this->provider])) { if (!isset($provider_map[$provider])) {
return new Aphront404Response(); return new Aphront404Response();
} }
$provider_key = $provider_map[$this->provider]; $provider_key = $provider_map[$provider];
$uri = $this->getRequest()->getRequestURI(); $uri = $this->getRequest()->getRequestURI();
$uri->setPath($this->getApplicationURI('login/'.$provider_key.'/')); $uri->setPath($this->getApplicationURI('login/'.$provider_key.'/'));

View file

@ -3,24 +3,16 @@
final class PhabricatorAuthOneTimeLoginController final class PhabricatorAuthOneTimeLoginController
extends PhabricatorAuthController { extends PhabricatorAuthController {
private $id;
private $key;
private $emailID;
private $linkType;
public function shouldRequireLogin() { public function shouldRequireLogin() {
return false; return false;
} }
public function willProcessRequest(array $data) { public function handleRequest(AphrontRequest $request) {
$this->linkType = $data['type']; $viewer = $this->getViewer();
$this->id = $data['id']; $id = $request->getURIData('id');
$this->key = $data['key']; $link_type = $request->getURIData('type');
$this->emailID = idx($data, 'emailID'); $key = $request->getURIData('key');
} $email_id = $request->getURIData('emailID');
public function processRequest() {
$request = $this->getRequest();
if ($request->getUser()->isLoggedIn()) { if ($request->getUser()->isLoggedIn()) {
return $this->renderError( return $this->renderError(
@ -29,7 +21,7 @@ final class PhabricatorAuthOneTimeLoginController
$target_user = id(new PhabricatorPeopleQuery()) $target_user = id(new PhabricatorPeopleQuery())
->setViewer(PhabricatorUser::getOmnipotentUser()) ->setViewer(PhabricatorUser::getOmnipotentUser())
->withIDs(array($this->id)) ->withIDs(array($id))
->executeOne(); ->executeOne();
if (!$target_user) { if (!$target_user) {
return new Aphront404Response(); return new Aphront404Response();
@ -58,11 +50,11 @@ final class PhabricatorAuthOneTimeLoginController
// - get a "verified" address you don't control. // - get a "verified" address you don't control.
$target_email = null; $target_email = null;
if ($this->emailID) { if ($email_id) {
$target_email = id(new PhabricatorUserEmail())->loadOneWhere( $target_email = id(new PhabricatorUserEmail())->loadOneWhere(
'userPHID = %s AND id = %d', 'userPHID = %s AND id = %d',
$target_user->getPHID(), $target_user->getPHID(),
$this->emailID); $email_id);
if (!$target_email) { if (!$target_email) {
return new Aphront404Response(); return new Aphront404Response();
} }
@ -72,7 +64,7 @@ final class PhabricatorAuthOneTimeLoginController
$token = $engine->loadOneTimeLoginKey( $token = $engine->loadOneTimeLoginKey(
$target_user, $target_user,
$target_email, $target_email,
$this->key); $key);
if (!$token) { if (!$token) {
return $this->newDialog() return $this->newDialog()
@ -154,7 +146,7 @@ final class PhabricatorAuthOneTimeLoginController
// then log a user in to an account they control via sneaky invisible // then log a user in to an account they control via sneaky invisible
// form submissions. // form submissions.
switch ($this->linkType) { switch ($link_type) {
case PhabricatorAuthSessionEngine::ONETIME_WELCOME: case PhabricatorAuthSessionEngine::ONETIME_WELCOME:
$title = pht('Welcome to Phabricator'); $title = pht('Welcome to Phabricator');
break; break;

View file

@ -3,26 +3,21 @@
final class PhabricatorAuthRegisterController final class PhabricatorAuthRegisterController
extends PhabricatorAuthController { extends PhabricatorAuthController {
private $accountKey;
public function shouldRequireLogin() { public function shouldRequireLogin() {
return false; return false;
} }
public function willProcessRequest(array $data) { public function handleRequest(AphrontRequest $request) {
$this->accountKey = idx($data, 'akey'); $viewer = $this->getViewer();
} $account_key = $request->getURIData('akey');
public function processRequest() {
$request = $this->getRequest();
if ($request->getUser()->isLoggedIn()) { if ($request->getUser()->isLoggedIn()) {
return $this->renderError(pht('You are already logged in.')); return $this->renderError(pht('You are already logged in.'));
} }
$is_setup = false; $is_setup = false;
if (strlen($this->accountKey)) { if (strlen($account_key)) {
$result = $this->loadAccountForRegistrationOrLinking($this->accountKey); $result = $this->loadAccountForRegistrationOrLinking($account_key);
list($account, $provider, $response) = $result; list($account, $provider, $response) = $result;
$is_default = false; $is_default = false;
} else if ($this->isFirstTimeSetup()) { } else if ($this->isFirstTimeSetup()) {

View file

@ -3,23 +3,17 @@
final class PhabricatorAuthRevokeTokenController final class PhabricatorAuthRevokeTokenController
extends PhabricatorAuthController { extends PhabricatorAuthController {
private $id; public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer();
$id = $request->getURIData('id');
public function willProcessRequest(array $data) { $is_all = ($id === 'all');
$this->id = $data['id'];
}
public function processRequest() {
$request = $this->getRequest();
$viewer = $request->getUser();
$is_all = ($this->id === 'all');
$query = id(new PhabricatorAuthTemporaryTokenQuery()) $query = id(new PhabricatorAuthTemporaryTokenQuery())
->setViewer($viewer) ->setViewer($viewer)
->withObjectPHIDs(array($viewer->getPHID())); ->withObjectPHIDs(array($viewer->getPHID()));
if (!$is_all) { if (!$is_all) {
$query->withIDs(array($this->id)); $query->withIDs(array($id));
} }
$tokens = $query->execute(); $tokens = $query->execute();

View file

@ -5,8 +5,8 @@ final class PhabricatorAuthSSHKeyEditController
public function handleRequest(AphrontRequest $request) { public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer(); $viewer = $this->getViewer();
$id = $request->getURIData('id'); $id = $request->getURIData('id');
if ($id) { if ($id) {
$key = id(new PhabricatorAuthSSHKeyQuery()) $key = id(new PhabricatorAuthSSHKeyQuery())
->setViewer($viewer) ->setViewer($viewer)

View file

@ -3,23 +3,17 @@
final class PhabricatorAuthTerminateSessionController final class PhabricatorAuthTerminateSessionController
extends PhabricatorAuthController { extends PhabricatorAuthController {
private $id; public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer();
$id = $request->getURIData('id');
public function willProcessRequest(array $data) { $is_all = ($id === 'all');
$this->id = $data['id'];
}
public function processRequest() {
$request = $this->getRequest();
$viewer = $request->getUser();
$is_all = ($this->id === 'all');
$query = id(new PhabricatorAuthSessionQuery()) $query = id(new PhabricatorAuthSessionQuery())
->setViewer($viewer) ->setViewer($viewer)
->withIdentityPHIDs(array($viewer->getPHID())); ->withIdentityPHIDs(array($viewer->getPHID()));
if (!$is_all) { if (!$is_all) {
$query->withIDs(array($this->id)); $query->withIDs(array($id));
} }
$current_key = PhabricatorHash::digest( $current_key = PhabricatorHash::digest(

View file

@ -5,13 +5,9 @@ final class PhabricatorAuthUnlinkController
private $providerKey; private $providerKey;
public function willProcessRequest(array $data) { public function handleRequest(AphrontRequest $request) {
$this->providerKey = $data['pkey']; $viewer = $this->getViewer();
} $this->providerKey = $request->getURIData('pkey');
public function processRequest() {
$request = $this->getRequest();
$viewer = $request->getUser();
list($type, $domain) = explode(':', $this->providerKey, 2); list($type, $domain) = explode(':', $this->providerKey, 2);

View file

@ -15,9 +15,8 @@ final class PhabricatorAuthValidateController
return true; return true;
} }
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $this->getViewer();
$viewer = $request->getUser();
$failures = array(); $failures = array();

View file

@ -7,15 +7,16 @@ final class PhabricatorDisabledUserController
return false; return false;
} }
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $this->getViewer();
$user = $request->getUser(); $id = $request->getURIData('id');
if (!$user->getIsDisabled()) {
if (!$viewer->getIsDisabled()) {
return new Aphront404Response(); return new Aphront404Response();
} }
return id(new AphrontDialogView()) return id(new AphrontDialogView())
->setUser($user) ->setUser($viewer)
->setTitle(pht('Account Disabled')) ->setTitle(pht('Account Disabled'))
->addCancelButton('/logout/', pht('Okay')) ->addCancelButton('/logout/', pht('Okay'))
->appendParagraph(pht('Your account has been disabled.')); ->appendParagraph(pht('Your account has been disabled.'));

View file

@ -7,8 +7,7 @@ final class PhabricatorEmailLoginController
return false; return false;
} }
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest();
if (!PhabricatorPasswordAuthProvider::getPasswordProvider()) { if (!PhabricatorPasswordAuthProvider::getPasswordProvider()) {
return new Aphront400Response(); return new Aphront400Response();

View file

@ -3,12 +3,6 @@
final class PhabricatorEmailVerificationController final class PhabricatorEmailVerificationController
extends PhabricatorAuthController { extends PhabricatorAuthController {
private $code;
public function willProcessRequest(array $data) {
$this->code = $data['code'];
}
public function shouldRequireEmailVerification() { public function shouldRequireEmailVerification() {
// Since users need to be able to hit this endpoint in order to verify // Since users need to be able to hit this endpoint in order to verify
// email, we can't ever require email verification here. // email, we can't ever require email verification here.
@ -21,11 +15,11 @@ final class PhabricatorEmailVerificationController
return false; return false;
} }
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $this->getViewer();
$user = $request->getUser(); $code = $request->getURIData('code');
if ($user->getIsDisabled()) { if ($viewer->getIsDisabled()) {
// We allowed unapproved and disabled users to hit this controller, but // We allowed unapproved and disabled users to hit this controller, but
// want to kick out disabled users now. // want to kick out disabled users now.
return new Aphront400Response(); return new Aphront400Response();
@ -33,8 +27,8 @@ final class PhabricatorEmailVerificationController
$email = id(new PhabricatorUserEmail())->loadOneWhere( $email = id(new PhabricatorUserEmail())->loadOneWhere(
'userPHID = %s AND verificationCode = %s', 'userPHID = %s AND verificationCode = %s',
$user->getPHID(), $viewer->getPHID(),
$this->code); $code);
$submit = null; $submit = null;
@ -46,7 +40,7 @@ final class PhabricatorEmailVerificationController
'user. Make sure you followed the link in the email correctly and are '. 'user. Make sure you followed the link in the email correctly and are '.
'logged in with the user account associated with the email address.'); 'logged in with the user account associated with the email address.');
$continue = pht('Rats!'); $continue = pht('Rats!');
} else if ($email->getIsVerified() && $user->getIsEmailVerified()) { } else if ($email->getIsVerified() && $viewer->getIsEmailVerified()) {
$title = pht('Address Already Verified'); $title = pht('Address Already Verified');
$content = pht( $content = pht(
'This email address has already been verified.'); 'This email address has already been verified.');
@ -54,8 +48,8 @@ final class PhabricatorEmailVerificationController
} else if ($request->isFormPost()) { } else if ($request->isFormPost()) {
id(new PhabricatorUserEditor()) id(new PhabricatorUserEditor())
->setActor($user) ->setActor($viewer)
->verifyEmail($user, $email); ->verifyEmail($viewer, $email);
$title = pht('Address Verified'); $title = pht('Address Verified');
$content = pht( $content = pht(
@ -72,7 +66,7 @@ final class PhabricatorEmailVerificationController
} }
$dialog = id(new AphrontDialogView()) $dialog = id(new AphrontDialogView())
->setUser($user) ->setUser($viewer)
->setTitle($title) ->setTitle($title)
->addCancelButton('/', $continue) ->addCancelButton('/', $continue)
->appendChild($content); ->appendChild($content);

View file

@ -26,14 +26,13 @@ final class PhabricatorLogoutController
} }
public function handleRequest(AphrontRequest $request) { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $this->getViewer();
$user = $request->getUser();
if ($request->isFormPost()) { if ($request->isFormPost()) {
$log = PhabricatorUserLog::initializeNewLog( $log = PhabricatorUserLog::initializeNewLog(
$user, $viewer,
$user->getPHID(), $viewer->getPHID(),
PhabricatorUserLog::ACTION_LOGOUT); PhabricatorUserLog::ACTION_LOGOUT);
$log->save(); $log->save();
@ -43,7 +42,7 @@ final class PhabricatorLogoutController
$phsid = $request->getCookie(PhabricatorCookies::COOKIE_SESSION); $phsid = $request->getCookie(PhabricatorCookies::COOKIE_SESSION);
if (strlen($phsid)) { if (strlen($phsid)) {
$session = id(new PhabricatorAuthSessionQuery()) $session = id(new PhabricatorAuthSessionQuery())
->setViewer($user) ->setViewer($viewer)
->withSessionKeys(array($phsid)) ->withSessionKeys(array($phsid))
->executeOne(); ->executeOne();
if ($session) { if ($session) {
@ -56,9 +55,9 @@ final class PhabricatorLogoutController
->setURI('/auth/loggedout/'); ->setURI('/auth/loggedout/');
} }
if ($user->getPHID()) { if ($viewer->getPHID()) {
$dialog = id(new AphrontDialogView()) $dialog = id(new AphrontDialogView())
->setUser($user) ->setUser($viewer)
->setTitle(pht('Log out of Phabricator?')) ->setTitle(pht('Log out of Phabricator?'))
->appendChild(pht('Are you sure you want to log out?')) ->appendChild(pht('Are you sure you want to log out?'))
->addSubmitButton(pht('Logout')) ->addSubmitButton(pht('Logout'))

View file

@ -13,13 +13,12 @@ final class PhabricatorMustVerifyEmailController
return false; return false;
} }
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $this->getViewer();
$user = $request->getUser();
$email = $user->loadPrimaryEmail(); $email = $viewer->loadPrimaryEmail();
if ($user->getIsEmailVerified()) { if ($viewer->getIsEmailVerified()) {
return id(new AphrontRedirectResponse())->setURI('/'); return id(new AphrontRedirectResponse())->setURI('/');
} }
@ -27,7 +26,7 @@ final class PhabricatorMustVerifyEmailController
$sent = null; $sent = null;
if ($request->isFormPost()) { if ($request->isFormPost()) {
$email->sendVerificationEmail($user); $email->sendVerificationEmail($viewer);
$sent = new PHUIInfoView(); $sent = new PHUIInfoView();
$sent->setSeverity(PHUIInfoView::SEVERITY_NOTICE); $sent->setSeverity(PHUIInfoView::SEVERITY_NOTICE);
$sent->setTitle(pht('Email Sent')); $sent->setTitle(pht('Email Sent'));
@ -48,7 +47,7 @@ final class PhabricatorMustVerifyEmailController
'to try sending another one.'); 'to try sending another one.');
$dialog = id(new AphrontDialogView()) $dialog = id(new AphrontDialogView())
->setUser($user) ->setUser($viewer)
->setTitle(pht('Check Your Email')) ->setTitle(pht('Check Your Email'))
->appendParagraph($must_verify) ->appendParagraph($must_verify)
->appendParagraph($send_again) ->appendParagraph($send_again)

View file

@ -2,14 +2,13 @@
final class PhabricatorRefreshCSRFController extends PhabricatorAuthController { final class PhabricatorRefreshCSRFController extends PhabricatorAuthController {
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $this->getViewer();
$user = $request->getUser();
return id(new AphrontAjaxResponse()) return id(new AphrontAjaxResponse())
->setContent( ->setContent(
array( array(
'token' => $user->getCSRFToken(), 'token' => $viewer->getCSRFToken(),
)); ));
} }

View file

@ -142,6 +142,23 @@ final class PhabricatorBadgesEditor
return $errors; return $errors;
} }
protected function shouldSendMail(
PhabricatorLiskDAO $object,
array $xactions) {
return true;
}
public function getMailTagsMap() {
return array(
PhabricatorBadgesTransaction::MAILTAG_DETAILS =>
pht('Someone changes the badge\'s details.'),
PhabricatorBadgesTransaction::MAILTAG_COMMENT =>
pht('Someone comments on a badge.'),
PhabricatorBadgesTransaction::MAILTAG_OTHER =>
pht('Other badge activity not listed above occurs.'),
);
}
protected function shouldPublishFeedStory( protected function shouldPublishFeedStory(
PhabricatorLiskDAO $object, PhabricatorLiskDAO $object,
array $xactions) { array $xactions) {
@ -149,7 +166,7 @@ final class PhabricatorBadgesEditor
} }
protected function buildReplyHandler(PhabricatorLiskDAO $object) { protected function buildReplyHandler(PhabricatorLiskDAO $object) {
return id(new PhabricatorMacroReplyHandler()) return id(new PhabricatorBadgesReplyHandler())
->setMailReceiver($object); ->setMailReceiver($object);
} }
@ -164,6 +181,7 @@ final class PhabricatorBadgesEditor
protected function getMailTo(PhabricatorLiskDAO $object) { protected function getMailTo(PhabricatorLiskDAO $object) {
return array( return array(
$object->getCreatorPHID(),
$this->requireActor()->getPHID(), $this->requireActor()->getPHID(),
); );
} }

View file

@ -0,0 +1,28 @@
<?php
final class PhabricatorBadgesMailReceiver
extends PhabricatorObjectMailReceiver {
public function isEnabled() {
return PhabricatorApplication::isClassInstalled(
'PhabricatorBadgesApplication');
}
protected function getObjectPattern() {
return 'BDGE[1-9]\d*';
}
protected function loadObject($pattern, PhabricatorUser $viewer) {
$id = (int)substr($pattern, 4);
return id(new PhabricatorBadgesQuery())
->setViewer($viewer)
->withIDs(array($id))
->executeOne();
}
protected function getTransactionReplyHandler() {
return new PhabricatorBadgesReplyHandler();
}
}

View file

@ -0,0 +1,16 @@
<?php
final class PhabricatorBadgesReplyHandler
extends PhabricatorApplicationTransactionReplyHandler {
public function validateMailReceiver($mail_receiver) {
if (!($mail_receiver instanceof PhabricatorBadgesBadge)) {
throw new Exception(pht('Mail receiver is not a %s!', 'Badges'));
}
}
public function getObjectPrefix() {
return 'BDGE';
}
}

View file

@ -5,6 +5,7 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
PhabricatorPolicyInterface, PhabricatorPolicyInterface,
PhabricatorApplicationTransactionInterface, PhabricatorApplicationTransactionInterface,
PhabricatorSubscribableInterface, PhabricatorSubscribableInterface,
PhabricatorTokenReceiverInterface,
PhabricatorFlaggableInterface, PhabricatorFlaggableInterface,
PhabricatorDestructibleInterface { PhabricatorDestructibleInterface {
@ -13,7 +14,7 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
protected $description; protected $description;
protected $icon; protected $icon;
protected $quality; protected $quality;
protected $viewPolicy; protected $mailKey;
protected $editPolicy; protected $editPolicy;
protected $status; protected $status;
protected $creatorPHID; protected $creatorPHID;
@ -72,7 +73,6 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
->setIcon(self::DEFAULT_ICON) ->setIcon(self::DEFAULT_ICON)
->setQuality(self::DEFAULT_QUALITY) ->setQuality(self::DEFAULT_QUALITY)
->setCreatorPHID($actor->getPHID()) ->setCreatorPHID($actor->getPHID())
->setViewPolicy($view_policy)
->setEditPolicy($edit_policy) ->setEditPolicy($edit_policy)
->setStatus(self::STATUS_OPEN); ->setStatus(self::STATUS_OPEN);
} }
@ -87,6 +87,7 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
'icon' => 'text255', 'icon' => 'text255',
'quality' => 'text255', 'quality' => 'text255',
'status' => 'text32', 'status' => 'text32',
'mailKey' => 'bytes20',
), ),
self::CONFIG_KEY_SCHEMA => array( self::CONFIG_KEY_SCHEMA => array(
'key_creator' => array( 'key_creator' => array(
@ -114,6 +115,13 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
return $this->assertAttached($this->recipientPHIDs); return $this->assertAttached($this->recipientPHIDs);
} }
public function save() {
if (!$this->getMailKey()) {
$this->setMailKey(Filesystem::readRandomCharacters(20));
}
return parent::save();
}
/* -( PhabricatorPolicyInterface )----------------------------------------- */ /* -( PhabricatorPolicyInterface )----------------------------------------- */
@ -182,6 +190,15 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
} }
/* -( PhabricatorTokenReceiverInterface )---------------------------------- */
public function getUsersToNotifyOfTokenGiven() {
return array($this->getCreatorPHID());
}
/* -( PhabricatorDestructibleInterface )----------------------------------- */ /* -( PhabricatorDestructibleInterface )----------------------------------- */

View file

@ -10,6 +10,11 @@ final class PhabricatorBadgesTransaction
const TYPE_STATUS = 'badges:status'; const TYPE_STATUS = 'badges:status';
const TYPE_FLAVOR = 'badges:flavor'; const TYPE_FLAVOR = 'badges:flavor';
const MAILTAG_NAME = 'badges:name';
const MAILTAG_DETAILS = 'badges:details';
const MAILTAG_COMMENT = 'badges:comment';
const MAILTAG_OTHER = 'badges:other';
public function getApplicationName() { public function getApplicationName() {
return 'badges'; return 'badges';
} }
@ -168,6 +173,28 @@ final class PhabricatorBadgesTransaction
return parent::getTitleForFeed(); return parent::getTitleForFeed();
} }
public function getMailTags() {
$tags = parent::getMailTags();
switch ($this->getTransactionType()) {
case PhabricatorTransactions::TYPE_COMMENT:
$tags[] = self::MAILTAG_COMMENT;
break;
case self::TYPE_NAME:
case self::TYPE_DESCRIPTION:
case self::TYPE_FLAVOR:
case self::TYPE_ICON:
case self::TYPE_STATUS:
case self::TYPE_QUALITY:
$tags[] = self::MAILTAG_DETAILS;
break;
default:
$tags[] = self::MAILTAG_OTHER;
break;
}
return $tags;
}
public function shouldHide() { public function shouldHide() {
$old = $this->getOldValue(); $old = $this->getOldValue();

View file

@ -3,20 +3,14 @@
final class PhabricatorCalendarEventCancelController final class PhabricatorCalendarEventCancelController
extends PhabricatorCalendarController { extends PhabricatorCalendarController {
private $id; public function handleRequest(AphrontRequest $request) {
$viewer = $request->getViewer();
public function willProcessRequest(array $data) { $id = $request->getURIData('id');
$this->id = idx($data, 'id');
}
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
$sequence = $request->getURIData('sequence'); $sequence = $request->getURIData('sequence');
$event = id(new PhabricatorCalendarEventQuery()) $event = id(new PhabricatorCalendarEventQuery())
->setViewer($user) ->setViewer($viewer)
->withIDs(array($this->id)) ->withIDs(array($id))
->requireCapabilities( ->requireCapabilities(
array( array(
PhabricatorPolicyCapability::CAN_VIEW, PhabricatorPolicyCapability::CAN_VIEW,
@ -26,7 +20,7 @@ final class PhabricatorCalendarEventCancelController
if ($sequence) { if ($sequence) {
$parent_event = $event; $parent_event = $event;
$event = $parent_event->generateNthGhost($sequence, $user); $event = $parent_event->generateNthGhost($sequence, $viewer);
$event->attachParentEvent($parent_event); $event->attachParentEvent($parent_event);
} }
@ -51,10 +45,10 @@ final class PhabricatorCalendarEventCancelController
return id(new AphrontRedirectResponse())->setURI($cancel_uri); return id(new AphrontRedirectResponse())->setURI($cancel_uri);
} else if ($sequence) { } else if ($sequence) {
$event = $this->createEventFromGhost( $event = $this->createEventFromGhost(
$user, $viewer,
$event, $event,
$sequence); $sequence);
$event->applyViewerTimezone($user); $event->applyViewerTimezone($viewer);
} }
$xactions = array(); $xactions = array();
@ -65,7 +59,7 @@ final class PhabricatorCalendarEventCancelController
->setNewValue(!$is_cancelled); ->setNewValue(!$is_cancelled);
$editor = id(new PhabricatorCalendarEventEditor()) $editor = id(new PhabricatorCalendarEventEditor())
->setActor($user) ->setActor($viewer)
->setContentSourceFromRequest($request) ->setContentSourceFromRequest($request)
->setContinueOnNoEffect(true) ->setContinueOnNoEffect(true)
->setContinueOnMissingFields(true); ->setContinueOnMissingFields(true);

View file

@ -3,24 +3,20 @@
final class PhabricatorCalendarEventCommentController final class PhabricatorCalendarEventCommentController
extends PhabricatorCalendarController { extends PhabricatorCalendarController {
private $id;
public function willProcessRequest(array $data) {
$this->id = idx($data, 'id');
}
public function handleRequest(AphrontRequest $request) { public function handleRequest(AphrontRequest $request) {
if (!$request->isFormPost()) { if (!$request->isFormPost()) {
return new Aphront400Response(); return new Aphront400Response();
} }
$user = $request->getUser(); $viewer = $request->getViewer();
$id = $request->getURIData('id');
$is_preview = $request->isPreviewRequest(); $is_preview = $request->isPreviewRequest();
$draft = PhabricatorDraft::buildFromRequest($request); $draft = PhabricatorDraft::buildFromRequest($request);
$event = id(new PhabricatorCalendarEventQuery()) $event = id(new PhabricatorCalendarEventQuery())
->setViewer($user) ->setViewer($viewer)
->withIDs(array($this->id)) ->withIDs(array($id))
->executeOne(); ->executeOne();
if (!$event) { if (!$event) {
return new Aphront404Response(); return new Aphront404Response();
@ -29,7 +25,7 @@ final class PhabricatorCalendarEventCommentController
$index = $request->getURIData('sequence'); $index = $request->getURIData('sequence');
if ($index && !$is_preview) { if ($index && !$is_preview) {
$result = $this->getEventAtIndexForGhostPHID( $result = $this->getEventAtIndexForGhostPHID(
$user, $viewer,
$event->getPHID(), $event->getPHID(),
$index); $index);
@ -37,10 +33,10 @@ final class PhabricatorCalendarEventCommentController
$event = $result; $event = $result;
} else { } else {
$event = $this->createEventFromGhost( $event = $this->createEventFromGhost(
$user, $viewer,
$event, $event,
$index); $index);
$event->applyViewerTimezone($user); $event->applyViewerTimezone($viewer);
} }
} }
@ -54,7 +50,7 @@ final class PhabricatorCalendarEventCommentController
->setContent($request->getStr('comment'))); ->setContent($request->getStr('comment')));
$editor = id(new PhabricatorCalendarEventEditor()) $editor = id(new PhabricatorCalendarEventEditor())
->setActor($user) ->setActor($viewer)
->setContinueOnNoEffect($request->isContinueRequest()) ->setContinueOnNoEffect($request->isContinueRequest())
->setContentSourceFromRequest($request) ->setContentSourceFromRequest($request)
->setIsPreview($is_preview); ->setIsPreview($is_preview);
@ -73,7 +69,7 @@ final class PhabricatorCalendarEventCommentController
if ($request->isAjax() && $is_preview) { if ($request->isAjax() && $is_preview) {
return id(new PhabricatorApplicationTransactionResponse()) return id(new PhabricatorApplicationTransactionResponse())
->setViewer($user) ->setViewer($viewer)
->setTransactions($xactions) ->setTransactions($xactions)
->setIsPreview($is_preview); ->setIsPreview($is_preview);
} else { } else {

View file

@ -5,10 +5,6 @@ final class PhabricatorCalendarEventEditController
private $id; private $id;
public function willProcessRequest(array $data) {
$this->id = idx($data, 'id');
}
public function isCreate() { public function isCreate() {
return !$this->id; return !$this->id;
} }
@ -16,6 +12,8 @@ final class PhabricatorCalendarEventEditController
public function handleRequest(AphrontRequest $request) { public function handleRequest(AphrontRequest $request) {
$viewer = $request->getViewer(); $viewer = $request->getViewer();
$user_phid = $viewer->getPHID(); $user_phid = $viewer->getPHID();
$this->id = $request->getURIData('id');
$error_name = true; $error_name = true;
$error_recurrence_end_date = null; $error_recurrence_end_date = null;
$error_start_date = true; $error_start_date = true;

View file

@ -3,19 +3,14 @@
final class PhabricatorCalendarEventEditIconController final class PhabricatorCalendarEventEditIconController
extends PhabricatorCalendarController { extends PhabricatorCalendarController {
private $id;
public function willProcessRequest(array $data) {
$this->id = idx($data, 'id');
}
public function handleRequest(AphrontRequest $request) { public function handleRequest(AphrontRequest $request) {
$viewer = $request->getUser(); $viewer = $request->getUser();
$id = $request->getURIData('id');
if ($this->id) { if ($id) {
$event = id(new PhabricatorCalendarEventQuery()) $event = id(new PhabricatorCalendarEventQuery())
->setViewer($viewer) ->setViewer($viewer)
->withIDs(array($this->id)) ->withIDs(array($id))
->requireCapabilities( ->requireCapabilities(
array( array(
PhabricatorPolicyCapability::CAN_VIEW, PhabricatorPolicyCapability::CAN_VIEW,

View file

@ -3,14 +3,12 @@
final class PhabricatorCalendarEventJoinController final class PhabricatorCalendarEventJoinController
extends PhabricatorCalendarController { extends PhabricatorCalendarController {
private $id;
const ACTION_ACCEPT = 'accept'; const ACTION_ACCEPT = 'accept';
const ACTION_DECLINE = 'decline'; const ACTION_DECLINE = 'decline';
const ACTION_JOIN = 'join'; const ACTION_JOIN = 'join';
public function handleRequest(AphrontRequest $request) { public function handleRequest(AphrontRequest $request) {
$this->id = $request->getURIData('id'); $id = $request->getURIData('id');
$action = $request->getURIData('action'); $action = $request->getURIData('action');
$request = $this->getRequest(); $request = $this->getRequest();
@ -20,7 +18,7 @@ final class PhabricatorCalendarEventJoinController
$event = id(new PhabricatorCalendarEventQuery()) $event = id(new PhabricatorCalendarEventQuery())
->setViewer($viewer) ->setViewer($viewer)
->withIDs(array($this->id)) ->withIDs(array($id))
->executeOne(); ->executeOne();
if (!$event) { if (!$event) {

View file

@ -3,26 +3,20 @@
final class PhabricatorCalendarEventViewController final class PhabricatorCalendarEventViewController
extends PhabricatorCalendarController { extends PhabricatorCalendarController {
private $id;
public function shouldAllowPublic() { public function shouldAllowPublic() {
return true; return true;
} }
public function willProcessRequest(array $data) { public function handleRequest(AphrontRequest $request) {
$this->id = $data['id']; $viewer = $request->getViewer();
} $id = $request->getURIData('id');
public function processRequest() {
$request = $this->getRequest();
$viewer = $request->getUser();
$sequence = $request->getURIData('sequence'); $sequence = $request->getURIData('sequence');
$timeline = null; $timeline = null;
$event = id(new PhabricatorCalendarEventQuery()) $event = id(new PhabricatorCalendarEventQuery())
->setViewer($viewer) ->setViewer($viewer)
->withIDs(array($this->id)) ->withIDs(array($id))
->executeOne(); ->executeOne();
if (!$event) { if (!$event) {
return new Aphront404Response(); return new Aphront404Response();

View file

@ -287,10 +287,21 @@ final class PhabricatorCalendarEventSearchEngine
$event->getDuration()); $event->getDuration());
} }
if ($event->getIsGhostEvent()) {
$title_text = $event->getMonogram()
.' ('
.$event->getSequenceIndex()
.'): '
.$event->getName();
} else {
$title_text = $event->getMonogram().': '.$event->getName();
}
$item = id(new PHUIObjectItemView()) $item = id(new PHUIObjectItemView())
->setUser($viewer) ->setUser($viewer)
->setObject($event) ->setObject($event)
->setHeader($viewer->renderHandle($event->getPHID())->render()) ->setHeader($title_text)
->setHref($event->getURI())
->addAttribute($event_date_info) ->addAttribute($event_date_info)
->addAttribute($attendees) ->addAttribute($attendees)
->addIcon('none', $duration); ->addIcon('none', $duration);

View file

@ -7,12 +7,11 @@ final class PhabricatorChatLogChannelListController
return true; return true;
} }
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $request->getViewer();
$user = $request->getUser();
$channels = id(new PhabricatorChatLogChannelQuery()) $channels = id(new PhabricatorChatLogChannelQuery())
->setViewer($user) ->setViewer($viewer)
->execute(); ->execute();
$list = new PHUIObjectItemListView(); $list = new PHUIObjectItemListView();

View file

@ -3,19 +3,13 @@
final class PhabricatorChatLogChannelLogController final class PhabricatorChatLogChannelLogController
extends PhabricatorChatLogController { extends PhabricatorChatLogController {
private $channelID;
public function shouldAllowPublic() { public function shouldAllowPublic() {
return true; return true;
} }
public function willProcessRequest(array $data) { public function handleRequest(AphrontRequest $request) {
$this->channelID = $data['channelID']; $viewer = $request->getViewer();
} $id = $request->getURIData('channelID');
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
$uri = clone $request->getRequestURI(); $uri = clone $request->getRequestURI();
$uri->setQueryParams(array()); $uri->setQueryParams(array());
@ -25,12 +19,12 @@ final class PhabricatorChatLogChannelLogController
$pager->setPageSize(250); $pager->setPageSize(250);
$query = id(new PhabricatorChatLogQuery()) $query = id(new PhabricatorChatLogQuery())
->setViewer($user) ->setViewer($viewer)
->withChannelIDs(array($this->channelID)); ->withChannelIDs(array($id));
$channel = id(new PhabricatorChatLogChannelQuery()) $channel = id(new PhabricatorChatLogChannelQuery())
->setViewer($user) ->setViewer($viewer)
->withIDs(array($this->channelID)) ->withIDs(array($id))
->executeOne(); ->executeOne();
if (!$channel) { if (!$channel) {
@ -115,7 +109,7 @@ final class PhabricatorChatLogChannelLogController
$href = $uri->alter('at', $block['id']); $href = $uri->alter('at', $block['id']);
$timestamp = $block['epoch']; $timestamp = $block['epoch'];
$timestamp = phabricator_datetime($timestamp, $user); $timestamp = phabricator_datetime($timestamp, $viewer);
$timestamp = phutil_tag( $timestamp = phutil_tag(
'a', 'a',
array( array(
@ -189,7 +183,7 @@ final class PhabricatorChatLogChannelLogController
->addTextCrumb($channel->getChannelName(), $uri); ->addTextCrumb($channel->getChannelName(), $uri);
$form = id(new AphrontFormView()) $form = id(new AphrontFormView())
->setUser($user) ->setUser($viewer)
->setMethod('GET') ->setMethod('GET')
->setAction($uri) ->setAction($uri)
->appendChild( ->appendChild(
@ -273,7 +267,7 @@ final class PhabricatorChatLogChannelLogController
AphrontRequest $request, AphrontRequest $request,
PhabricatorChatLogQuery $query) { PhabricatorChatLogQuery $query) {
$user = $request->getUser(); $viewer = $request->getViewer();
$at_id = $request->getInt('at'); $at_id = $request->getInt('at');
$at_date = $request->getStr('date'); $at_date = $request->getStr('date');
@ -298,7 +292,7 @@ final class PhabricatorChatLogChannelLogController
); );
} else if ($at_date) { } else if ($at_date) {
$timestamp = PhabricatorTime::parseLocalTime($at_date, $user); $timestamp = PhabricatorTime::parseLocalTime($at_date, $viewer);
if ($timestamp) { if ($timestamp) {
$context_logs = $query $context_logs = $query

View file

@ -1,18 +1,41 @@
<?php <?php
/** /**
* @task status Method Status * @task info Method Information
* @task pager Paging Results * @task status Method Status
* @task pager Paging Results
*/ */
abstract class ConduitAPIMethod abstract class ConduitAPIMethod
extends Phobject extends Phobject
implements PhabricatorPolicyInterface { implements PhabricatorPolicyInterface {
const METHOD_STATUS_STABLE = 'stable'; const METHOD_STATUS_STABLE = 'stable';
const METHOD_STATUS_UNSTABLE = 'unstable'; const METHOD_STATUS_UNSTABLE = 'unstable';
const METHOD_STATUS_DEPRECATED = 'deprecated'; const METHOD_STATUS_DEPRECATED = 'deprecated';
/**
* Get a short, human-readable text summary of the method.
*
* @return string Short summary of method.
* @task info
*/
public function getMethodSummary() {
return $this->getMethodDescription();
}
/**
* Get a detailed description of the method.
*
* This method should return remarkup.
*
* @return string Detailed description of the method.
* @task info
*/
abstract public function getMethodDescription(); abstract public function getMethodDescription();
abstract protected function defineParamTypes(); abstract protected function defineParamTypes();
abstract protected function defineReturnType(); abstract protected function defineReturnType();

View file

@ -174,7 +174,7 @@ final class PhabricatorConduitSearchEngine
$item = id(new PHUIObjectItemView()) $item = id(new PHUIObjectItemView())
->setHeader($method_name) ->setHeader($method_name)
->setHref($this->getApplicationURI('method/'.$method_name.'/')) ->setHref($this->getApplicationURI('method/'.$method_name.'/'))
->addAttribute($method->getMethodDescription()); ->addAttribute($method->getMethodSummary());
switch ($method->getMethodStatus()) { switch ($method->getMethodStatus()) {
case ConduitAPIMethod::METHOD_STATUS_STABLE: case ConduitAPIMethod::METHOD_STATUS_STABLE:

View file

@ -3,9 +3,8 @@
final class PhabricatorConfigAllController final class PhabricatorConfigAllController
extends PhabricatorConfigController { extends PhabricatorConfigController {
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $request->getViewer();
$user = $request->getUser();
$db_values = id(new PhabricatorConfigEntry()) $db_values = id(new PhabricatorConfigEntry())
->loadAllWhere('namespace = %s', 'default'); ->loadAllWhere('namespace = %s', 'default');

View file

@ -3,9 +3,8 @@
final class PhabricatorConfigDatabaseIssueController final class PhabricatorConfigDatabaseIssueController
extends PhabricatorConfigDatabaseController { extends PhabricatorConfigDatabaseController {
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $request->getViewer();
$viewer = $request->getUser();
$query = $this->buildSchemaQuery(); $query = $this->buildSchemaQuery();

View file

@ -8,16 +8,12 @@ final class PhabricatorConfigDatabaseStatusController
private $column; private $column;
private $key; private $key;
public function willProcessRequest(array $data) { public function handleRequest(AphrontRequest $request) {
$this->database = idx($data, 'database'); $viewer = $request->getViewer();
$this->table = idx($data, 'table'); $this->database = $request->getURIData('database');
$this->column = idx($data, 'column'); $this->table = $request->getURIData('table');
$this->key = idx($data, 'key'); $this->column = $request->getURIData('column');
} $this->key = $request->getURIData('key');
public function processRequest() {
$request = $this->getRequest();
$viewer = $request->getUser();
$query = $this->buildSchemaQuery(); $query = $this->buildSchemaQuery();

View file

@ -3,25 +3,19 @@
final class PhabricatorConfigEditController final class PhabricatorConfigEditController
extends PhabricatorConfigController { extends PhabricatorConfigController {
private $key; public function handleRequest(AphrontRequest $request) {
$viewer = $request->getViewer();
public function willProcessRequest(array $data) { $key = $request->getURIData('key');
$this->key = $data['key'];
}
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
$options = PhabricatorApplicationConfigOptions::loadAllOptions(); $options = PhabricatorApplicationConfigOptions::loadAllOptions();
if (empty($options[$this->key])) { if (empty($options[$key])) {
$ancient = PhabricatorExtraConfigSetupCheck::getAncientConfig(); $ancient = PhabricatorExtraConfigSetupCheck::getAncientConfig();
if (isset($ancient[$this->key])) { if (isset($ancient[$key])) {
$desc = pht( $desc = pht(
"This configuration has been removed. You can safely delete ". "This configuration has been removed. You can safely delete ".
"it.\n\n%s", "it.\n\n%s",
$ancient[$this->key]); $ancient[$key]);
} else { } else {
$desc = pht( $desc = pht(
'This configuration option is unknown. It may be misspelled, '. 'This configuration option is unknown. It may be misspelled, '.
@ -32,14 +26,14 @@ final class PhabricatorConfigEditController
// longer exists. Allow it to be edited so it can be reviewed and // longer exists. Allow it to be edited so it can be reviewed and
// deleted. // deleted.
$option = id(new PhabricatorConfigOption()) $option = id(new PhabricatorConfigOption())
->setKey($this->key) ->setKey($key)
->setType('wild') ->setType('wild')
->setDefault(null) ->setDefault(null)
->setDescription($desc); ->setDescription($desc);
$group = null; $group = null;
$group_uri = $this->getApplicationURI(); $group_uri = $this->getApplicationURI();
} else { } else {
$option = $options[$this->key]; $option = $options[$key];
$group = $option->getGroup(); $group = $option->getGroup();
$group_uri = $this->getApplicationURI('group/'.$group->getKey().'/'); $group_uri = $this->getApplicationURI('group/'.$group->getKey().'/');
} }
@ -57,11 +51,11 @@ final class PhabricatorConfigEditController
$config_entry = id(new PhabricatorConfigEntry()) $config_entry = id(new PhabricatorConfigEntry())
->loadOneWhere( ->loadOneWhere(
'configKey = %s AND namespace = %s', 'configKey = %s AND namespace = %s',
$this->key, $key,
'default'); 'default');
if (!$config_entry) { if (!$config_entry) {
$config_entry = id(new PhabricatorConfigEntry()) $config_entry = id(new PhabricatorConfigEntry())
->setConfigKey($this->key) ->setConfigKey($key)
->setNamespace('default') ->setNamespace('default')
->setIsDeleted(true); ->setIsDeleted(true);
$config_entry->setPHID($config_entry->generatePHID()); $config_entry->setPHID($config_entry->generatePHID());
@ -81,7 +75,7 @@ final class PhabricatorConfigEditController
if (!$errors) { if (!$errors) {
$editor = id(new PhabricatorConfigEditor()) $editor = id(new PhabricatorConfigEditor())
->setActor($user) ->setActor($viewer)
->setContinueOnNoEffect(true) ->setContinueOnNoEffect(true)
->setContentSourceFromRequest($request); ->setContentSourceFromRequest($request);
@ -138,7 +132,7 @@ final class PhabricatorConfigEditController
} }
$engine = new PhabricatorMarkupEngine(); $engine = new PhabricatorMarkupEngine();
$engine->setViewer($user); $engine->setViewer($viewer);
$engine->addObject($option, 'description'); $engine->addObject($option, 'description');
$engine->process(); $engine->process();
$description = phutil_tag( $description = phutil_tag(
@ -149,7 +143,7 @@ final class PhabricatorConfigEditController
$engine->getOutput($option, 'description')); $engine->getOutput($option, 'description'));
$form $form
->setUser($user) ->setUser($viewer)
->addHiddenInput('issue', $request->getStr('issue')) ->addHiddenInput('issue', $request->getStr('issue'))
->appendChild( ->appendChild(
id(new AphrontFormMarkupControl()) id(new AphrontFormMarkupControl())
@ -194,7 +188,7 @@ final class PhabricatorConfigEditController
->setValue($this->renderDefaults($option, $config_entry))); ->setValue($this->renderDefaults($option, $config_entry)));
} }
$title = pht('Edit %s', $this->key); $title = pht('Edit %s', $key);
$short = pht('Edit'); $short = pht('Edit');
$form_box = id(new PHUIObjectBoxView()) $form_box = id(new PHUIObjectBoxView())
@ -212,7 +206,7 @@ final class PhabricatorConfigEditController
$crumbs->addTextCrumb($group->getName(), $group_uri); $crumbs->addTextCrumb($group->getName(), $group_uri);
} }
$crumbs->addTextCrumb($this->key, '/config/edit/'.$this->key); $crumbs->addTextCrumb($key, '/config/edit/'.$key);
$timeline = $this->buildTransactionTimeline( $timeline = $this->buildTransactionTimeline(
$config_entry, $config_entry,

View file

@ -3,18 +3,12 @@
final class PhabricatorConfigGroupController final class PhabricatorConfigGroupController
extends PhabricatorConfigController { extends PhabricatorConfigController {
private $groupKey; public function handleRequest(AphrontRequest $request) {
$viewer = $request->getViewer();
public function willProcessRequest(array $data) { $group_key = $request->getURIData('key');
$this->groupKey = $data['key'];
}
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
$groups = PhabricatorApplicationConfigOptions::loadAll(); $groups = PhabricatorApplicationConfigOptions::loadAll();
$options = idx($groups, $this->groupKey); $options = idx($groups, $group_key);
if (!$options) { if (!$options) {
return new Aphront404Response(); return new Aphront404Response();
} }

View file

@ -3,12 +3,12 @@
final class PhabricatorConfigHistoryController final class PhabricatorConfigHistoryController
extends PhabricatorConfigController { extends PhabricatorConfigController {
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $request->getViewer();
$user = $request->getUser(); $id = $request->getURIData('id');
$xactions = id(new PhabricatorConfigTransactionQuery()) $xactions = id(new PhabricatorConfigTransactionQuery())
->setViewer($user) ->setViewer($viewer)
->needComments(true) ->needComments(true)
->execute(); ->execute();
@ -19,7 +19,7 @@ final class PhabricatorConfigHistoryController
$view = $xaction->getApplicationTransactionViewObject(); $view = $xaction->getApplicationTransactionViewObject();
$timeline = $view $timeline = $view
->setUser($user) ->setUser($viewer)
->setTransactions($xactions) ->setTransactions($xactions)
->setRenderAsFeed(true) ->setRenderAsFeed(true)
->setObjectPHID(PhabricatorPHIDConstants::PHID_VOID); ->setObjectPHID(PhabricatorPHIDConstants::PHID_VOID);

View file

@ -3,38 +3,33 @@
final class PhabricatorConfigIgnoreController final class PhabricatorConfigIgnoreController
extends PhabricatorConfigController { extends PhabricatorConfigController {
private $verb; public function handleRequest(AphrontRequest $request) {
private $issue; $viewer = $request->getViewer();
$issue = $request->getURIData('key');
$verb = $request->getURIData('verb');
public function willProcessRequest(array $data) { $issue_uri = $this->getApplicationURI('issue/'.$issue.'/');
$this->verb = $data['verb'];
$this->issue = $data['key'];
}
public function processRequest() {
$request = $this->getRequest();
$issue_uri = $this->getApplicationURI('issue/'.$this->issue.'/');
if ($request->isDialogFormPost()) { if ($request->isDialogFormPost()) {
$this->manageApplication(); $this->manageApplication($issue);
return id(new AphrontRedirectResponse())->setURI($issue_uri); return id(new AphrontRedirectResponse())->setURI($issue_uri);
} }
if ($this->verb == 'ignore') { if ($verb == 'ignore') {
$title = pht('Really ignore this setup issue?'); $title = pht('Really ignore this setup issue?');
$submit_title = pht('Ignore'); $submit_title = pht('Ignore');
$body = pht( $body = pht(
"You can ignore an issue if you don't want to fix it, or plan to ". "You can ignore an issue if you don't want to fix it, or plan to ".
"fix it later. Ignored issues won't appear on every page but will ". "fix it later. Ignored issues won't appear on every page but will ".
"still be shown in the list of open issues."); "still be shown in the list of open issues.");
} else if ($this->verb == 'unignore') { } else if ($verb == 'unignore') {
$title = pht('Unignore this setup issue?'); $title = pht('Unignore this setup issue?');
$submit_title = pht('Unignore'); $submit_title = pht('Unignore');
$body = pht( $body = pht(
'This issue will no longer be suppressed, and will return to its '. 'This issue will no longer be suppressed, and will return to its '.
'rightful place as a global setup warning.'); 'rightful place as a global setup warning.');
} else { } else {
throw new Exception(pht('Unrecognized verb: %s', $this->verb)); throw new Exception(pht('Unrecognized verb: %s', $verb));
} }
$dialog = id(new AphrontDialogView()) $dialog = id(new AphrontDialogView())
@ -47,15 +42,15 @@ final class PhabricatorConfigIgnoreController
return id(new AphrontDialogResponse())->setDialog($dialog); return id(new AphrontDialogResponse())->setDialog($dialog);
} }
public function manageApplication() { public function manageApplication($issue) {
$key = 'config.ignore-issues'; $key = 'config.ignore-issues';
$config_entry = PhabricatorConfigEntry::loadConfigEntry($key); $config_entry = PhabricatorConfigEntry::loadConfigEntry($key);
$list = $config_entry->getValue(); $list = $config_entry->getValue();
if (isset($list[$this->issue])) { if (isset($list[$issue])) {
unset($list[$this->issue]); unset($list[$issue]);
} else { } else {
$list[$this->issue] = true; $list[$issue] = true;
} }
PhabricatorConfigEditor::storeNewValue( PhabricatorConfigEditor::storeNewValue(

View file

@ -3,9 +3,8 @@
final class PhabricatorConfigIssueListController final class PhabricatorConfigIssueListController
extends PhabricatorConfigController { extends PhabricatorConfigController {
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $request->getViewer();
$user = $request->getUser();
$nav = $this->buildSideNavView(); $nav = $this->buildSideNavView();
$nav->selectFilter('issue/'); $nav->selectFilter('issue/');

View file

@ -3,21 +3,15 @@
final class PhabricatorConfigIssueViewController final class PhabricatorConfigIssueViewController
extends PhabricatorConfigController { extends PhabricatorConfigController {
private $issueKey; public function handleRequest(AphrontRequest $request) {
$viewer = $request->getViewer();
public function willProcessRequest(array $data) { $issue_key = $request->getURIData('key');
$this->issueKey = $data['key'];
}
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
$issues = PhabricatorSetupCheck::runAllChecks(); $issues = PhabricatorSetupCheck::runAllChecks();
PhabricatorSetupCheck::setOpenSetupIssueKeys( PhabricatorSetupCheck::setOpenSetupIssueKeys(
PhabricatorSetupCheck::getUnignoredIssueKeys($issues)); PhabricatorSetupCheck::getUnignoredIssueKeys($issues));
if (empty($issues[$this->issueKey])) { if (empty($issues[$issue_key])) {
$content = id(new PHUIInfoView()) $content = id(new PHUIInfoView())
->setSeverity(PHUIInfoView::SEVERITY_NOTICE) ->setSeverity(PHUIInfoView::SEVERITY_NOTICE)
->setTitle(pht('Issue Resolved')) ->setTitle(pht('Issue Resolved'))
@ -31,7 +25,7 @@ final class PhabricatorConfigIssueViewController
pht('Return to Open Issue List'))); pht('Return to Open Issue List')));
$title = pht('Resolved Issue'); $title = pht('Resolved Issue');
} else { } else {
$issue = $issues[$this->issueKey]; $issue = $issues[$issue_key];
$content = $this->renderIssue($issue); $content = $this->renderIssue($issue);
$title = $issue->getShortName(); $title = $issue->getShortName();
} }

View file

@ -3,9 +3,8 @@
final class PhabricatorConfigListController final class PhabricatorConfigListController
extends PhabricatorConfigController { extends PhabricatorConfigController {
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $request->getViewer();
$user = $request->getUser();
$nav = $this->buildSideNavView(); $nav = $this->buildSideNavView();
$nav->selectFilter('/'); $nav->selectFilter('/');

View file

@ -3,9 +3,8 @@
final class PhabricatorConfigWelcomeController final class PhabricatorConfigWelcomeController
extends PhabricatorConfigController { extends PhabricatorConfigController {
public function processRequest() { public function handleRequest(AphrontRequest $request) {
$request = $this->getRequest(); $viewer = $request->getViewer();
$viewer = $request->getUser();
$nav = $this->buildSideNavView(); $nav = $this->buildSideNavView();
$nav->selectFilter('welcome/'); $nav->selectFilter('welcome/');

View file

@ -7,6 +7,7 @@ final class ConpherenceNewRoomController extends ConpherenceController {
$title = pht('New Room'); $title = pht('New Room');
$e_title = true; $e_title = true;
$v_message = null;
$validation_exception = null; $validation_exception = null;
$conpherence = ConpherenceThread::initializeNewRoom($user); $conpherence = ConpherenceThread::initializeNewRoom($user);
@ -35,12 +36,12 @@ final class ConpherenceNewRoomController extends ConpherenceController {
->setTransactionType(PhabricatorTransactions::TYPE_JOIN_POLICY) ->setTransactionType(PhabricatorTransactions::TYPE_JOIN_POLICY)
->setNewValue($request->getStr('joinPolicy')); ->setNewValue($request->getStr('joinPolicy'));
$message = $request->getStr('message'); $v_message = $request->getStr('message');
if ($message) { if (strlen($v_message)) {
$message_xactions = $editor->generateTransactionsFromText( $message_xactions = $editor->generateTransactionsFromText(
$user, $user,
$conpherence, $conpherence,
$message); $v_message);
$xactions = array_merge($xactions, $message_xactions); $xactions = array_merge($xactions, $message_xactions);
} }
@ -121,7 +122,8 @@ final class ConpherenceNewRoomController extends ConpherenceController {
id(new PhabricatorRemarkupControl()) id(new PhabricatorRemarkupControl())
->setUser($user) ->setUser($user)
->setName('message') ->setName('message')
->setLabel(pht('First Message'))); ->setLabel(pht('First Message'))
->setValue($v_message));
$dialog->appendChild($form); $dialog->appendChild($form);

View file

@ -3,19 +3,13 @@
final class PhabricatorCountdownDeleteController final class PhabricatorCountdownDeleteController
extends PhabricatorCountdownController { extends PhabricatorCountdownController {
private $id; public function handleRequest(AphrontRequest $request) {
$viewer = $request->getViewer();
public function willProcessRequest(array $data) { $id = $request->getURIData('id');
$this->id = $data['id'];
}
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
$countdown = id(new PhabricatorCountdownQuery()) $countdown = id(new PhabricatorCountdownQuery())
->setViewer($user) ->setViewer($viewer)
->withIDs(array($this->id)) ->withIDs(array($id))
->requireCapabilities( ->requireCapabilities(
array( array(
PhabricatorPolicyCapability::CAN_VIEW, PhabricatorPolicyCapability::CAN_VIEW,

View file

@ -3,19 +3,15 @@
final class PhabricatorCountdownListController final class PhabricatorCountdownListController
extends PhabricatorCountdownController { extends PhabricatorCountdownController {
private $queryKey;
public function shouldAllowPublic() { public function shouldAllowPublic() {
return true; return true;
} }
public function willProcessRequest(array $data) { public function handleRequest(AphrontRequest $request) {
$this->queryKey = idx($data, 'queryKey'); $querykey = $request->getURIData('queryKey');
}
public function processRequest() {
$controller = id(new PhabricatorApplicationSearchController()) $controller = id(new PhabricatorApplicationSearchController())
->setQueryKey($this->queryKey) ->setQueryKey($querykey)
->setSearchEngine(new PhabricatorCountdownSearchEngine()) ->setSearchEngine(new PhabricatorCountdownSearchEngine())
->setNavigation($this->buildSideNavView()); ->setNavigation($this->buildSideNavView());

View file

@ -160,7 +160,7 @@ final class PhabricatorCountdownEditor
protected function buildMailTemplate(PhabricatorLiskDAO $object) { protected function buildMailTemplate(PhabricatorLiskDAO $object) {
$monogram = $object->getMonogram(); $monogram = $object->getMonogram();
$name = $object->getName(); $name = $object->getTitle();
return id(new PhabricatorMetaMTAMail()) return id(new PhabricatorMetaMTAMail())
->setSubject("{$monogram}: {$name}") ->setSubject("{$monogram}: {$name}")
@ -172,6 +172,13 @@ final class PhabricatorCountdownEditor
array $xactions) { array $xactions) {
$body = parent::buildMailBody($object, $xactions); $body = parent::buildMailBody($object, $xactions);
$description = $object->getDescription();
if (strlen($description)) {
$body->addTextSection(
pht('COUNTDOWN DESCRIPTION'),
$object->getDescription());
}
$body->addLinkSection( $body->addLinkSection(
pht('COUNTDOWN DETAIL'), pht('COUNTDOWN DETAIL'),
@ -181,11 +188,13 @@ final class PhabricatorCountdownEditor
} }
protected function getMailTo(PhabricatorLiskDAO $object) { protected function getMailTo(PhabricatorLiskDAO $object) {
return array($object->getAuthorPHID()); return array(
$object->getAuthorPHID(),
$this->requireActor()->getPHID(),
);
} }
protected function getMailSubjectPrefix() { protected function getMailSubjectPrefix() {
return 'Countdown'; return '[Countdown]';
} }
protected function buildReplyHandler(PhabricatorLiskDAO $object) { protected function buildReplyHandler(PhabricatorLiskDAO $object) {

View file

@ -0,0 +1,28 @@
<?php
final class PhabricatorCountdownMailReceiver
extends PhabricatorObjectMailReceiver {
public function isEnabled() {
return PhabricatorApplication::isClassInstalled(
'PhabricatorCountdownApplication');
}
protected function getObjectPattern() {
return 'C[1-9]\d*';
}
protected function loadObject($pattern, PhabricatorUser $viewer) {
$id = (int)substr($pattern, 4);
return id(new PhabricatorCountdownQuery())
->setViewer($viewer)
->withIDs(array($id))
->executeOne();
}
protected function getTransactionReplyHandler() {
return new PhabricatorCountdownReplyHandler();
}
}

View file

@ -102,13 +102,9 @@ final class PhabricatorCountdownSearchEngine
foreach ($countdowns as $countdown) { foreach ($countdowns as $countdown) {
$id = $countdown->getID(); $id = $countdown->getID();
$ended = false; $ended = false;
$icon = 'fa-clock-o';
$color = 'green';
$epoch = $countdown->getEpoch(); $epoch = $countdown->getEpoch();
if ($epoch <= PhabricatorTime::getNow()) { if ($epoch <= PhabricatorTime::getNow()) {
$ended = true; $ended = true;
$icon = 'fa-check-square-o';
$color = 'grey';
} }
$item = id(new PHUIObjectItemView()) $item = id(new PHUIObjectItemView())
@ -116,7 +112,6 @@ final class PhabricatorCountdownSearchEngine
->setObject($countdown) ->setObject($countdown)
->setObjectName("C{$id}") ->setObjectName("C{$id}")
->setHeader($countdown->getTitle()) ->setHeader($countdown->getTitle())
->setStatusIcon($icon.' '.$color)
->setHref($this->getApplicationURI("{$id}/")) ->setHref($this->getApplicationURI("{$id}/"))
->addByline( ->addByline(
pht( pht(
@ -128,6 +123,14 @@ final class PhabricatorCountdownSearchEngine
pht('Launched on %s', phabricator_datetime($epoch, $viewer))); pht('Launched on %s', phabricator_datetime($epoch, $viewer)));
$item->setDisabled(true); $item->setDisabled(true);
} else { } else {
$time_left = ($epoch - PhabricatorTime::getNow());
$num = round($time_left / (60 * 60 * 24));
$noun = pht('Days');
if ($num < 1) {
$num = round($time_left / (60 * 60), 1);
$noun = pht('Hours');
}
$item->setCountdown($num, $noun);
$item->addAttribute( $item->addAttribute(
phabricator_datetime($epoch, $viewer)); phabricator_datetime($epoch, $viewer));
} }

View file

@ -16,7 +16,7 @@ final class PhabricatorCountdown extends PhabricatorCountdownDAO
protected $description; protected $description;
protected $viewPolicy; protected $viewPolicy;
protected $editPolicy; protected $editPolicy;
protected $mailKey;
protected $spacePHID; protected $spacePHID;
public static function initializeNewCountdown(PhabricatorUser $actor) { public static function initializeNewCountdown(PhabricatorUser $actor) {
@ -41,6 +41,7 @@ final class PhabricatorCountdown extends PhabricatorCountdownDAO
self::CONFIG_COLUMN_SCHEMA => array( self::CONFIG_COLUMN_SCHEMA => array(
'title' => 'text255', 'title' => 'text255',
'description' => 'text', 'description' => 'text',
'mailKey' => 'bytes20',
), ),
) + parent::getConfiguration(); ) + parent::getConfiguration();
} }
@ -54,6 +55,13 @@ final class PhabricatorCountdown extends PhabricatorCountdownDAO
return 'C'.$this->getID(); return 'C'.$this->getID();
} }
public function save() {
if (!$this->getMailKey()) {
$this->setMailKey(Filesystem::readRandomCharacters(20));
}
return parent::save();
}
/* -( PhabricatorSubscribableInterface )----------------------------------- */ /* -( PhabricatorSubscribableInterface )----------------------------------- */

View file

@ -152,4 +152,29 @@ final class PhabricatorCountdownTransaction
return $tags; return $tags;
} }
public function shouldHide() {
$old = $this->getOldValue();
switch ($this->getTransactionType()) {
case self::TYPE_DESCRIPTION:
return ($old === null);
}
return parent::shouldHide();
}
public function hasChangeDetails() {
switch ($this->getTransactionType()) {
case self::TYPE_DESCRIPTION:
return ($this->getOldValue() !== null);
}
return parent::hasChangeDetails();
}
public function renderChangeDetails(PhabricatorUser $viewer) {
return $this->renderTextCorpusChangeDetails(
$viewer,
$this->getOldValue(),
$this->getNewValue());
}
} }

View file

@ -56,6 +56,16 @@ final class PhabricatorCountdownView extends AphrontTagView {
javelin_tag('td', array('sigil' => 'phabricator-timer-seconds'), '-'), javelin_tag('td', array('sigil' => 'phabricator-timer-seconds'), '-'),
); );
$epoch = $countdown->getEpoch();
$launch_date = phabricator_datetime($epoch, $this->getUser());
$foot = phutil_tag(
'td',
array(
'colspan' => '4',
'class' => 'phabricator-timer-foot',
),
$launch_date);
$container = celerity_generate_unique_node_id(); $container = celerity_generate_unique_node_id();
$content = phutil_tag( $content = phutil_tag(
'div', 'div',
@ -65,6 +75,7 @@ final class PhabricatorCountdownView extends AphrontTagView {
phutil_tag('table', array('class' => 'phabricator-timer-table'), array( phutil_tag('table', array('class' => 'phabricator-timer-table'), array(
phutil_tag('tr', array(), $ths), phutil_tag('tr', array(), $ths),
phutil_tag('tr', array(), $dashes), phutil_tag('tr', array(), $dashes),
phutil_tag('tr', array(), $foot),
)), )),
)); ));

View file

@ -222,7 +222,6 @@ final class PhabricatorDaemonConsoleController
$nav, $nav,
array( array(
'title' => pht('Console'), 'title' => pht('Console'),
'device' => false,
)); ));
} }

View file

@ -56,8 +56,14 @@ final class DifferentialUnitField
protected function newHarbormasterMessageView(array $messages) { protected function newHarbormasterMessageView(array $messages) {
foreach ($messages as $key => $message) { foreach ($messages as $key => $message) {
if ($message->getResult() == ArcanistUnitTestResult::RESULT_PASS) { switch ($message->getResult()) {
unset($messages[$key]); case ArcanistUnitTestResult::RESULT_PASS:
case ArcanistUnitTestResult::RESULT_SKIP:
// Don't show "Pass" or "Skip" in the UI since they aren't very
// interesting. The user can click through to the full results if
// they want details.
unset($messages[$key]);
break;
} }
} }

View file

@ -131,10 +131,11 @@ final class DifferentialDiffEditor
$rules = mpull($rules, null, 'getID'); $rules = mpull($rules, null, 'getID');
$effects = $engine->applyRules($rules, $adapter); $effects = $engine->applyRules($rules, $adapter);
$action_block = DifferentialBlockHeraldAction::ACTIONCONST;
$blocking_effect = null; $blocking_effect = null;
foreach ($effects as $effect) { foreach ($effects as $effect) {
if ($effect->getAction() == HeraldAdapter::ACTION_BLOCK) { if ($effect->getAction() == $action_block) {
$blocking_effect = $effect; $blocking_effect = $effect;
break; break;
} }

View file

@ -1588,112 +1588,9 @@ final class DifferentialTransactionEditor
$revision, $revision,
$revision->getActiveDiff()); $revision->getActiveDiff());
$reviewers = $revision->getReviewerStatus();
$reviewer_phids = mpull($reviewers, 'getReviewerPHID');
$adapter->setExplicitReviewers($reviewer_phids);
return $adapter; return $adapter;
} }
protected function didApplyHeraldRules(
PhabricatorLiskDAO $object,
HeraldAdapter $adapter,
HeraldTranscript $transcript) {
$xactions = array();
// Build a transaction to adjust reviewers.
$reviewers = array(
DifferentialReviewerStatus::STATUS_ADDED =>
array_keys($adapter->getReviewersAddedByHerald()),
DifferentialReviewerStatus::STATUS_BLOCKING =>
array_keys($adapter->getBlockingReviewersAddedByHerald()),
);
$old_reviewers = $object->getReviewerStatus();
$old_reviewers = mpull($old_reviewers, null, 'getReviewerPHID');
$value = array();
foreach ($reviewers as $status => $phids) {
foreach ($phids as $phid) {
if ($phid == $object->getAuthorPHID()) {
// Don't try to add the revision's author as a reviewer, since this
// isn't valid and doesn't make sense.
continue;
}
// If the target is already a reviewer, don't try to change anything
// if their current status is at least as strong as the new status.
// For example, don't downgrade an "Accepted" to a "Blocking Reviewer".
$old_reviewer = idx($old_reviewers, $phid);
if ($old_reviewer) {
$old_status = $old_reviewer->getStatus();
$old_strength = DifferentialReviewerStatus::getStatusStrength(
$old_status);
$new_strength = DifferentialReviewerStatus::getStatusStrength(
$status);
if ($new_strength <= $old_strength) {
continue;
}
}
$value['+'][$phid] = array(
'data' => array(
'status' => $status,
),
);
}
}
if ($value) {
$edge_reviewer = DifferentialRevisionHasReviewerEdgeType::EDGECONST;
$xactions[] = id(new DifferentialTransaction())
->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
->setMetadataValue('edge:type', $edge_reviewer)
->setNewValue($value);
}
// Require legalpad document signatures.
$legal_phids = $adapter->getRequiredSignatureDocumentPHIDs();
if ($legal_phids) {
// We only require signatures of documents which have not already
// been signed. In general, this reduces the amount of churn that
// signature rules cause.
$signatures = id(new LegalpadDocumentSignatureQuery())
->setViewer(PhabricatorUser::getOmnipotentUser())
->withDocumentPHIDs($legal_phids)
->withSignerPHIDs(array($object->getAuthorPHID()))
->execute();
$signed_phids = mpull($signatures, 'getDocumentPHID');
$legal_phids = array_diff($legal_phids, $signed_phids);
// If we still have something to trigger, add the edges.
if ($legal_phids) {
$edge_legal = LegalpadObjectNeedsSignatureEdgeType::EDGECONST;
$xactions[] = id(new DifferentialTransaction())
->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
->setMetadataValue('edge:type', $edge_legal)
->setNewValue(
array(
'+' => array_fuse($legal_phids),
));
}
}
// Apply build plans.
HarbormasterBuildable::applyBuildPlans(
$adapter->getDiff()->getPHID(),
$adapter->getPHID(),
$adapter->getBuildPlans());
return $xactions;
}
/** /**
* Update the table which links Differential revisions to paths they affect, * Update the table which links Differential revisions to paths they affect,
* so Diffusion can efficiently find pending revisions for a given file. * so Diffusion can efficiently find pending revisions for a given file.

View file

@ -0,0 +1,56 @@
<?php
final class DifferentialBlockHeraldAction
extends HeraldAction {
const ACTIONCONST = 'differential.block';
const DO_BLOCK = 'do.block';
public function getHeraldActionName() {
return pht('Block diff with message');
}
public function getActionGroupKey() {
return HeraldApplicationActionGroup::ACTIONGROUPKEY;
}
public function supportsObject($object) {
return ($object instanceof DifferentialDiff);
}
public function supportsRuleType($rule_type) {
return ($rule_type != HeraldRuleTypeConfig::RULE_TYPE_PERSONAL);
}
public function applyEffect($object, HeraldEffect $effect) {
// This rule intentionally has no direct effect: the caller handles it
// after executing Herald.
$this->logEffect(self::DO_BLOCK);
}
public function getHeraldActionStandardType() {
return self::STANDARD_TEXT;
}
public function renderActionDescription($value) {
return pht('Block diff with message: %s', $value);
}
protected function getActionEffectMap() {
return array(
self::DO_BLOCK => array(
'icon' => 'fa-stop',
'color' => 'red',
'name' => pht('Blocked Diff'),
),
);
}
protected function renderActionEffectDescription($type, $data) {
switch ($type) {
case self::DO_BLOCK:
return pht('Blocked diff.');
}
}
}

View file

@ -0,0 +1,32 @@
<?php
final class DifferentialReviewersAddBlockingReviewersHeraldAction
extends DifferentialReviewersHeraldAction {
const ACTIONCONST = 'differential.reviewers.blocking';
public function getHeraldActionName() {
return pht('Add blocking reviewers');
}
public function supportsRuleType($rule_type) {
return ($rule_type != HeraldRuleTypeConfig::RULE_TYPE_PERSONAL);
}
public function applyEffect($object, HeraldEffect $effect) {
return $this->applyReviewers($effect->getTarget(), $is_blocking = true);
}
public function getHeraldActionStandardType() {
return self::STANDARD_PHID_LIST;
}
protected function getDatasource() {
return new PhabricatorMetaMTAMailableDatasource();
}
public function renderActionDescription($value) {
return pht('Add blocking reviewers: %s.', $this->renderHandleList($value));
}
}

View file

@ -0,0 +1,29 @@
<?php
final class DifferentialReviewersAddBlockingSelfHeraldAction
extends DifferentialReviewersHeraldAction {
const ACTIONCONST = 'differential.reviewers.self.blocking';
public function getHeraldActionName() {
return pht('Add me as a blocking reviewer');
}
public function supportsRuleType($rule_type) {
return ($rule_type == HeraldRuleTypeConfig::RULE_TYPE_PERSONAL);
}
public function applyEffect($object, HeraldEffect $effect) {
$phid = $effect->getRule()->getAuthorPHID();
return $this->applyReviewers(array($phid), $is_blocking = true);
}
public function getHeraldActionStandardType() {
return self::STANDARD_NONE;
}
public function renderActionDescription($value) {
return pht('Add rule author as blocking reviewer.');
}
}

View file

@ -0,0 +1,32 @@
<?php
final class DifferentialReviewersAddReviewersHeraldAction
extends DifferentialReviewersHeraldAction {
const ACTIONCONST = 'differential.reviewers.add';
public function getHeraldActionName() {
return pht('Add reviewers');
}
public function supportsRuleType($rule_type) {
return ($rule_type != HeraldRuleTypeConfig::RULE_TYPE_PERSONAL);
}
public function applyEffect($object, HeraldEffect $effect) {
return $this->applyReviewers($effect->getTarget(), $is_blocking = false);
}
public function getHeraldActionStandardType() {
return self::STANDARD_PHID_LIST;
}
protected function getDatasource() {
return new PhabricatorMetaMTAMailableDatasource();
}
public function renderActionDescription($value) {
return pht('Add reviewers: %s.', $this->renderHandleList($value));
}
}

View file

@ -0,0 +1,29 @@
<?php
final class DifferentialReviewersAddSelfHeraldAction
extends DifferentialReviewersHeraldAction {
const ACTIONCONST = 'differential.reviewers.self.add';
public function getHeraldActionName() {
return pht('Add me as a reviewer');
}
public function supportsRuleType($rule_type) {
return ($rule_type == HeraldRuleTypeConfig::RULE_TYPE_PERSONAL);
}
public function applyEffect($object, HeraldEffect $effect) {
$phid = $effect->getRule()->getAuthorPHID();
return $this->applyReviewers(array($phid), $is_blocking = false);
}
public function getHeraldActionStandardType() {
return self::STANDARD_NONE;
}
public function renderActionDescription($value) {
return pht('Add rule author as reviewer.');
}
}

View file

@ -0,0 +1,149 @@
<?php
abstract class DifferentialReviewersHeraldAction
extends HeraldAction {
const DO_AUTHORS = 'do.authors';
const DO_ADD_REVIEWERS = 'do.add-reviewers';
const DO_ADD_BLOCKING_REVIEWERS = 'do.add-blocking-reviewers';
public function getActionGroupKey() {
return HeraldApplicationActionGroup::ACTIONGROUPKEY;
}
public function supportsObject($object) {
return ($object instanceof DifferentialRevision);
}
protected function applyReviewers(array $phids, $is_blocking) {
$adapter = $this->getAdapter();
$object = $adapter->getObject();
$phids = array_fuse($phids);
// Don't try to add revision authors as reviewers.
$authors = array();
foreach ($phids as $phid) {
if ($phid == $object->getAuthorPHID()) {
$authors[] = $phid;
unset($phids[$phid]);
}
}
if ($authors) {
$this->logEffect(self::DO_AUTHORS, $authors);
if (!$phids) {
return;
}
}
$reviewers = $object->getReviewerStatus();
$reviewers = mpull($reviewers, null, 'getReviewerPHID');
if ($is_blocking) {
$new_status = DifferentialReviewerStatus::STATUS_BLOCKING;
} else {
$new_status = DifferentialReviewerStatus::STATUS_ADDED;
}
$new_strength = DifferentialReviewerStatus::getStatusStrength(
$new_status);
$current = array();
foreach ($phids as $phid) {
if (!isset($reviewers[$phid])) {
continue;
}
// If we're applying a stronger status (usually, upgrading a reviewer
// into a blocking reviewer), skip this check so we apply the change.
$old_strength = DifferentialReviewerStatus::getStatusStrength(
$reviewers[$phid]->getStatus());
if ($old_strength <= $new_strength) {
continue;
}
$current[] = $phid;
}
$allowed_types = array(
PhabricatorPeopleUserPHIDType::TYPECONST,
PhabricatorProjectProjectPHIDType::TYPECONST,
);
$targets = $this->loadStandardTargets($phids, $allowed_types, $current);
if (!$targets) {
return;
}
$phids = array_fuse(array_keys($targets));
$value = array();
foreach ($phids as $phid) {
$value[$phid] = array(
'data' => array(
'status' => $new_status,
),
);
}
$edgetype_reviewer = DifferentialRevisionHasReviewerEdgeType::EDGECONST;
$xaction = $adapter->newTransaction()
->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
->setMetadataValue('edge:type', $edgetype_reviewer)
->setNewValue(
array(
'+' => $value,
));
$adapter->queueTransaction($xaction);
if ($is_blocking) {
$this->logEffect(self::DO_ADD_BLOCKING_REVIEWERS, $phids);
} else {
$this->logEffect(self::DO_ADD_REVIEWERS, $phids);
}
}
protected function getActionEffectMap() {
return array(
self::DO_AUTHORS => array(
'icon' => 'fa-user',
'color' => 'grey',
'name' => pht('Revision Author'),
),
self::DO_ADD_REVIEWERS => array(
'icon' => 'fa-user',
'color' => 'green',
'name' => pht('Added Reviewers'),
),
self::DO_ADD_BLOCKING_REVIEWERS => array(
'icon' => 'fa-user',
'color' => 'green',
'name' => pht('Added Blocking Reviewers'),
),
);
}
protected function renderActionEffectDescription($type, $data) {
switch ($type) {
case self::DO_AUTHORS:
return pht(
'Declined to add revision author as reviewer: %s.',
$this->renderHandleList($data));
case self::DO_ADD_REVIEWERS:
return pht(
'Added %s reviewer(s): %s.',
new PhutilNumber(count($data)),
$this->renderHandleList($data));
case self::DO_ADD_BLOCKING_REVIEWERS:
return pht(
'Added %s blocking reviewer(s): %s.',
new PhutilNumber(count($data)),
$this->renderHandleList($data));
}
}
}

View file

@ -63,44 +63,4 @@ final class HeraldDifferentialDiffAdapter extends HeraldDifferentialAdapter {
return pht('New Diff'); return pht('New Diff');
} }
public function getActionNameMap($rule_type) {
return array(
self::ACTION_BLOCK => pht('Block diff with message'),
) + parent::getActionNameMap($rule_type);
}
public function getActions($rule_type) {
switch ($rule_type) {
case HeraldRuleTypeConfig::RULE_TYPE_GLOBAL:
return array_merge(
array(
self::ACTION_BLOCK,
self::ACTION_NOTHING,
),
parent::getActions($rule_type));
}
}
public function applyHeraldEffects(array $effects) {
assert_instances_of($effects, 'HeraldEffect');
$result = array();
foreach ($effects as $effect) {
$action = $effect->getAction();
switch ($action) {
case self::ACTION_BLOCK:
$result[] = new HeraldApplyTranscript(
$effect,
true,
pht('Blocked diff.'));
break;
default:
$result[] = $this->applyStandardEffect($effect);
break;
}
}
return $result;
}
} }

View file

@ -1,20 +1,17 @@
<?php <?php
final class HeraldDifferentialRevisionAdapter final class HeraldDifferentialRevisionAdapter
extends HeraldDifferentialAdapter { extends HeraldDifferentialAdapter
implements HarbormasterBuildableAdapterInterface {
protected $revision; protected $revision;
protected $explicitReviewers;
protected $addReviewerPHIDs = array();
protected $blockingReviewerPHIDs = array();
protected $buildPlans = array();
protected $requiredSignatureDocumentPHIDs = array();
protected $affectedPackages; protected $affectedPackages;
protected $changesets; protected $changesets;
private $haveHunks; private $haveHunks;
private $buildPlanPHIDs = array();
public function getAdapterApplicationClass() { public function getAdapterApplicationClass() {
return 'PhabricatorDifferentialApplication'; return 'PhabricatorDifferentialApplication';
} }
@ -83,27 +80,6 @@ final class HeraldDifferentialRevisionAdapter
return $object; return $object;
} }
public function setExplicitReviewers($explicit_reviewers) {
$this->explicitReviewers = $explicit_reviewers;
return $this;
}
public function getReviewersAddedByHerald() {
return $this->addReviewerPHIDs;
}
public function getBlockingReviewersAddedByHerald() {
return $this->blockingReviewerPHIDs;
}
public function getRequiredSignatureDocumentPHIDs() {
return $this->requiredSignatureDocumentPHIDs;
}
public function getBuildPlans() {
return $this->buildPlans;
}
public function getHeraldName() { public function getHeraldName() {
return $this->revision->getTitle(); return $this->revision->getTitle();
} }
@ -147,98 +123,28 @@ final class HeraldDifferentialRevisionAdapter
} }
public function loadReviewers() { public function loadReviewers() {
// TODO: This can probably go away as I believe it's just a performance $reviewers = $this->getObject()->getReviewerStatus();
// optimization, just retaining it while modularizing fields to limit the return mpull($reviewers, 'getReviewerPHID');
// scope of that change.
if (isset($this->explicitReviewers)) {
return array_keys($this->explicitReviewers);
} else {
return $this->revision->getReviewers();
}
} }
public function getActions($rule_type) {
switch ($rule_type) { /* -( HarbormasterBuildableAdapterInterface )------------------------------ */
case HeraldRuleTypeConfig::RULE_TYPE_GLOBAL:
return array_merge(
array( public function getHarbormasterBuildablePHID() {
self::ACTION_ADD_CC, return $this->getDiff()->getPHID();
self::ACTION_REMOVE_CC,
self::ACTION_EMAIL,
self::ACTION_ADD_REVIEWERS,
self::ACTION_ADD_BLOCKING_REVIEWERS,
self::ACTION_APPLY_BUILD_PLANS,
self::ACTION_REQUIRE_SIGNATURE,
self::ACTION_NOTHING,
),
parent::getActions($rule_type));
case HeraldRuleTypeConfig::RULE_TYPE_PERSONAL:
return array_merge(
array(
self::ACTION_ADD_CC,
self::ACTION_REMOVE_CC,
self::ACTION_EMAIL,
self::ACTION_FLAG,
self::ACTION_ADD_REVIEWERS,
self::ACTION_ADD_BLOCKING_REVIEWERS,
self::ACTION_NOTHING,
),
parent::getActions($rule_type));
}
} }
public function applyHeraldEffects(array $effects) { public function getHarbormasterContainerPHID() {
assert_instances_of($effects, 'HeraldEffect'); return $this->getObject()->getPHID();
}
$result = array(); public function getQueuedHarbormasterBuildPlanPHIDs() {
return $this->buildPlanPHIDs;
}
foreach ($effects as $effect) { public function queueHarbormasterBuildPlanPHID($phid) {
$action = $effect->getAction(); $this->buildPlanPHIDs[] = $phid;
switch ($action) {
case self::ACTION_ADD_REVIEWERS:
foreach ($effect->getTarget() as $phid) {
$this->addReviewerPHIDs[$phid] = true;
}
$result[] = new HeraldApplyTranscript(
$effect,
true,
pht('Added reviewers.'));
break;
case self::ACTION_ADD_BLOCKING_REVIEWERS:
// This adds reviewers normally, it just also marks them blocking.
foreach ($effect->getTarget() as $phid) {
$this->addReviewerPHIDs[$phid] = true;
$this->blockingReviewerPHIDs[$phid] = true;
}
$result[] = new HeraldApplyTranscript(
$effect,
true,
pht('Added blocking reviewers.'));
break;
case self::ACTION_APPLY_BUILD_PLANS:
foreach ($effect->getTarget() as $phid) {
$this->buildPlans[] = $phid;
}
$result[] = new HeraldApplyTranscript(
$effect,
true,
pht('Applied build plans.'));
break;
case self::ACTION_REQUIRE_SIGNATURE:
foreach ($effect->getTarget() as $phid) {
$this->requiredSignatureDocumentPHIDs[] = $phid;
}
$result[] = new HeraldApplyTranscript(
$effect,
true,
pht('Required signatures.'));
break;
default:
$result[] = $this->applyStandardEffect($effect);
break;
}
}
return $result;
} }
} }

View file

@ -325,9 +325,11 @@ final class DiffusionCommitHookEngine extends Phobject {
$this->emailPHIDs[$email_phid] = $email_phid; $this->emailPHIDs[$email_phid] = $email_phid;
} }
$block_action = DiffusionBlockHeraldAction::ACTIONCONST;
if ($blocking_effect === null) { if ($blocking_effect === null) {
foreach ($effects as $effect) { foreach ($effects as $effect) {
if ($effect->getAction() == HeraldAdapter::ACTION_BLOCK) { if ($effect->getAction() == $block_action) {
$blocking_effect = $effect; $blocking_effect = $effect;
$blocked_update = $update; $blocked_update = $update;
break; break;

Some files were not shown because too many files have changed in this diff Show more