From e44016b90ad900836b2cbc83ebb9f58c39b3576a Mon Sep 17 00:00:00 2001 From: Felipe Artur Date: Thu, 18 May 2017 17:17:58 -0300 Subject: Prevent commits from upstream repositories to be re-processed by forks --- app/workers/process_commit_worker.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'app/workers') diff --git a/app/workers/process_commit_worker.rb b/app/workers/process_commit_worker.rb index d6ed0e253ad..8b192aa74c6 100644 --- a/app/workers/process_commit_worker.rb +++ b/app/workers/process_commit_worker.rb @@ -17,6 +17,7 @@ class ProcessCommitWorker project = Project.find_by(id: project_id) return unless project + return if commit_exists_in_upstream?(project, commit_hash) user = User.find_by(id: user_id) @@ -76,4 +77,16 @@ class ProcessCommitWorker Commit.from_hash(hash, project) end + + private + + # Avoid to re-process commits messages that already exists in the upstream + # when project is forked. This will also prevent duplicated system notes. + def commit_exists_in_upstream?(project, commit_hash) + return false unless project.forked? + + upstream_project = project.forked_from_project + commit_id = commit_hash.with_indifferent_access[:id] + upstream_project.commit(commit_id).present? + end end -- cgit v1.2.3 From 005496354457cefba4f54e2d19f53888b2182727 Mon Sep 17 00:00:00 2001 From: Felipe Artur Date: Tue, 23 May 2017 12:33:49 -0300 Subject: Remove unecessary commit pattern check --- app/workers/process_commit_worker.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'app/workers') diff --git a/app/workers/process_commit_worker.rb b/app/workers/process_commit_worker.rb index 8b192aa74c6..fe6a49976e0 100644 --- a/app/workers/process_commit_worker.rb +++ b/app/workers/process_commit_worker.rb @@ -25,8 +25,6 @@ class ProcessCommitWorker commit = build_commit(project, commit_hash) - return unless commit.matches_cross_reference_regex? - author = commit.author || user process_commit_message(project, commit, user, author, default) @@ -80,7 +78,7 @@ class ProcessCommitWorker private - # Avoid to re-process commits messages that already exists in the upstream + # Avoid reprocessing commits that already exist in the upstream # when project is forked. This will also prevent duplicated system notes. def commit_exists_in_upstream?(project, commit_hash) return false unless project.forked? -- cgit v1.2.3