Module: WorkhorseHelper

Included in:
ApplicationController
Defined in:
app/helpers/workhorse_helper.rb

Overview

Helpers to send Git blobs, diffs, patches or archives through Workhorse. Workhorse will also serve files when using `send_file`.

Instance Method Summary collapse

Instance Method Details

#send_artifacts_entry(file, entry) ⇒ Object

Send an entry from artifacts through Workhorse


39
40
41
42
# File 'app/helpers/workhorse_helper.rb', line 39

def send_artifacts_entry(file, entry)
  headers.store(*Gitlab::Workhorse.send_artifacts_entry(file, entry))
  head :ok
end

#send_git_archive(repository, **kwargs) ⇒ Object

Archive a Git repository and send it through Workhorse


33
34
35
36
# File 'app/helpers/workhorse_helper.rb', line 33

def send_git_archive(repository, **kwargs)
  headers.store(*Gitlab::Workhorse.send_git_archive(repository, **kwargs))
  head :ok
end

#send_git_blob(repository, blob, inline: true) ⇒ Object

Send a Git blob through Workhorse


7
8
9
10
11
12
13
14
15
16
# File 'app/helpers/workhorse_helper.rb', line 7

def send_git_blob(repository, blob, inline: true)
  headers.store(*Gitlab::Workhorse.send_git_blob(repository, blob))

  headers['Content-Disposition'] = inline ? 'inline' : 'attachment'

  # If enabled, this will override the values set above
  workhorse_set_content_type!

  render plain: ""
end

#send_git_diff(repository, diff_refs) ⇒ Object

Send a Git diff through Workhorse


19
20
21
22
23
# File 'app/helpers/workhorse_helper.rb', line 19

def send_git_diff(repository, diff_refs)
  headers.store(*Gitlab::Workhorse.send_git_diff(repository, diff_refs))
  headers['Content-Disposition'] = 'inline'
  head :ok
end

#send_git_patch(repository, diff_refs) ⇒ Object

Send a Git patch through Workhorse


26
27
28
29
30
# File 'app/helpers/workhorse_helper.rb', line 26

def send_git_patch(repository, diff_refs)
  headers.store(*Gitlab::Workhorse.send_git_patch(repository, diff_refs))
  headers['Content-Disposition'] = 'inline'
  head :ok
end

#set_workhorse_internal_api_content_typeObject


44
45
46
# File 'app/helpers/workhorse_helper.rb', line 44

def set_workhorse_internal_api_content_type
  headers['Content-Type'] = Gitlab::Workhorse::INTERNAL_API_CONTENT_TYPE
end

#workhorse_set_content_type!Object


48
49
50
# File 'app/helpers/workhorse_helper.rb', line 48

def workhorse_set_content_type!
  headers[Gitlab::Workhorse::DETECT_HEADER] = "true"
end