diff options
-rw-r--r-- | app/models/issue.rb | 1 | ||||
-rw-r--r-- | app/services/issues/close_service.rb | 1 | ||||
-rw-r--r-- | db/migrate/20180209165249_add_closed_by_to_issues.rb | 13 | ||||
-rw-r--r-- | lib/api/entities.rb | 1 |
4 files changed, 16 insertions, 0 deletions
diff --git a/app/models/issue.rb b/app/models/issue.rb index c81f7e52bb1..8e51448770d 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -23,6 +23,7 @@ class Issue < ActiveRecord::Base belongs_to :project belongs_to :moved_to, class_name: 'Issue' + belongs_to :closed_by, class_name: 'User' has_many :events, as: :target, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent diff --git a/app/services/issues/close_service.rb b/app/services/issues/close_service.rb index 0c5cf2c62ad..fee5bc38f7b 100644 --- a/app/services/issues/close_service.rb +++ b/app/services/issues/close_service.rb @@ -23,6 +23,7 @@ module Issues end if project.issues_enabled? && issue.close + issue.update(closed_by: current_user) event_service.close_issue(issue, current_user) create_note(issue, commit) if system_note notification_service.close_issue(issue, current_user) if notifications diff --git a/db/migrate/20180209165249_add_closed_by_to_issues.rb b/db/migrate/20180209165249_add_closed_by_to_issues.rb new file mode 100644 index 00000000000..043e3ef8688 --- /dev/null +++ b/db/migrate/20180209165249_add_closed_by_to_issues.rb @@ -0,0 +1,13 @@ +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class AddClosedByToIssues < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + # Set this constant to true if this migration requires downtime. + DOWNTIME = false + + def change + add_column :issues, :closed_by_id, :integer + end +end diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 167878ba600..b12de6d6e39 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -390,6 +390,7 @@ module API class IssueBasic < ProjectEntity expose :closed_at + expose :closed_by, using: Entities::UserBasic expose :labels do |issue, options| # Avoids an N+1 query since labels are preloaded issue.labels.map(&:title).sort |