diff options
author | Tim <tgaudette88@gmail.com> | 2016-06-26 13:36:43 -0400 |
---|---|---|
committer | Tim <tgaudette88@gmail.com> | 2016-06-29 06:01:54 -0400 |
commit | bc313deaae2fae3e5532a28245fe72fcf9aef9a6 (patch) | |
tree | 6f9dabc184e0ce79207b648242ec15270a9a756e /app | |
parent | 1023289605f075cef86833ab5c1b0e87d967f69e (diff) | |
download | gitlab-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.rb | 1 | ||||
-rw-r--r-- | app/models/project_services/bugzilla_service.rb | 37 | ||||
-rw-r--r-- | app/models/service.rb | 1 |
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 |