Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Becker2015-02-18 20:45:56 +0000
committerFrank Becker2015-03-16 20:29:50 +0000
commitf15bbb75adcc175ff36114f90059a2678ce89693 (patch)
tree14f200c73a2f1405cd22ff592c54319eab89fda1
parent5386bb0f2e272965f9ee1ebe8f117d301f325c26 (diff)
downloadorg.eclipse.mylyn.tasks-f15bbb75adcc175ff36114f90059a2678ce89693.tar.gz
org.eclipse.mylyn.tasks-f15bbb75adcc175ff36114f90059a2678ce89693.tar.xz
org.eclipse.mylyn.tasks-f15bbb75adcc175ff36114f90059a2678ce89693.zip
460285: [relang] support Git and Gerrit urls in see Also
Change-Id: Ia4ce8b7d15215bcceecc1256fcad4778bf4042df Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=460285
-rw-r--r--org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/files/extensions/Mylyn/lib/Gerrit.pm45
-rw-r--r--org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/files/extensions/Mylyn/lib/Git.pm41
-rw-r--r--org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/files/extensions/Mylyn/template/en/default/hook/global/user-error-bug_url_invalid_tracker.html.tmpl10
-rw-r--r--org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/manifests/defaultsites.pp4
-rw-r--r--org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/templates/Extension.pm.erb10
5 files changed, 107 insertions, 3 deletions
diff --git a/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/files/extensions/Mylyn/lib/Gerrit.pm b/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/files/extensions/Mylyn/lib/Gerrit.pm
new file mode 100644
index 000000000..6eaf64e98
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/files/extensions/Mylyn/lib/Gerrit.pm
@@ -0,0 +1,45 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+package Bugzilla::Extension::Mylyn::Gerrit;
+
+use 5.10.1;
+use strict;
+use warnings;
+
+use parent qw(Bugzilla::BugUrl);
+
+###############################
+#### Methods ####
+###############################
+
+sub should_handle {
+ my ($class, $uri) = @_;
+
+ # Gerrit Change URL: https://git.eclipse.org/r/#/c/26613/
+ # Gerrit Change URL, specific patch set: https://git.eclipse.org/r/#/c/26613/4
+ # https://git.eclipse.org/r/40031
+ return ( ($uri->path =~ m|^/r/$| and $uri->fragment =~ m|^/c/\d+|) ||
+ $uri->path =~ m|^/r/\d+|) ? 1 : 0;
+}
+
+sub _check_value {
+ my ($class, $uri) = @_;
+
+ $uri = $class->SUPER::_check_value($uri);
+
+ # While Gerrit URLs can be either HTTP or HTTPS,
+ # always go with the HTTP scheme, as that's the default.
+ if ($uri->scheme eq 'http') {
+ $uri->scheme('https');
+ }
+
+ return $uri;
+}
+
+1;
+
diff --git a/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/files/extensions/Mylyn/lib/Git.pm b/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/files/extensions/Mylyn/lib/Git.pm
new file mode 100644
index 000000000..84bb7325b
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/files/extensions/Mylyn/lib/Git.pm
@@ -0,0 +1,41 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+package Bugzilla::Extension::Mylyn::Git;
+
+use 5.10.1;
+use strict;
+use warnings;
+
+use parent qw(Bugzilla::BugUrl);
+
+###############################
+#### Methods ####
+###############################
+
+sub should_handle {
+ my ($class, $uri) = @_;
+
+ # cGit commit: http://git.eclipse.org/c/actf/org.eclipse.actf.ai.git/commit/?id=84a2bb1e7c58fc8f423724d72cf294fd95f9b1c5
+ # cGit commit: https://polarsys.org/cgit/cgit.cgi/capella/capella.git/commit/?id=98011c093f70730bbc9b2113a007aad14a11bb46
+ return ($uri->path =~ m|^/c(git/cgit\.cgi)?/.*commit/$|
+ and $uri->query_param('id') =~ m|^\w{40}$|) ? 1 : 0;
+}
+
+sub _check_value {
+ my ($class, $uri) = @_;
+
+ $uri = $class->SUPER::_check_value($uri);
+
+ # GitHub HTTP URLs redirect to HTTPS, so just use the HTTPS scheme.
+ $uri->scheme('https');
+
+ return $uri;
+}
+
+1;
+
diff --git a/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/files/extensions/Mylyn/template/en/default/hook/global/user-error-bug_url_invalid_tracker.html.tmpl b/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/files/extensions/Mylyn/template/en/default/hook/global/user-error-bug_url_invalid_tracker.html.tmpl
new file mode 100644
index 000000000..2c15a3ba1
--- /dev/null
+++ b/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/files/extensions/Mylyn/template/en/default/hook/global/user-error-bug_url_invalid_tracker.html.tmpl
@@ -0,0 +1,10 @@
+[%# This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ #
+ # This Source Code Form is "Incompatible With Secondary Licenses", as
+ # defined by the Mozilla Public License, v. 2.0.
+ #%]
+
+<li>A cGit commit link.</li>
+<li>A Gerrit change.</li> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/manifests/defaultsites.pp b/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/manifests/defaultsites.pp
index 104f3dba0..771ba9de6 100644
--- a/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/manifests/defaultsites.pp
+++ b/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/manifests/defaultsites.pp
@@ -90,7 +90,7 @@ define bugzilla::defaultsites($base = $bugzilla::bugzillaBase, $userOwner = $bug
envversion => "5.0rc2",
testdataVersion => "Version1",
}
-
+
bugzilla::site { "bugzilla-rest-master":
major => "5",
minor => "1",
@@ -102,4 +102,4 @@ define bugzilla::defaultsites($base = $bugzilla::bugzillaBase, $userOwner = $bug
testdataVersion => "Version1",
}
-} \ No newline at end of file
+}
diff --git a/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/templates/Extension.pm.erb b/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/templates/Extension.pm.erb
index f3b12b369..c9ff65bdc 100644
--- a/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/templates/Extension.pm.erb
+++ b/org.eclipse.mylyn.bugzilla.releng/modules/bugzilla/templates/Extension.pm.erb
@@ -13,7 +13,10 @@
package Bugzilla::Extension::Mylyn;
use strict;
use base qw(Bugzilla::Extension);
-
+use constant MORE_SUB_CLASSES => qw(
+ Bugzilla::Extension::Mylyn::Gerrit
+ Bugzilla::Extension::Mylyn::Git
+ );
# This code for this is in ./extensions/Mylyn/lib/Util.pm
use Bugzilla::Extension::Mylyn::Util;
@@ -425,4 +428,9 @@ sub install_before_final_checks {
print "Mylyn Extension: end of install-before_final_checks hook\n" unless $args->{silent};
}
+sub bug_url_sub_classes {
+ my ($self, $args) = @_;
+ push @{ $args->{sub_classes} }, MORE_SUB_CLASSES;
+}
+
__PACKAGE__->NAME;

Back to the top