diff options
author | Alejandro RodrÃguez <alejorro70@gmail.com> | 2017-05-02 18:15:12 -0300 |
---|---|---|
committer | Alejandro RodrÃguez <alejorro70@gmail.com> | 2017-05-05 10:51:55 -0300 |
commit | 5249157552bbf4cbf279b1decbd4a0e90e056077 (patch) | |
tree | 250c360fcc3e6c435713421bf95df7d8d9e9ab6d /app/workers | |
parent | c45341c816d78d51aee84a6068d778b9cbc502c8 (diff) | |
download | gitlab-ce-5249157552bbf4cbf279b1decbd4a0e90e056077.tar.gz |
Allow gl-repository strings as project identifiers in PostReceive worker
Diffstat (limited to 'app/workers')
-rw-r--r-- | app/workers/post_receive.rb | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/app/workers/post_receive.rb b/app/workers/post_receive.rb index 015a41b6e82..39f03983821 100644 --- a/app/workers/post_receive.rb +++ b/app/workers/post_receive.rb @@ -2,27 +2,24 @@ class PostReceive include Sidekiq::Worker include DedicatedSidekiqQueue - def perform(repo_path, identifier, changes) - repo_relative_path = Gitlab::RepoPath.strip_storage_path(repo_path) + def perform(project_identifier, identifier, changes) + project, is_wiki = parse_project_identifier(project_identifier) + + if project.nil? + log("Triggered hook for non-existing project with identifier \"#{project_identifier}\"") + return false + end changes = Base64.decode64(changes) unless changes.include?(' ') # Use Sidekiq.logger so arguments can be correlated with execution # time and thread ID's. Sidekiq.logger.info "changes: #{changes.inspect}" if ENV['SIDEKIQ_LOG_ARGUMENTS'] - post_received = Gitlab::GitPostReceive.new(repo_relative_path, identifier, changes) - - if post_received.project.nil? - log("Triggered hook for non-existing project with full path \"#{repo_relative_path}\"") - return false - end + post_received = Gitlab::GitPostReceive.new(project, identifier, changes) - if post_received.wiki? + if is_wiki # Nothing defined here yet. - elsif post_received.regular_project? - process_project_changes(post_received) else - log("Triggered hook for unidentifiable repository type with full path \"#{repo_relative_path}\"") - false + process_project_changes(post_received) end end @@ -47,6 +44,14 @@ class PostReceive private + def parse_project_identifier(project_identifier) + if project_identifier.start_with?('/') + Gitlab::RepoPath.parse(project_identifier) + else + Gitlab::GlRepository.parse(project_identifier) + end + end + def log(message) Gitlab::GitLogger.error("POST-RECEIVE: #{message}") end |