Changeset 1078
- Timestamp:
- 12/31/2014 04:48:29 PM (10 years ago)
- Location:
- sites/trunk/svn.wordpress.org
- Files:
-
- 2 added
- 1 deleted
- 2 edited
- 2 copied
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/svn.wordpress.org/bin/slack-commit-hook.php
r1075 r1078 7 7 } 8 8 9 define( 'INC', dirname( __DIR__ ) . '/includes/slack- commit-hook/' );10 require INC . ' sender.php';11 require INC . ' trac.php';12 require INC . ' config.php';9 define( 'INC', dirname( __DIR__ ) . '/includes/slack-trac-hooks' ); 10 require INC . '/commits.php'; 11 require INC . '/trac.php'; 12 require INC . '/config.php'; 13 13 14 14 list( , $trac, $repo, $rev ) = $argv; 15 15 16 16 $slack_hook = 'https://hooks.slack.com/services/...'; 17 $sender = new \SlackCommitHook\Sender( $trac, $repo, $rev, $slack_hook );17 $sender = new Dotorg\SlackTracHooks\Commits( $trac, $repo, $rev, $slack_hook ); 18 18 // $sender->use_test_channel( true ); 19 19 // $sender->set_svnlook_executable( ... ); -
sites/trunk/svn.wordpress.org/includes/slack-trac-hooks/commits.php
r1075 r1078 1 1 <?php 2 2 3 namespace SlackCommitHook;3 namespace Dotorg\SlackTracHooks; 4 4 5 class Sender{5 class Commits { 6 6 protected $trac; 7 7 protected $repo; … … 29 29 public function run() { 30 30 $payload = $this->generate_payload(); 31 foreach ( $this->trac->get_c hannels( $this->svnlook( 'changed' ) ) as $channel ) {31 foreach ( $this->trac->get_commit_channels( $this->svnlook( 'changed' ) ) as $channel ) { 32 32 $this->send( $channel, $payload ); 33 33 } … … 46 46 $revision = 'r' . $this->rev; 47 47 48 $username = $this->trac->get_ username();48 $username = $this->trac->get_commit_username(); 49 49 $emoji = $this->trac->get_emoji(); 50 50 $color = $this->trac->get_color(); -
sites/trunk/svn.wordpress.org/includes/slack-trac-hooks/config.php
r1075 r1078 1 1 <?php 2 2 3 namespace SlackCommitHook;3 namespace Dotorg\SlackTracHooks; 4 4 5 5 class Core_Trac extends Trac { 6 protected $channels = array( '#core', '#core-commits' ); 7 protected $username = 'WordPress commit'; 6 protected $commit_channels = array( '#core', '#core-commits' ); 7 protected $commit_username = 'WordPress commit'; 8 protected $commit_range = array( 3, 5 ); 8 9 protected $ticket_range = array( 3, 5 ); 9 protected $commit_range = array( 3, 5 ); 10 11 protected $ticket_channels = array( '#core', '#core-newtickets' ); 12 protected $ticket_username = 'WordPress Trac'; 13 protected $firehose_channel = '#core-firehose'; 10 14 11 15 /** … … 13 17 * Start regex matches with # as your delimiter. 14 18 */ 15 protected $c hannel_matcher= array(19 protected $commit_path_filters = array( 16 20 'wp-content/themes' => '#core-themes', 17 21 'customize' => '#core-customize', … … 21 25 'press-this.php' => '#feature-pressthis', 22 26 ); 27 28 /** 29 * Components or focuses that cause new tickets to be piped to particular channels. 30 */ 31 protected $ticket_component_filters = array( 32 'Customize' => '#core-customize', 33 'Bundled Theme' => '#core-themes', 34 'Press This' => '#feature-pressthis', 35 ); 23 36 } 24 37 25 38 class Meta_Trac extends Trac { 26 protected $c hannels = array( '#meta', '#meta-commits' );27 protected $ username = 'WordPress.org Meta commit';39 protected $commit_channels = array( '#meta', '#meta-commits' ); 40 protected $commit_username = 'WordPress.org Meta commit'; 28 41 29 protected $channel_matcher = array( 42 protected $ticket_channels = array( '#meta-newtickets' ); 43 44 protected $commit_path_filters = array( 30 45 'translate.wordpress.org/' => '#meta-i18n', 31 46 'global.wordpress.org/' => '#meta-i18n', … … 34 49 'wporg-developer/' => '#meta-devhub', 35 50 ); 51 52 protected $ticket_component_filters = array( 53 'International Forums' => '#meta-i18n', 54 'International Sites (Rosetta)' => '#meta-i18n', 55 'translate.wordpress.org' => '#meta-i18n', 56 'developer.wordpress.org' => '#meta-devhub', 57 ); 36 58 } 37 59 38 60 class bbPress_Trac extends Trac { 39 protected $channels = array( '#bbpress', '#bbpress-commits' ); 40 protected $username = 'bbPress commit'; 61 protected $commit_channels = array( '#bbpress', '#bbpress-commits' ); 62 protected $commit_username = 'bbPress commit'; 63 protected $ticket_channels = array( '#bbpress', '#bbpress-newtickets' ); 41 64 protected $color = '#080'; 42 65 protected $emoji = ':bbpress:'; … … 44 67 45 68 class BuddyPress_Trac extends Trac { 46 protected $channels = array( '#buddypress', '#buddypress-commits' ); 47 protected $username = 'BuddyPress commit'; 69 protected $commit_channels = array( '#buddypress', '#buddypress-commits' ); 70 protected $commit_username = 'BuddyPress commit'; 71 protected $ticket_channels = array( '#buddypress', '#buddypress-newtickets' ); 48 72 protected $color = '#d84800'; 49 73 protected $emoji = ':buddypress:'; … … 51 75 52 76 class Dotorg_Trac extends Trac { 53 protected $channels = 'dotorg'; 54 protected $username = 'Private dotorg commit'; 77 protected $commit_channels = 'dotorg'; 78 protected $commit_username = 'Private dotorg commit'; 79 protected $ticket_channels = 'dotorg'; 55 80 } 56 81 57 82 class Deploy_Trac extends Trac { 58 protected $channels = 'dotorg'; 59 protected $username = 'Deploy commit'; 83 protected $commit_channels = 'dotorg'; 84 protected $commit_username = 'Deploy commit'; 85 protected $ticket_channels = 'dotorg'; 60 86 } 61 87 62 88 class GlotPress_Trac extends Trac { 63 protected $channels = '#glotpress'; 64 protected $username = 'GlotPress commit'; 89 protected $commit_channels = '#glotpress'; 90 protected $commit_username = 'GlotPress commit'; 91 protected $ticket_channels = '#glotpress'; 65 92 } -
sites/trunk/svn.wordpress.org/includes/slack-trac-hooks/trac.php
r1077 r1078 1 1 <?php 2 2 3 namespace SlackCommitHook;3 namespace Dotorg\SlackTracHooks; 4 4 5 5 abstract class Trac { 6 protected $channels = '#test'; 7 protected $username = 'Commit'; 6 protected $commit_channels = '#test'; 7 protected $commit_username = 'Commit'; 8 protected $ticket_channels = '#test'; 9 protected $ticket_username; 10 11 protected $firehose_channel = false; 12 8 13 protected $color = '#21759b'; 9 14 protected $emoji = ':wordpress:'; … … 15 20 16 21 function __construct() { 17 // 'SlackCommitHook\Core_Trac' => 'core' 18 $this->trac = strtolower( str_replace( array( __NAMESPACE__, '\\', '_Trac' ), '', get_class( $this ) ) ); 22 // 'Dotorg\SlackTracHooks\Core_Trac' => 'Core_Trac' 23 $class = str_replace( __NAMESPACE__ . '\\', '', get_class( $this ) ); 24 25 // 'Core_Trac' => 'core' 26 $this->trac = strtolower( str_replace( '_Trac', '', $class ) ); 27 28 if ( ! isset( $this->ticket_username ) ) { 29 // 'Core_Trac' => 'Core Trac' 30 $this->ticket_username = str_replace( '_', ' ', $class ); 31 } 19 32 } 20 33 21 function get_username() { 22 return $this->username; 34 function get_commit_username() { 35 return $this->commit_username; 36 } 37 38 function get_ticket_username() { 39 return $this->ticket_username; 23 40 } 24 41 … … 57 74 } 58 75 59 function get_c hannels( $changed_files = null ) {60 $channels = (array) $this->c hannels;76 function get_commit_channels( $changed_files = null ) { 77 $channels = (array) $this->commit_channels; 61 78 62 if ( empty( $this->channel_matcher ) || empty( $changed_files ) ) { 79 if ( isset( $this->firehose_channel ) ) { 80 $channels[] = $this->firehose_channel; 81 } 82 83 if ( empty( $this->commit_path_filters ) || empty( $changed_files ) ) { 63 84 return $channels; 64 85 } 65 86 66 foreach ( $this->c hannel_matcheras $needle => $channels_to_add ) {87 foreach ( $this->commit_path_filters as $needle => $channels_to_add ) { 67 88 if ( $needle[0] === '#' ) { 68 89 // Append PCRE_MULTILINE so ^ and $ refer to individual lines. … … 74 95 } 75 96 } 97 76 98 return $channels; 77 99 } 100 101 function get_ticket_channels( $ticket = null ) { 102 $channels = (array) $this->ticket_channels; 103 104 if ( isset( $this->firehose_channel ) ) { 105 $channels[] = $this->firehose_channel; 106 } 107 108 if ( empty( $this->ticket_component_filters ) || empty( $ticket ) ) { 109 return $channels; 110 } 111 112 if ( isset( $ticket->component ) && isset( $this->ticket_component_filters[ $ticket->component ] ) ) { 113 $channels = array_merge( $channels, (array) $this->ticket_component_filters[ $ticket->component ] ); 114 } 115 116 if ( isset( $ticket->focuses ) ) { 117 foreach ( explode( ', ', $ticket->focuses ) as $focus ) { 118 if ( isset( $this->ticket_component_filters[ $focus ] ) ) { 119 $channels = array_merge( $channels, (array) $this->ticket_component_filters[ $focus ] ); 120 } 121 } 122 } 123 return $channels; 124 } 125 126 function get_firehose_channel() { 127 return $this->firehose_channel; 128 } 78 129 } 130
Note: See TracChangeset
for help on using the changeset viewer.