From e30c7269d563ec817efc22c81fdf37bdfcb796d6 Mon Sep 17 00:00:00 2001 From: Marco Villegas Date: Fri, 24 Oct 2014 11:00:15 -0500 Subject: [PATCH 1/2] Implement issue nid in refname check --- .../drupalorg_versioncontrol.module | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/drupalorg_versioncontrol/drupalorg_versioncontrol.module b/drupalorg_versioncontrol/drupalorg_versioncontrol.module index e648663..09e702d 100644 --- a/drupalorg_versioncontrol/drupalorg_versioncontrol.module +++ b/drupalorg_versioncontrol/drupalorg_versioncontrol.module @@ -234,10 +234,6 @@ function drupalorg_versioncontrol_form_alter(&$form, &$form_state, $form_id) { */ function drupalorg_versioncontrol_versioncontrol_project_issue_git_git_commits_as_comment_project_issue_nids_alter(&$valid_issue_nids, $ref) { $repository = $ref->getRepository(); - if (!$repository instanceof VersioncontrolGitRepository) { - // Nothing to do. - return; - } if (!versioncontrol_project_repository_has_project($repository)) { // Nothing to do. return; @@ -251,8 +247,15 @@ function drupalorg_versioncontrol_versioncontrol_project_issue_git_git_commits_a // Contrib. $valid_branch_name_regex = '/^((\d+)(\.(\d+))?\.x)-(\d+)\.x$/'; } - if (!preg_match($valid_branch_name_regex, $ref->refname)) { - // No comments on any issue if branch pattern is not a release-like name. - $valid_issue_nids = array(); + if (preg_match($valid_branch_name_regex, $ref->refname)) { + // Allow notifications on any issue if the branch looks like a release branch. + return; + } + // Only allow non-release branches notifications if the project issue nid is + // in the refname. + foreach ($valid_issue_nids as $key => $valid_issue_nid) { + if (!preg_match("/\b$valid_issue_nid\b/", $ref->refname)) { + unset($valid_issue_nids[$key]); + } } } -- 1.7.10.4 From 7ae81c0ff4163f64b438614b0313c022c2e11a5c Mon Sep 17 00:00:00 2001 From: Marco Villegas Date: Fri, 24 Oct 2014 11:33:28 -0500 Subject: [PATCH 2/2] follow alter change --- drupalorg_versioncontrol/drupalorg_versioncontrol.module | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drupalorg_versioncontrol/drupalorg_versioncontrol.module b/drupalorg_versioncontrol/drupalorg_versioncontrol.module index 09e702d..1c58ee9 100644 --- a/drupalorg_versioncontrol/drupalorg_versioncontrol.module +++ b/drupalorg_versioncontrol/drupalorg_versioncontrol.module @@ -230,9 +230,10 @@ function drupalorg_versioncontrol_form_alter(&$form, &$form_state, $form_id) { } /** - * Implements hook_versioncontrol_project_issue_git_git_commits_as_comment_project_issue_nids_alter(). + * Implements hook_versioncontrol_project_issue_git_issue_notification_project_issue_nids_alter(). */ -function drupalorg_versioncontrol_versioncontrol_project_issue_git_git_commits_as_comment_project_issue_nids_alter(&$valid_issue_nids, $ref) { +function drupalorg_versioncontrol_versioncontrol_project_issue_git_issue_notification_project_issue_nids_alter(&$valid_issue_nids, $context) { + $ref = $context['ref']; $repository = $ref->getRepository(); if (!versioncontrol_project_repository_has_project($repository)) { // Nothing to do. -- 1.7.10.4