From c4f1e8ed1014d2dec07ad12bed398dfa5d2bc6e1 Mon Sep 17 00:00:00 2001 From: Ash McKenzie Date: Mon, 11 Feb 2019 14:34:10 +1100 Subject: [PATCH] Move LFS auth hash creation into GitLab::LfsToken --- lib/api/internal.rb | 8 +------- lib/gitlab/lfs_token.rb | 8 ++++++++ spec/lib/gitlab/lfs_token_spec.rb | 14 ++++++++++++++ 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/lib/api/internal.rb b/lib/api/internal.rb index 9488b3469d9..ede84dba42d 100644 --- a/lib/api/internal.rb +++ b/lib/api/internal.rb @@ -117,13 +117,7 @@ module API raise ActiveRecord::RecordNotFound.new("No key_id or user_id passed!") end - token_handler = Gitlab::LfsToken.new(actor) - - { - username: token_handler.actor_name, - lfs_token: token_handler.token, - repository_http_path: project.http_url_to_repo - } + Gitlab::LfsToken.new(actor).for_gitlab_shell(project.http_url_to_repo) end # rubocop: enable CodeReuse/ActiveRecord diff --git a/lib/gitlab/lfs_token.rb b/lib/gitlab/lfs_token.rb index 26b81847d37..1193277bee5 100644 --- a/lib/gitlab/lfs_token.rb +++ b/lib/gitlab/lfs_token.rb @@ -47,6 +47,14 @@ module Gitlab user? ? :lfs_token : :lfs_deploy_token end + def for_gitlab_shell(repository_http_path) + { + username: actor_name, + lfs_token: token, + repository_http_path: repository_http_path + } + end + private # rubocop:disable Lint/UselessAccessModifier class HMACToken diff --git a/spec/lib/gitlab/lfs_token_spec.rb b/spec/lib/gitlab/lfs_token_spec.rb index b81f3be874f..b4d42a47263 100644 --- a/spec/lib/gitlab/lfs_token_spec.rb +++ b/spec/lib/gitlab/lfs_token_spec.rb @@ -226,4 +226,18 @@ describe Gitlab::LfsToken, :clean_gitlab_redis_shared_state do end end end + + describe '#for_gitlab_shell' do + let(:actor) { create(:user) } + let(:lfs_token) { described_class.new(actor) } + let(:repo_http_path) { 'http://localhost/user/repo.git' } + + it 'returns a Hash desgined for gitlab-shell' do + hash = lfs_token.for_gitlab_shell(repo_http_path) + + expect(hash[:username]).to eq(actor.username) + expect(hash[:repository_http_path]).to eq(repo_http_path) + expect(hash[:lfs_token]).to be_a String + end + end end