Commit 01ce58bd authored by David Turner's avatar David Turner Committed by David Turner

add username to authorized result, so that gitlab-shell can pass it to hooks

parent dbcf48af
...@@ -31,6 +31,12 @@ module API ...@@ -31,6 +31,12 @@ module API
protocol = params[:protocol] protocol = params[:protocol]
actor.update_last_used_at if actor.is_a?(Key) actor.update_last_used_at if actor.is_a?(Key)
user =
if actor.is_a?(Key)
actor.user
else
actor
end
access_checker_klass = wiki? ? Gitlab::GitAccessWiki : Gitlab::GitAccess access_checker_klass = wiki? ? Gitlab::GitAccessWiki : Gitlab::GitAccess
access_checker = access_checker_klass access_checker = access_checker_klass
...@@ -47,6 +53,7 @@ module API ...@@ -47,6 +53,7 @@ module API
{ {
status: true, status: true,
gl_repository: gl_repository, gl_repository: gl_repository,
gl_username: user&.username,
repository_path: repository_path, repository_path: repository_path,
gitaly: gitaly_payload(params[:action]) gitaly: gitaly_payload(params[:action])
} }
......
...@@ -83,12 +83,11 @@ module Gitlab ...@@ -83,12 +83,11 @@ module Gitlab
def call_update_hook(gl_id, gl_username, oldrev, newrev, ref) def call_update_hook(gl_id, gl_username, oldrev, newrev, ref)
Dir.chdir(repo_path) do Dir.chdir(repo_path) do
stdout, stderr, status = Open3.capture3( env = {
{ 'GL_ID' => gl_id,
'GL_ID' => gl_id, 'GL_USERNAME' => gl_username
'GL_USERNAME' => gl_username }
}, stdout, stderr, status = Open3.capture3(env, path, ref, oldrev, newrev)
path, ref, oldrev, newrev)
[status.success?, (stderr.presence || stdout).gsub(/\R/, "<br>").html_safe] [status.success?, (stderr.presence || stdout).gsub(/\R/, "<br>").html_safe]
end end
end end
......
...@@ -22,9 +22,9 @@ module Gitlab ...@@ -22,9 +22,9 @@ module Gitlab
params = { params = {
GL_ID: Gitlab::GlId.gl_id(user), GL_ID: Gitlab::GlId.gl_id(user),
GL_REPOSITORY: Gitlab::GlRepository.gl_repository(project, is_wiki), GL_REPOSITORY: Gitlab::GlRepository.gl_repository(project, is_wiki),
GL_USERNAME: user&.username,
RepoPath: repo_path RepoPath: repo_path
} }
server = { server = {
address: Gitlab::GitalyClient.address(project.repository_storage), address: Gitlab::GitalyClient.address(project.repository_storage),
token: Gitlab::GitalyClient.token(project.repository_storage) token: Gitlab::GitalyClient.token(project.repository_storage)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment