summaryrefslogtreecommitdiff
path: root/lib/api
diff options
context:
space:
mode:
authorPatricio Cano <suprnova32@gmail.com>2016-08-25 17:26:20 -0500
committerPatricio Cano <suprnova32@gmail.com>2016-09-15 12:21:00 -0500
commite40e3fdc8271d1becf7952c7e30546c5abecb79b (patch)
treed2b8ef12a133ea77c598b456d15c46ea55a1e1bd /lib/api
parentf8bd9625f44ae4233c14e473c57becfb7ff15ca9 (diff)
downloadgitlab-ce-e40e3fdc8271d1becf7952c7e30546c5abecb79b.tar.gz
Added LFS support to SSH
- Required on the GitLab Rails side is mostly authentication and API related.
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