From 3c508eaaf0dfea5cb5ea1c09fe61a0b9f4106325 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 17 Feb 2016 22:13:30 +0100 Subject: [PATCH 1/3] Read {ISSUE,MERGE_REQUESTS}_TEMPLATE from repository head --- app/controllers/projects/issues_controller.rb | 3 +++ app/models/project.rb | 12 ++++++++++++ app/services/merge_requests/build_service.rb | 2 ++ 3 files changed, 17 insertions(+) diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb index 68244883803f..6751cb3d9f75 100644 --- a/app/controllers/projects/issues_controller.rb +++ b/app/controllers/projects/issues_controller.rb @@ -50,6 +50,9 @@ def new ) @issue = @noteable = @project.issues.new(issue_params) + + @issue.description = @project.repository_issues_template + respond_with(@issue) end diff --git a/app/models/project.rb b/app/models/project.rb index 95ad88c76ae0..f6eba990c8f4 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -929,4 +929,16 @@ def runners_token def wiki @wiki ||= ProjectWiki.new(self, self.owner) end + + def repository_issues_template + repository.blob_at_branch('HEAD', 'ISSUE_TEMPLATE').data + rescue + nil + end + + def repository_merge_requests_template + repository.blob_at_branch('HEAD', 'MERGE_REQUESTS_TEMPLATE').data + rescue + nil + end end diff --git a/app/services/merge_requests/build_service.rb b/app/services/merge_requests/build_service.rb index a9b29f9654d7..0f05e4da9082 100644 --- a/app/services/merge_requests/build_service.rb +++ b/app/services/merge_requests/build_service.rb @@ -61,6 +61,8 @@ def execute merge_request.title = merge_request.source_branch.titleize.humanize end + merge_request.description = merge_request.target_project.repository_merge_requests_template + merge_request end -- GitLab From 48daab5fae66b5c134c41e159e6ca6919b3fe304 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Fri, 19 Feb 2016 23:58:47 +0100 Subject: [PATCH 2/3] Use repository and redis cache --- app/controllers/projects/issues_controller.rb | 2 +- app/models/project.rb | 12 ----------- app/models/repository.rb | 20 +++++++++++++++++++ app/services/merge_requests/build_service.rb | 2 +- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb index 6751cb3d9f75..aca83cec46f6 100644 --- a/app/controllers/projects/issues_controller.rb +++ b/app/controllers/projects/issues_controller.rb @@ -51,7 +51,7 @@ def new @issue = @noteable = @project.issues.new(issue_params) - @issue.description = @project.repository_issues_template + @issue.description = @project.repository.issues_template respond_with(@issue) end diff --git a/app/models/project.rb b/app/models/project.rb index f6eba990c8f4..95ad88c76ae0 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -929,16 +929,4 @@ def runners_token def wiki @wiki ||= ProjectWiki.new(self, self.owner) end - - def repository_issues_template - repository.blob_at_branch('HEAD', 'ISSUE_TEMPLATE').data - rescue - nil - end - - def repository_merge_requests_template - repository.blob_at_branch('HEAD', 'MERGE_REQUESTS_TEMPLATE').data - rescue - nil - end end diff --git a/app/models/repository.rb b/app/models/repository.rb index 5a25ccb1dd6a..961bf6a0324a 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -375,6 +375,26 @@ def license end end + def issue_template + cache.fetch(:issue_template) do + [nil, '.gitlab', '.github'].each do |path| + tree(:head, path).blobs.find do |file| + file.name =~ /\Aissue_template(?\.txt)(?\.md)\z/i + end + end + end + end + + def merge_request_template + cache.fetch(:merge_request_template) do + [nil, '.gitlab', '.github'].each do |path| + tree(:head, path).blobs.find do |file| + file.name =~ /\Amerge_request_template(?\.txt)(?\.md)\z/i + end + end + end + end + def head_commit @head_commit ||= commit(self.root_ref) end diff --git a/app/services/merge_requests/build_service.rb b/app/services/merge_requests/build_service.rb index 0f05e4da9082..560355234256 100644 --- a/app/services/merge_requests/build_service.rb +++ b/app/services/merge_requests/build_service.rb @@ -61,7 +61,7 @@ def execute merge_request.title = merge_request.source_branch.titleize.humanize end - merge_request.description = merge_request.target_project.repository_merge_requests_template + merge_request.description = merge_request.target_project.repository.merge_request_template merge_request end -- GitLab From 0ef796d6fedcde1ae1c731d0e772a05a08494877 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 20 Feb 2016 00:04:13 +0100 Subject: [PATCH 3/3] Fix regexp --- app/models/repository.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/repository.rb b/app/models/repository.rb index 961bf6a0324a..f778af1b1886 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -379,7 +379,7 @@ def issue_template cache.fetch(:issue_template) do [nil, '.gitlab', '.github'].each do |path| tree(:head, path).blobs.find do |file| - file.name =~ /\Aissue_template(?\.txt)(?\.md)\z/i + file.name =~ /\Aissue_template(\.txt|\.md)?\z/i end end end @@ -389,7 +389,7 @@ def merge_request_template cache.fetch(:merge_request_template) do [nil, '.gitlab', '.github'].each do |path| tree(:head, path).blobs.find do |file| - file.name =~ /\Amerge_request_template(?\.txt)(?\.md)\z/i + file.name =~ /\Amerge_request_template(\.txt|\.md)?\z/i end end end -- GitLab