summaryrefslogtreecommitdiff
path: root/lib/api
diff options
context:
space:
mode:
Diffstat (limited to 'lib/api')
-rw-r--r--lib/api/entities.rb2
-rw-r--r--lib/api/internal.rb13
2 files changed, 13 insertions, 2 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index 4f736e4ec2b..b4fcacca896 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -1,7 +1,7 @@
module API
module Entities
class UserSafe < Grape::Entity
- expose :name, :username
+ expose :name, :username, :lfs_token
end
class UserBasic < UserSafe
diff --git a/lib/api/internal.rb b/lib/api/internal.rb
index 6e6efece7c4..7c0a6eaa652 100644
--- a/lib/api/internal.rb
+++ b/lib/api/internal.rb
@@ -69,6 +69,10 @@ module API
else
project.repository.path_to_repo
end
+
+ # Return HTTP full path, so that gitlab-shell has this information
+ # ready for git-lfs-authenticate
+ response[:repository_http_path] = project.http_url_to_repo
end
response
@@ -83,7 +87,14 @@ module API
#
get "/discover" do
key = Key.find(params[:key_id])
- present key.user, with: Entities::UserSafe
+ user = key.user
+ if user
+ user.ensure_lfs_token!
+ present user, with: Entities::UserSafe
+ else
+ key.ensure_lfs_token!
+ { username: 'lfs-deploy-key', lfs_token: key.lfs_token }
+ end
end
get "/check" do