capistrano-committed 0.0.13 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/Gemfile +1 -1
- data/README.md +0 -1
- data/capistrano-committed.gemspec +17 -20
- data/lib/capistrano/committed.rb +55 -49
- data/lib/capistrano/committed/github_api.rb +8 -15
- data/lib/capistrano/committed/i18n.rb +1 -1
- data/lib/capistrano/committed/output.rb +9 -9
- data/lib/capistrano/committed/version.rb +1 -1
- data/lib/capistrano/tasks/committed.rake +47 -56
- metadata +23 -35
- data/.codeclimate.yml +0 -25
- data/.gitignore +0 -12
- data/.rspec +0 -2
- data/.rubocop.yml +0 -1168
- data/.travis.yml +0 -15
- data/Rakefile +0 -6
- data/bin/console +0 -14
- data/bin/setup +0 -7
- data/icons/capricorn.png +0 -0
- data/icons/capricorn_equation.png +0 -0
- data/icons/capricorn_full.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b10378b1d4ccb6c21f5aefe901978977310b2f60e3e7c7376dde006a0aeac6cd
|
4
|
+
data.tar.gz: 957d43e29b2564db78bb5e9e732c3e0ae10ed88522917b7d339bbe5fd6f4e460
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48d950402073213041a57a8e46b35a4f2fe03c0c57c81cc93d8ed2716cffdf7885f09a3efaa4e3283492ddb031255b0a2c4e2a93d836dd92ffa6461e2f48f9cb
|
7
|
+
data.tar.gz: f64b0bcbf2f23198758a171c2e8639051c630e3a3fc6f381520b1283417fb6ea6b8b084bc01c93b3ce9cee32eff1ff56ce4af92fc0f66e263c54f69ff3ff2d2c
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -9,7 +9,6 @@
|
|
9
9
|
[](https://codeclimate.com/github/sambauers/capistrano-committed/coverage)
|
10
10
|
[](https://codeclimate.com/github/sambauers/capistrano-committed)
|
11
11
|
[](https://codeclimate.com/github/sambauers/capistrano-committed)
|
12
|
-
[](https://gemnasium.com/sambauers/capistrano-committed)
|
13
12
|
|
14
13
|
Capistrano Committed is an extension to Capistrano 3 which helps to determine what you are about to deploy.
|
15
14
|
|
@@ -1,32 +1,29 @@
|
|
1
|
-
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
3
|
require 'capistrano/committed/version'
|
5
4
|
|
6
5
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
6
|
+
spec.name = 'capistrano-committed'
|
8
7
|
spec.version = Capistrano::Committed::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
8
|
+
spec.authors = ['Sam Bauers']
|
9
|
+
spec.email = ['sam@wopr.com.au']
|
11
10
|
spec.license = 'MIT'
|
12
11
|
|
13
|
-
spec.summary =
|
14
|
-
spec.description =
|
15
|
-
spec.homepage =
|
12
|
+
spec.summary = 'Tells you what Capistrano 3 is going to deploy based on GitHub commits since the last release.'
|
13
|
+
spec.description = 'Tells you what Capistrano 3 is going to deploy based on GitHub commits since the last release. See README.md for more info.'
|
14
|
+
spec.homepage = 'https://github.com/sambauers/capistrano-committed'
|
16
15
|
|
17
|
-
spec.files =
|
18
|
-
spec.
|
19
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
|
-
spec.require_paths = ["lib"]
|
16
|
+
spec.files = Dir['lib/**/*', 'capistrano-committed.gemspec', 'Gemfile', '*.md']
|
17
|
+
spec.require_paths = ['lib']
|
21
18
|
|
22
|
-
spec.required_ruby_version = '>= 2.
|
19
|
+
spec.required_ruby_version = '>= 2.3.8'
|
23
20
|
|
24
|
-
spec.add_dependency
|
25
|
-
spec.add_dependency
|
26
|
-
spec.add_dependency
|
27
|
-
spec.add_dependency
|
21
|
+
spec.add_dependency 'capistrano', '~> 3'
|
22
|
+
spec.add_dependency 'github_api', '~> 0.18'
|
23
|
+
spec.add_dependency 'mustache', '~> 1'
|
24
|
+
spec.add_dependency 'rack', '~> 2'
|
28
25
|
|
29
|
-
spec.add_development_dependency
|
30
|
-
spec.add_development_dependency
|
31
|
-
spec.add_development_dependency
|
26
|
+
spec.add_development_dependency 'bundler', '~> 2'
|
27
|
+
spec.add_development_dependency 'rake', '~> 12'
|
28
|
+
spec.add_development_dependency 'rspec', '~> 3'
|
32
29
|
end
|
data/lib/capistrano/committed.rb
CHANGED
@@ -13,7 +13,7 @@ module Capistrano
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def get_setting(setting, variable = nil)
|
16
|
-
|
16
|
+
variable.nil? ? @@settings[setting] : variable
|
17
17
|
end
|
18
18
|
|
19
19
|
def revision_search_regex(revision_line = nil)
|
@@ -27,11 +27,9 @@ module Capistrano
|
|
27
27
|
|
28
28
|
def get_revisions_from_lines(lines, search = nil, branch = nil, limit = nil)
|
29
29
|
check_type __callee__, 'lines', lines.is_a?(Array)
|
30
|
-
lines.each_with_index
|
31
|
-
check_type __callee__,
|
32
|
-
|
33
|
-
line.is_a?(String)
|
34
|
-
}
|
30
|
+
lines.each_with_index do |line, index|
|
31
|
+
check_type __callee__, format('lines[%<index>d]', index: index), line.is_a?(String)
|
32
|
+
end
|
35
33
|
|
36
34
|
search = revision_search_regex if search.nil?
|
37
35
|
check_type __callee__, 'search', search.is_a?(Regexp)
|
@@ -63,30 +61,20 @@ module Capistrano
|
|
63
61
|
def add_dates_to_revisions(revisions, github, git_user = nil, git_repo = nil)
|
64
62
|
check_type __callee__, 'revisions', revisions.is_a?(Hash)
|
65
63
|
check_type __callee__, 'github', github.is_a?(Capistrano::Committed::GithubApi)
|
66
|
-
|
67
|
-
|
68
|
-
check_type __callee__, 'git_user', git_user.is_a?(String)
|
69
|
-
|
70
|
-
git_repo = get_setting(:repo, git_repo)
|
71
|
-
check_type __callee__, 'git_repo', git_repo.is_a?(String)
|
64
|
+
git_user = check_git_user(git_user)
|
65
|
+
git_repo = check_git_repo(git_repo)
|
72
66
|
|
73
67
|
revisions.each do |release, revision|
|
74
|
-
next if
|
75
|
-
commit = github.get_commit(git_user,
|
76
|
-
|
77
|
-
revision[:sha])
|
78
|
-
|
79
|
-
unless commit.nil?
|
80
|
-
revisions[release][:date] = commit[:commit][:committer][:date]
|
81
|
-
end
|
68
|
+
next if %i[next previous].include? release
|
69
|
+
commit = github.get_commit(git_user, git_repo, revision[:sha])
|
70
|
+
revisions[release][:date] = commit[:commit][:committer][:date] unless commit.nil?
|
82
71
|
end
|
83
|
-
revisions
|
84
72
|
end
|
85
73
|
|
86
74
|
def get_earliest_date_from_revisions(revisions)
|
87
75
|
check_type __callee__, 'revisions', revisions.is_a?(Hash)
|
88
76
|
|
89
|
-
revisions.values.map{ |r| Time.parse(r[:date]) unless r[:date].nil? }.compact.min
|
77
|
+
revisions.values.map { |r| Time.parse(r[:date]) unless r[:date].nil? }.compact.min
|
90
78
|
end
|
91
79
|
|
92
80
|
def days_to_seconds(days)
|
@@ -106,40 +94,58 @@ module Capistrano
|
|
106
94
|
|
107
95
|
def get_issue_urls(message, issue_match = nil, issue_postprocess = nil, issue_url = nil)
|
108
96
|
check_type __callee__, 'message', message.is_a?(String)
|
97
|
+
issue_match = check_issue_match(issue_match)
|
98
|
+
issue_postprocess = check_issue_postprocess(issue_postprocess)
|
99
|
+
issue_url = check_issue_url(issue_url)
|
100
|
+
|
101
|
+
return [] unless (matches = message.scan(Regexp.new(issue_match)))
|
102
|
+
matches.map! do |match|
|
103
|
+
postprocess_issue_url(issue_postprocess, issue_url, match[0])
|
104
|
+
end.uniq
|
105
|
+
end
|
109
106
|
|
107
|
+
private
|
108
|
+
|
109
|
+
def check_type(method, param, condition)
|
110
|
+
raise TypeError, t('committed.error.helpers.valid_param', method: method, param: param) unless condition
|
111
|
+
end
|
112
|
+
|
113
|
+
def check_git_user(git_user)
|
114
|
+
git_user = get_setting(:user, git_user)
|
115
|
+
check_type __callee__, 'git_user', git_user.is_a?(String)
|
116
|
+
git_user
|
117
|
+
end
|
118
|
+
|
119
|
+
def check_git_repo(git_repo)
|
120
|
+
git_repo = get_setting(:repo, git_repo)
|
121
|
+
check_type __callee__, 'git_repo', git_repo.is_a?(String)
|
122
|
+
git_repo
|
123
|
+
end
|
124
|
+
|
125
|
+
def check_issue_match(issue_match)
|
110
126
|
issue_match = get_setting(:issue_match, issue_match)
|
111
|
-
check_type __callee__,
|
112
|
-
|
113
|
-
|
127
|
+
check_type __callee__, 'issue_match', (issue_match.is_a?(String) || issue_match.is_a?(Regexp))
|
128
|
+
issue_match
|
129
|
+
end
|
114
130
|
|
131
|
+
def check_issue_postprocess(issue_postprocess)
|
115
132
|
issue_postprocess = get_setting(:issue_postprocess, issue_postprocess)
|
116
133
|
check_type __callee__, 'issue_postprocess', issue_postprocess.is_a?(Array)
|
117
|
-
issue_postprocess.each
|
118
|
-
check_type __callee__,
|
119
|
-
|
120
|
-
|
121
|
-
|
134
|
+
issue_postprocess.each do |method|
|
135
|
+
check_type __callee__, format('issue_postprocess[:%<method>s]', method: method.to_s), method.is_a?(Symbol)
|
136
|
+
end
|
137
|
+
issue_postprocess
|
138
|
+
end
|
122
139
|
|
140
|
+
def check_issue_url(issue_url)
|
123
141
|
issue_url = get_setting(:issue_url, issue_url)
|
124
142
|
check_type __callee__, 'issue_url', issue_url.is_a?(String)
|
125
|
-
|
126
|
-
matches = message.scan(Regexp.new(issue_match))
|
127
|
-
return [] unless matches
|
128
|
-
matches.map! { |match|
|
129
|
-
issue = match[0]
|
130
|
-
issue_postprocess.each { |method|
|
131
|
-
issue = issue.send(method)
|
132
|
-
}
|
133
|
-
format(issue_url, issue)
|
134
|
-
}
|
135
|
-
matches.uniq
|
143
|
+
issue_url
|
136
144
|
end
|
137
145
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
method: method,
|
142
|
-
param: param) unless condition
|
146
|
+
def postprocess_issue_url(issue_postprocess, issue_url, issue)
|
147
|
+
issue_postprocess.each { |method| issue = issue.send(method) }
|
148
|
+
format(issue_url, issue)
|
143
149
|
end
|
144
150
|
|
145
151
|
def pad_revisions(revisions)
|
@@ -149,9 +155,9 @@ module Capistrano
|
|
149
155
|
# Sort revisions by release date
|
150
156
|
revisions = Hash[revisions.sort { |a, b| b[1][:release] <=> a[1][:release] }]
|
151
157
|
# Add the "previous" revision
|
152
|
-
revisions
|
158
|
+
revisions[:previous] = { release: :previous, entries: {} }
|
153
159
|
# Add the "next" revision
|
154
|
-
revisions = {next: { release: :next, entries: {} }}.merge(revisions)
|
160
|
+
revisions = { next: { release: :next, entries: {} } }.merge(revisions)
|
155
161
|
end
|
156
162
|
revisions
|
157
163
|
end
|
@@ -159,4 +165,4 @@ module Capistrano
|
|
159
165
|
end
|
160
166
|
end
|
161
167
|
|
162
|
-
load File.expand_path('
|
168
|
+
load File.expand_path('tasks/committed.rake', __dir__)
|
@@ -3,6 +3,8 @@ require 'github_api'
|
|
3
3
|
module Capistrano
|
4
4
|
module Committed
|
5
5
|
class GithubApi
|
6
|
+
attr_reader :client
|
7
|
+
|
6
8
|
def initialize(config_options = {})
|
7
9
|
validate('config_options', config_options, Hash, __callee__)
|
8
10
|
|
@@ -16,10 +18,6 @@ module Capistrano
|
|
16
18
|
@client = ::Github.new options
|
17
19
|
end
|
18
20
|
|
19
|
-
def client
|
20
|
-
@client
|
21
|
-
end
|
22
|
-
|
23
21
|
def get_commit(user, repo, sha)
|
24
22
|
validate_user_and_repo(user, repo, __callee__)
|
25
23
|
validate('sha', sha, String, __callee__)
|
@@ -81,13 +79,11 @@ module Capistrano
|
|
81
79
|
validate_user_and_repo(user, repo, __callee__)
|
82
80
|
validate('id', id, Integer, __callee__)
|
83
81
|
|
84
|
-
valid_states = %w
|
82
|
+
valid_states = %w[pending success error failure]
|
85
83
|
state = state.to_s
|
86
84
|
unless valid_states.include?(state)
|
87
|
-
message = t('committed.error.helpers.valid_param',
|
88
|
-
|
89
|
-
param: 'state')
|
90
|
-
fail TypeError, message
|
85
|
+
message = t('committed.error.helpers.valid_param', method: __callee__, param: 'state')
|
86
|
+
raise TypeError, message
|
91
87
|
end
|
92
88
|
|
93
89
|
api_call do
|
@@ -105,7 +101,7 @@ module Capistrano
|
|
105
101
|
message = t('committed.error.helpers.valid_param',
|
106
102
|
method: method,
|
107
103
|
param: param)
|
108
|
-
|
104
|
+
raise TypeError, message
|
109
105
|
end
|
110
106
|
|
111
107
|
def validate_user_and_repo(user, repo, method)
|
@@ -116,11 +112,8 @@ module Capistrano
|
|
116
112
|
def api_call
|
117
113
|
yield
|
118
114
|
rescue ::Github::Error::GithubError => e
|
119
|
-
if e.is_a? ::Github::Error::ServiceError
|
120
|
-
|
121
|
-
elsif e.is_a? ::Github::Error::ClientError
|
122
|
-
raise e, t('committed.error.helpers.github_client_error')
|
123
|
-
end
|
115
|
+
raise e, t('committed.error.helpers.github_service_error') if e.is_a? ::Github::Error::ServiceError
|
116
|
+
raise e, t('committed.error.helpers.github_client_error') if e.is_a? ::Github::Error::ClientError
|
124
117
|
end
|
125
118
|
end
|
126
119
|
end
|
@@ -38,7 +38,7 @@ en = {
|
|
38
38
|
}
|
39
39
|
}
|
40
40
|
|
41
|
-
I18n.backend.store_translations(:en,
|
41
|
+
I18n.backend.store_translations(:en, capistrano: { committed: en })
|
42
42
|
|
43
43
|
if I18n.respond_to?(:enforce_available_locales=)
|
44
44
|
I18n.enforce_available_locales = true
|
@@ -5,16 +5,16 @@ module Capistrano
|
|
5
5
|
class Output < Mustache
|
6
6
|
@@template_format = 'txt'
|
7
7
|
|
8
|
-
self.template_path = format('
|
9
|
-
self.template_file = format('
|
8
|
+
self.template_path = format('%<dir>s/output', dir: File.dirname(__FILE__))
|
9
|
+
self.template_file = format('%<dir>s/output/output_%<format>s.mustache', dir: File.dirname(__FILE__), format: @@template_format)
|
10
10
|
|
11
11
|
def get_output_path(file)
|
12
|
-
format('
|
12
|
+
format('%<dir>s/output/%<file>s', dir: File.dirname(__FILE__), file: file)
|
13
13
|
end
|
14
14
|
|
15
15
|
def get_output_template_path(format = 'txt', set_template_format = true)
|
16
16
|
@@template_format = format if set_template_format
|
17
|
-
get_output_path(format('output_
|
17
|
+
get_output_path(format('output_%<format>s.mustache', format: format))
|
18
18
|
end
|
19
19
|
|
20
20
|
def template_format
|
@@ -139,18 +139,18 @@ module Capistrano
|
|
139
139
|
!commits.nil?
|
140
140
|
end
|
141
141
|
|
142
|
-
|
143
|
-
|
142
|
+
private
|
143
|
+
|
144
144
|
def commit_created_on(info)
|
145
145
|
return unless info[:commit] && info[:commit][:committer]
|
146
146
|
t('committed.output.committed_on', time: info[:commit][:committer][:date])
|
147
147
|
end
|
148
|
-
|
148
|
+
|
149
149
|
def pull_request_created_on(info)
|
150
150
|
return unless info[:merged_at]
|
151
151
|
t('committed.output.merged_on', time: info[:merged_at])
|
152
152
|
end
|
153
|
-
|
153
|
+
|
154
154
|
def format_created_by(t_key, user)
|
155
155
|
return unless user
|
156
156
|
t(t_key, login: user[:login])
|
@@ -159,7 +159,7 @@ module Capistrano
|
|
159
159
|
def format_link(url)
|
160
160
|
case template_format
|
161
161
|
when 'html'
|
162
|
-
format('<a href="
|
162
|
+
format('<a href="%<url>s">%<url>s</a>', url: url)
|
163
163
|
when 'txt'
|
164
164
|
url
|
165
165
|
end
|
@@ -1,64 +1,53 @@
|
|
1
1
|
namespace :committed do
|
2
2
|
task :check_prerequisites do
|
3
3
|
# Checks all the settings to make sure they are OK - mostly just checks type
|
4
|
-
{ committed_user: 'user',
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
fail ArgumentError, t('committed.error.prerequisites.empty',
|
13
|
-
variable: variable,
|
14
|
-
name: name) if
|
15
|
-
fetch(variable).empty?
|
4
|
+
{ committed_user: 'user', committed_repo: 'repository' }.each do |variable, name|
|
5
|
+
if fetch(variable).nil? || !fetch(variable).is_a?(String)
|
6
|
+
raise TypeError, t('committed.error.prerequisites.nil', variable: variable, name: name)
|
7
|
+
end
|
8
|
+
if fetch(variable).empty?
|
9
|
+
raise ArgumentError, t('committed.error.prerequisites.empty', variable: variable, name: name)
|
10
|
+
end
|
16
11
|
end
|
17
12
|
|
18
|
-
|
19
|
-
|
20
|
-
|
13
|
+
unless fetch(:committed_github_config).is_a?(Hash)
|
14
|
+
raise TypeError, t('committed.error.prerequisites.hash', variable: 'committed_github_config')
|
15
|
+
end
|
21
16
|
end
|
22
17
|
|
23
18
|
task :check_report_prerequisites do
|
24
19
|
# Checks all the settings to make sure they are OK - mostly just checks type
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
fetch(:committed_issue_match).nil?
|
57
|
-
|
58
|
-
fail TypeError, t('committed.error.prerequisites.string_or_nil',
|
59
|
-
variable: 'committed_issue_url') unless
|
60
|
-
fetch(:committed_issue_url).is_a?(String) ||
|
61
|
-
fetch(:committed_issue_url).nil?
|
20
|
+
unless fetch(:committed_revision_line).is_a?(String)
|
21
|
+
raise TypeError, t('committed.error.prerequisites.string', variable: 'committed_revision_line')
|
22
|
+
end
|
23
|
+
|
24
|
+
unless fetch(:committed_revision_limit).is_a?(Integer)
|
25
|
+
raise TypeError, t('committed.error.prerequisites.integer', variable: 'committed_revision_limit')
|
26
|
+
end
|
27
|
+
|
28
|
+
unless fetch(:committed_commit_buffer).is_a?(Integer)
|
29
|
+
raise TypeError, t('committed.error.prerequisites.integer', variable: 'committed_commit_buffer')
|
30
|
+
end
|
31
|
+
|
32
|
+
if fetch(:committed_output_path).is_a?(String)
|
33
|
+
raise TypeError, t('committed.error.deprecated', deprecated: 'committed_output_path', replacement: 'committed_output_text_path')
|
34
|
+
end
|
35
|
+
|
36
|
+
unless fetch(:committed_output_text_path).is_a?(String) || fetch(:committed_output_text_path).nil?
|
37
|
+
raise TypeError, t('committed.error.prerequisites.string_or_nil', variable: 'committed_output_text_path')
|
38
|
+
end
|
39
|
+
|
40
|
+
unless fetch(:committed_output_html_path).is_a?(String) || fetch(:committed_output_html_path).nil?
|
41
|
+
raise TypeError, t('committed.error.prerequisites.string_or_nil', variable: 'committed_output_html_path')
|
42
|
+
end
|
43
|
+
|
44
|
+
unless fetch(:committed_issue_match).is_a?(String) || fetch(:committed_issue_match).is_a?(Regexp) || fetch(:committed_issue_match).nil?
|
45
|
+
raise TypeError, t('committed.error.prerequisites.string_or_regexp_or_nil', variable: 'committed_issue_match')
|
46
|
+
end
|
47
|
+
|
48
|
+
unless fetch(:committed_issue_url).is_a?(String) || fetch(:committed_issue_url).nil?
|
49
|
+
raise TypeError, t('committed.error.prerequisites.string_or_nil', variable: 'committed_issue_url')
|
50
|
+
end
|
62
51
|
end
|
63
52
|
|
64
53
|
# task :register_deployment_pending do
|
@@ -99,7 +88,7 @@ namespace :committed do
|
|
99
88
|
invoke 'committed:check_prerequisites'
|
100
89
|
invoke 'committed:check_report_prerequisites'
|
101
90
|
|
102
|
-
::Capistrano::Committed.import_settings(
|
91
|
+
::Capistrano::Committed.import_settings(
|
103
92
|
branch: fetch(:branch),
|
104
93
|
user: fetch(:committed_user),
|
105
94
|
repo: fetch(:committed_repo),
|
@@ -114,7 +103,7 @@ namespace :committed do
|
|
114
103
|
issue_url: fetch(:committed_issue_url),
|
115
104
|
deployments: fetch(:committed_deployments),
|
116
105
|
deployment_id: fetch(:committed_deployment_id)
|
117
|
-
|
106
|
+
)
|
118
107
|
|
119
108
|
# Only do this on the primary web server
|
120
109
|
on primary :web do
|
@@ -241,10 +230,12 @@ namespace :committed do
|
|
241
230
|
# Send the text output to screen, or to a file on the server
|
242
231
|
|
243
232
|
# Create the mustache instance and plug in the revisions
|
244
|
-
output = ::Capistrano::Committed::Output.new
|
233
|
+
output = ::Capistrano::Committed::Output.new
|
245
234
|
output[:revisions] = revisions.values
|
246
235
|
output[:page_title] = t('committed.output.page_title',
|
247
|
-
repo: format('
|
236
|
+
repo: format('%<user>s/%<repo>s',
|
237
|
+
user: fetch(:committed_user),
|
238
|
+
repo: fetch(:committed_repo)))
|
248
239
|
|
249
240
|
# Send the text output to a file on the server
|
250
241
|
if fetch(:committed_output_text_path).nil?
|