Class: Mxrb::TeamServer::GitAuthenticator

Inherits:
Object
  • Object
show all
Defined in:
lib/mxrb/team_server.rb

Overview

Provides Git's credentials through an ephemeral askpass script.

Instance Method Summary collapse

Constructor Details

#initialize(credentials) ⇒ GitAuthenticator

Returns a new instance of GitAuthenticator.



124
125
126
# File 'lib/mxrb/team_server.rb', line 124

def initialize(credentials)
  @credentials = credentials
end

Instance Method Details

#callObject



128
129
130
131
132
133
134
135
136
# File 'lib/mxrb/team_server.rb', line 128

def call
  token = @credentials.pat
  return yield('GIT_TERMINAL_PROMPT' => '0') unless token

  Dir.mktmpdir('mxrb-askpass-') do |dir|
    helper = write_helper(dir)
    yield authenticated_environment(helper, token)
  end
end