diff options
author | Ash McKenzie <amckenzie@gitlab.com> | 2018-07-25 23:53:24 +1000 |
---|---|---|
committer | Ash McKenzie <amckenzie@gitlab.com> | 2018-07-25 23:53:24 +1000 |
commit | 5e04d2613f6cecd41407e5037d8e2a36fe241151 (patch) | |
tree | d9250aa2c5492bd7e3373e8cff5bc6f7122ba4db /lib/gitlab_shell.rb | |
parent | cf27364efc75388de805adc368eb6124c180b1b4 (diff) | |
download | gitlab-shell-ash.mckenzie/srp-refactor.tar.gz |
Diffstat (limited to 'lib/gitlab_shell.rb')
-rw-r--r-- | lib/gitlab_shell.rb | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/gitlab_shell.rb b/lib/gitlab_shell.rb index 10a9256..0a73e04 100644 --- a/lib/gitlab_shell.rb +++ b/lib/gitlab_shell.rb @@ -14,7 +14,6 @@ class GitlabShell include LogHelper class DisallowedCommandError < StandardError; end - class InvalidRepositoryPathError < StandardError; end GIT_COMMANDS = %w(git-upload-pack git-receive-pack git-upload-archive git-lfs-authenticate).freeze API_COMMANDS = %w(2fa_recovery_codes).freeze @@ -28,7 +27,7 @@ class GitlabShell # ssh git@gitlab.example.com 'evil command', then origin_cmd contains # 'evil command'. def exec(origin_cmd) - unless origin_cmd + if !origin_cmd || origin_cmd.empty? puts "Welcome to GitLab, #{username}!" return true end @@ -49,10 +48,10 @@ class GitlabShell false rescue DisallowedCommandError $logger.warn('Denied disallowed command', command: origin_cmd, user: log_username) - $stderr.puts "GitLab: Disallowed command" + $stderr.puts 'GitLab: Disallowed command' false rescue InvalidRepositoryPathError - $stderr.puts "GitLab: Invalid repository path" + $stderr.puts 'GitLab: Invalid repository path' false end @@ -61,6 +60,10 @@ class GitlabShell attr_accessor :repo_name, :command, :git_access attr_reader :config, :key_id, :repo_path + def api + @api ||= GitlabNet.new + end + def parse_cmd(args) # Handle Git for Windows 2.14 using "git upload-pack" instead of git-upload-pack if args.length == 3 && args.first == 'git' @@ -89,7 +92,7 @@ class GitlabShell raise DisallowedCommandError end else - raise DisallowedCommandError unless args.count == 2 + raise DisallowedCommandError, 'Expected two arguments' unless args.count == 2 @repo_name = args.last end @@ -112,10 +115,6 @@ class GitlabShell action.execute(command, args) end - def api - GitlabNet.new - end - def lfs_authenticate lfs_access = api.lfs_authenticate(key_id, repo_name) return unless lfs_access |