summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorTim <tgaudette88@gmail.com>2016-06-26 13:36:43 -0400
committerTim <tgaudette88@gmail.com>2016-06-29 06:01:54 -0400
commitbc313deaae2fae3e5532a28245fe72fcf9aef9a6 (patch)
tree6f9dabc184e0ce79207b648242ec15270a9a756e /app
parent1023289605f075cef86833ab5c1b0e87d967f69e (diff)
downloadgitlab-ce-bc313deaae2fae3e5532a28245fe72fcf9aef9a6.tar.gz
Added Bugzilla as external issue tracker option
Requested in #14669 Added note to changelog
Diffstat (limited to 'app')
-rw-r--r--app/models/project.rb1
-rw-r--r--app/models/project_services/bugzilla_service.rb37
-rw-r--r--app/models/service.rb1
3 files changed, 39 insertions, 0 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 96837364423..73ded09c162 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -81,6 +81,7 @@ class Project < ActiveRecord::Base
has_one :jira_service, dependent: :destroy
has_one :redmine_service, dependent: :destroy
has_one :custom_issue_tracker_service, dependent: :destroy
+ has_one :bugzilla_service, dependent: :destroy
has_one :gitlab_issue_tracker_service, dependent: :destroy, inverse_of: :project
has_one :external_wiki_service, dependent: :destroy
diff --git a/app/models/project_services/bugzilla_service.rb b/app/models/project_services/bugzilla_service.rb
new file mode 100644
index 00000000000..b84f9ebe479
--- /dev/null
+++ b/app/models/project_services/bugzilla_service.rb
@@ -0,0 +1,37 @@
+class BugzillaService < IssueTrackerService
+
+ prop_accessor :title, :description, :project_url, :issues_url, :new_issue_url
+
+ def title
+ if self.properties && self.properties['title'].present?
+ self.properties['title']
+ else
+ 'Bugzilla'
+ end
+ end
+
+ def description
+ if self.properties && self.properties['description'].present?
+ self.properties['description']
+ else
+ 'Bugzilla issue tracker'
+ end
+ end
+
+ def to_param
+ 'bugzilla'
+ end
+
+ def fields
+ [
+ { type: 'text', name: 'description', placeholder: description },
+ { type: 'text', name: 'project_url', placeholder: 'http://bugzilla.example.com/describecomponents.cgi?product=PRODUCT_NAME' },
+ { type: 'text', name: 'issues_url', placeholder: 'http://bugzilla.example.com/show_bug.cgi?id=:id' },
+ { type: 'text', name: 'new_issue_url', placeholder: 'http://bugzilla.example.com/enter_bug.cgi?product=PRODUCT_NAME' }
+ ]
+ end
+
+ def initialize_properties
+ self.properties = {} if properties.nil?
+ end
+end
diff --git a/app/models/service.rb b/app/models/service.rb
index 40d39933ad8..d7a32c28267 100644
--- a/app/models/service.rb
+++ b/app/models/service.rb
@@ -170,6 +170,7 @@ class Service < ActiveRecord::Base
bamboo
buildkite
builds_email
+ bugzilla
campfire
custom_issue_tracker
drone_ci