Loading versioncontrol_project_issue/versioncontrol_project_issue_git/includes/VersioncontrolEventProcessorGitOperationBase.inc 0 → 100644 +82 −0 Changes for versioncontrol_project_issue/versioncontrol_project_issue_git/includes/VersioncontrolEventProcessorGitOperationBase.inc: 82 added lines, 0 removed lines. Original line number Diff line number Diff line <?php /** * @file * Base class for event processor plugins which deals with operation issue tasks. */ abstract class VersioncontrolEventProcessorGitOperationBase implements VersioncontrolSynchronizationEventProcessorInterface, VersioncontrolPluginConfigurationInterface { /** * Associated repository. * * @var VersioncontrolRepository */ protected $repository; /** * Pattern to find issue numbers in commit messages. */ protected $messagePattern; public function setRepository(VersioncontrolRepository $repository) { $this->repository = $repository; } public function setConfiguration($default_data) { $this->messagePattern = !empty($default_data['message_pattern']) ? $default_data['message_pattern'] : ''; } public function buildForm($default_data) { $form = array(); $form['event-processor-issue-mapper-pattern'] = array( '#type' => 'textfield', '#title' => t('Extract pattern'), '#description' => t('A pattern to be used to extract the issue ids from the commit message. i.e. "/#(\d+)\b/"'), '#default_value' => !empty($default_data['message_pattern']) ? $default_data['message_pattern'] : '', ); return $form; } public function getFormData($form_state_values_data) { return array( 'message_pattern' => $form_state_values_data['event-processor-issue-mapper-pattern'], ); } public function submitForm(&$form, &$form_state) { // Nothing special. } /** * Retrieve the issues from operation message. */ public function getIssuesFromMessage($message) { if (preg_match_all($this->messagePattern, $message, $matches)) { return $matches[1]; } return array(); } /** * Returns nids which can be associated. */ public function checkValidIssues($nids) { $valid_nids = array(); // Make sure we are dealing with project issues. $possible_issues = node_load_multiple($nids); foreach ($possible_issues as $possible_issue) { if (!project_issue_node_is_issue($possible_issue)) { continue; } // Associate only if repository project is the same than issue // project. if (empty($possible_issue->field_project[LANGUAGE_NONE][0]['target_id'])) { continue; } if ($possible_issue->field_project[LANGUAGE_NONE][0]['target_id'] != $this->repository->project_nid) { continue; } $valid_nids[] = $possible_issue->nid; } return $valid_nids; } } versioncontrol_project_issue/versioncontrol_project_issue_git/plugins/event_processor/VersioncontrolEventProcessorGitIssueMapper.inc +3 −75 Changes for versioncontrol_project_issue/versioncontrol_project_issue_git/plugins/event_processor/VersioncontrolEventProcessorGitIssueMapper.inc: 3 added lines, 75 removed lines. Original line number Diff line number Diff line Loading @@ -4,19 +4,10 @@ * Maps issues with operations on git repositories based on commit messages. */ class VersioncontrolEventProcessorGitIssueMapper implements VersioncontrolSynchronizationEventProcessorInterface, VersioncontrolPluginConfigurationInterface { /** * Associated repository. * * @var VersioncontrolRepository */ protected $repository; /** * Pattern to find issue numbers in commit messages. */ protected $messagePattern; // @todo Is this possible to be added to the ctools plugins metadada? require_once drupal_get_path('module', 'versioncontrol_project_issue_git') . '/includes/VersioncontrolEventProcessorGitOperationBase.inc'; class VersioncontrolEventProcessorGitIssueMapper extends VersioncontrolEventProcessorGitOperationBase { public function process(VersioncontrolEvent $event) { if (!$event instanceof VersioncontrolGitEvent) { // Not a git event. Loading Loading @@ -87,67 +78,4 @@ class VersioncontrolEventProcessorGitIssueMapper implements VersioncontrolSynchr } $insert_query->execute(); } public function setRepository(VersioncontrolRepository $repository) { $this->repository = $repository; } public function setConfiguration($default_data) { $this->messagePattern = !empty($default_data['message_pattern']) ? $default_data['message_pattern'] : ''; } public function buildForm($default_data) { $form = array(); $form['event-processor-issue-mapper-pattern'] = array( '#type' => 'textfield', '#title' => t('Extract pattern'), '#description' => t('A pattern to be used to extract the issue ids from the commit message. i.e. "/#(\d+)\b/"'), '#default_value' => !empty($default_data['message_pattern']) ? $default_data['message_pattern'] : '', ); return $form; } public function getFormData($form_state_values_data) { return array( 'message_pattern' => $form_state_values_data['event-processor-issue-mapper-pattern'], ); } public function submitForm(&$form, &$form_state) { // Nothing special. } /** * Retrieve the issues from operation message. */ public function getIssuesFromMessage($message) { if (preg_match_all($this->messagePattern, $message, $matches)) { return $matches[1]; } return array(); } /** * Returns nids which can be associated. */ public function checkValidIssues($nids) { $valid_nids = array(); // Make sure we are dealing with project issues. $possible_issues = node_load_multiple($nids); foreach ($possible_issues as $possible_issue) { if (!project_issue_node_is_issue($possible_issue)) { continue; } // Associate only if repository project is the same than issue // project. if (empty($possible_issue->field_project[LANGUAGE_NONE][0]['target_id'])) { continue; } if ($possible_issue->field_project[LANGUAGE_NONE][0]['target_id'] != $this->repository->project_nid) { continue; } $valid_nids[] = $possible_issue->nid; } return $valid_nids; } } versioncontrol_project_issue/versioncontrol_project_issue_git/versioncontrol_project_issue_git.info +1 −0 Changes for versioncontrol_project_issue/versioncontrol_project_issue_git/versioncontrol_project_issue_git.info: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -5,3 +5,4 @@ dependencies[] = versioncontrol_project_issue dependencies[] = versioncontrol_git dependencies[] = project_issue core = 7.x files[] = includes/VersioncontrolEventProcessorGitOperationBase.inc Loading
versioncontrol_project_issue/versioncontrol_project_issue_git/includes/VersioncontrolEventProcessorGitOperationBase.inc 0 → 100644 +82 −0 Changes for versioncontrol_project_issue/versioncontrol_project_issue_git/includes/VersioncontrolEventProcessorGitOperationBase.inc: 82 added lines, 0 removed lines. Original line number Diff line number Diff line <?php /** * @file * Base class for event processor plugins which deals with operation issue tasks. */ abstract class VersioncontrolEventProcessorGitOperationBase implements VersioncontrolSynchronizationEventProcessorInterface, VersioncontrolPluginConfigurationInterface { /** * Associated repository. * * @var VersioncontrolRepository */ protected $repository; /** * Pattern to find issue numbers in commit messages. */ protected $messagePattern; public function setRepository(VersioncontrolRepository $repository) { $this->repository = $repository; } public function setConfiguration($default_data) { $this->messagePattern = !empty($default_data['message_pattern']) ? $default_data['message_pattern'] : ''; } public function buildForm($default_data) { $form = array(); $form['event-processor-issue-mapper-pattern'] = array( '#type' => 'textfield', '#title' => t('Extract pattern'), '#description' => t('A pattern to be used to extract the issue ids from the commit message. i.e. "/#(\d+)\b/"'), '#default_value' => !empty($default_data['message_pattern']) ? $default_data['message_pattern'] : '', ); return $form; } public function getFormData($form_state_values_data) { return array( 'message_pattern' => $form_state_values_data['event-processor-issue-mapper-pattern'], ); } public function submitForm(&$form, &$form_state) { // Nothing special. } /** * Retrieve the issues from operation message. */ public function getIssuesFromMessage($message) { if (preg_match_all($this->messagePattern, $message, $matches)) { return $matches[1]; } return array(); } /** * Returns nids which can be associated. */ public function checkValidIssues($nids) { $valid_nids = array(); // Make sure we are dealing with project issues. $possible_issues = node_load_multiple($nids); foreach ($possible_issues as $possible_issue) { if (!project_issue_node_is_issue($possible_issue)) { continue; } // Associate only if repository project is the same than issue // project. if (empty($possible_issue->field_project[LANGUAGE_NONE][0]['target_id'])) { continue; } if ($possible_issue->field_project[LANGUAGE_NONE][0]['target_id'] != $this->repository->project_nid) { continue; } $valid_nids[] = $possible_issue->nid; } return $valid_nids; } }
versioncontrol_project_issue/versioncontrol_project_issue_git/plugins/event_processor/VersioncontrolEventProcessorGitIssueMapper.inc +3 −75 Changes for versioncontrol_project_issue/versioncontrol_project_issue_git/plugins/event_processor/VersioncontrolEventProcessorGitIssueMapper.inc: 3 added lines, 75 removed lines. Original line number Diff line number Diff line Loading @@ -4,19 +4,10 @@ * Maps issues with operations on git repositories based on commit messages. */ class VersioncontrolEventProcessorGitIssueMapper implements VersioncontrolSynchronizationEventProcessorInterface, VersioncontrolPluginConfigurationInterface { /** * Associated repository. * * @var VersioncontrolRepository */ protected $repository; /** * Pattern to find issue numbers in commit messages. */ protected $messagePattern; // @todo Is this possible to be added to the ctools plugins metadada? require_once drupal_get_path('module', 'versioncontrol_project_issue_git') . '/includes/VersioncontrolEventProcessorGitOperationBase.inc'; class VersioncontrolEventProcessorGitIssueMapper extends VersioncontrolEventProcessorGitOperationBase { public function process(VersioncontrolEvent $event) { if (!$event instanceof VersioncontrolGitEvent) { // Not a git event. Loading Loading @@ -87,67 +78,4 @@ class VersioncontrolEventProcessorGitIssueMapper implements VersioncontrolSynchr } $insert_query->execute(); } public function setRepository(VersioncontrolRepository $repository) { $this->repository = $repository; } public function setConfiguration($default_data) { $this->messagePattern = !empty($default_data['message_pattern']) ? $default_data['message_pattern'] : ''; } public function buildForm($default_data) { $form = array(); $form['event-processor-issue-mapper-pattern'] = array( '#type' => 'textfield', '#title' => t('Extract pattern'), '#description' => t('A pattern to be used to extract the issue ids from the commit message. i.e. "/#(\d+)\b/"'), '#default_value' => !empty($default_data['message_pattern']) ? $default_data['message_pattern'] : '', ); return $form; } public function getFormData($form_state_values_data) { return array( 'message_pattern' => $form_state_values_data['event-processor-issue-mapper-pattern'], ); } public function submitForm(&$form, &$form_state) { // Nothing special. } /** * Retrieve the issues from operation message. */ public function getIssuesFromMessage($message) { if (preg_match_all($this->messagePattern, $message, $matches)) { return $matches[1]; } return array(); } /** * Returns nids which can be associated. */ public function checkValidIssues($nids) { $valid_nids = array(); // Make sure we are dealing with project issues. $possible_issues = node_load_multiple($nids); foreach ($possible_issues as $possible_issue) { if (!project_issue_node_is_issue($possible_issue)) { continue; } // Associate only if repository project is the same than issue // project. if (empty($possible_issue->field_project[LANGUAGE_NONE][0]['target_id'])) { continue; } if ($possible_issue->field_project[LANGUAGE_NONE][0]['target_id'] != $this->repository->project_nid) { continue; } $valid_nids[] = $possible_issue->nid; } return $valid_nids; } }
versioncontrol_project_issue/versioncontrol_project_issue_git/versioncontrol_project_issue_git.info +1 −0 Changes for versioncontrol_project_issue/versioncontrol_project_issue_git/versioncontrol_project_issue_git.info: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -5,3 +5,4 @@ dependencies[] = versioncontrol_project_issue dependencies[] = versioncontrol_git dependencies[] = project_issue core = 7.x files[] = includes/VersioncontrolEventProcessorGitOperationBase.inc