semaph 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3f87c47f0c0284d850593103961da8d6a7dc749042dc774aaa8f16f59f4fa183
4
- data.tar.gz: 4c35a0cdfec02111a076738d6be9e2b18f1bd2a598bb3020f859840a21613556
3
+ metadata.gz: 31aeabe99b27b7a10bc26f91c6a60e87e3374b309df5e41b8354694d99bd1a90
4
+ data.tar.gz: 34499279ff5fedb14739093655ad29ff703c9c3d40222208783106d73d746841
5
5
  SHA512:
6
- metadata.gz: 348e0df084693205e3d59a18e886674d5783cf451b362d1dbf6aa0e5acd6dcaa5715313339e3c81c7a1dffb5f590a093684f99cc668c33dbc983182abce9d4bf
7
- data.tar.gz: a3c64e20563744c6224b0cbd7deac2fa50a8c3d0c53eceda20c8f8d9d294cb25e8307f489d0ebebfe582c1d1fad5eb25d88e897fd5ecb4e91b294eaa76200a46
6
+ metadata.gz: 47939331aee8435b5584f29ab39cf9647730dc0ead3b340c20175df3da849120aec5e9b97d3cd7dc116aa6044ac4fd9e1c4648b6ece862afe01a40b8e5007da9
7
+ data.tar.gz: 4f7b74225fd180ea85fad14c73a8a808733fc1d4836b69b99069a25314996bdd70066c1c1bb35b5e247cbeeefe5191760af50102d338e65992fdbd44ebfe529c
@@ -16,4 +16,8 @@ blocks:
16
16
  - name: Build
17
17
  commands:
18
18
  - checkout
19
- - echo "done"
19
+ - sem-version ruby $(grep ruby .tool-versions | cut -d ' ' -f 2)
20
+ - cache restore $(git ls-tree HEAD Gemfile.lock | cut -f3 -d$' ' | cut -f1 -d$'\t')
21
+ - bundle install --deployment --path vendor/bundle
22
+ - cache store $(git ls-tree HEAD Gemfile.lock | cut -f3 -d$' ' | cut -f1 -d$'\t') vendor/bundle
23
+ - bundle exec rake
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- semaph (0.5.0)
4
+ semaph (0.6.0)
5
5
  faraday
6
6
  rainbow
7
7
  shell_shock
@@ -9,18 +9,37 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
+ ast (2.4.0)
12
13
  coderay (1.1.2)
13
14
  faraday (1.0.1)
14
15
  multipart-post (>= 1.2, < 3)
15
16
  method_source (1.0.0)
16
17
  minitest (5.14.1)
17
18
  multipart-post (2.1.1)
19
+ parallel (1.19.1)
20
+ parser (2.7.1.3)
21
+ ast (~> 2.4.0)
18
22
  pry (0.13.1)
19
23
  coderay (~> 1.1)
20
24
  method_source (~> 1.0)
21
25
  rainbow (3.0.0)
22
26
  rake (12.3.3)
27
+ regexp_parser (1.7.0)
28
+ rexml (3.2.4)
29
+ rubocop (0.85.0)
30
+ parallel (~> 1.10)
31
+ parser (>= 2.7.0.1)
32
+ rainbow (>= 2.2.2, < 4.0)
33
+ regexp_parser (>= 1.7)
34
+ rexml
35
+ rubocop-ast (>= 0.0.3)
36
+ ruby-progressbar (~> 1.7)
37
+ unicode-display_width (>= 1.4.0, < 2.0)
38
+ rubocop-ast (0.0.3)
39
+ parser (>= 2.7.0.1)
40
+ ruby-progressbar (1.10.1)
23
41
  shell_shock (0.0.5)
42
+ unicode-display_width (1.7.0)
24
43
 
25
44
  PLATFORMS
26
45
  ruby
@@ -29,6 +48,7 @@ DEPENDENCIES
29
48
  minitest (~> 5.0)
30
49
  pry
31
50
  rake (~> 12.0)
51
+ rubocop
32
52
  semaph!
33
53
 
34
54
  BUNDLED WITH
data/Rakefile CHANGED
@@ -1,5 +1,6 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rake/testtask"
3
+ require "rubocop/rake_task"
3
4
 
4
5
  Rake::TestTask.new(:test) do |t|
5
6
  t.libs << "test"
@@ -7,4 +8,6 @@ Rake::TestTask.new(:test) do |t|
7
8
  t.test_files = FileList["test/**/*_test.rb"]
8
9
  end
9
10
 
10
- task default: :test
11
+ RuboCop::RakeTask.new(:cop)
12
+
13
+ task default: %i[cop test]
@@ -0,0 +1,63 @@
1
+ require "semaph/commands/reload_command"
2
+ require "semaph/commands/rerun_workflow_command"
3
+ require "semaph/commands/stop_workflow_command"
4
+ require "semaph/commands/visit_url_command"
5
+
6
+ module Semaph
7
+ module Commands
8
+ def self.workflow_commands(shell, workflow)
9
+ shell.add_command ::Semaph::Commands::RerunWorkflowCommand.new(workflow), "rerun"
10
+ shell.add_command ::Semaph::Commands::StopWorkflowCommand.new(workflow), "stop"
11
+ add_open_workflow_command(shell, workflow)
12
+ add_open_branch_command(shell, workflow)
13
+ add_github_commands(shell, workflow)
14
+ end
15
+
16
+ def self.add_open_workflow_command(shell, workflow)
17
+ shell.add_command(
18
+ ::Semaph::Commands::VisitUrlCommand.new(
19
+ "https://#{workflow.project.client.host}/workflows/#{workflow.id}",
20
+ "browse to workflow",
21
+ ),
22
+ "open-workflow",
23
+ )
24
+ end
25
+
26
+ def self.add_open_branch_command(shell, workflow)
27
+ shell.add_command(
28
+ ::Semaph::Commands::VisitUrlCommand.new(
29
+ "https://#{workflow.project.client.host}/branches/#{workflow.branch_id}",
30
+ "browse to branch in semaphore",
31
+ ),
32
+ "open-branch",
33
+ )
34
+ end
35
+
36
+ def self.add_github_commands(shell, workflow)
37
+ return unless workflow.project.github_url
38
+
39
+ add_github_branch(shell, workflow)
40
+ add_github_commit(shell, workflow)
41
+ end
42
+
43
+ def self.add_github_branch(shell, workflow)
44
+ shell.add_command(
45
+ ::Semaph::Commands::VisitUrlCommand.new(
46
+ "#{workflow.project.github_url}/tree/#{workflow.branch}",
47
+ "browse to the branch in github",
48
+ ),
49
+ "open-github-branch",
50
+ )
51
+ end
52
+
53
+ def self.add_github_commit(shell, workflow)
54
+ shell.add_command(
55
+ ::Semaph::Commands::VisitUrlCommand.new(
56
+ "#{workflow.project.github_url}/commit/#{workflow.sha}",
57
+ "browse to the commit in github",
58
+ ),
59
+ "open-github-commit",
60
+ )
61
+ end
62
+ end
63
+ end
@@ -1,5 +1,3 @@
1
- require "semaph/shells/workflow/workflow_shell"
2
-
3
1
  module Semaph
4
2
  module Commands
5
3
  class RerunWorkflowCommand
@@ -1,5 +1,3 @@
1
- require "semaph/shells/workflow/workflow_shell"
2
-
3
1
  module Semaph
4
2
  module Commands
5
3
  class StopWorkflowCommand
@@ -1,3 +1,5 @@
1
+ require "fileutils"
2
+
1
3
  module Semaph
2
4
  module Model
3
5
  class Job
@@ -20,8 +22,17 @@ module Semaph
20
22
  assign_from_block(raw_block)
21
23
  end
22
24
 
23
- def log
24
- pipeline.workflow.project.client.job_log(id)
25
+ def write_log(base)
26
+ FileUtils.mkdir_p(base)
27
+ filename = "#{base}/#{id}.log"
28
+ return filename if File.exist?(filename)
29
+
30
+ puts "retrieving log for job #{id}"
31
+ File.open(filename, "w") do |file|
32
+ file.puts pipeline.workflow.project.client.job_log(id)
33
+ end
34
+
35
+ filename
25
36
  end
26
37
 
27
38
  def description
@@ -1,3 +1,4 @@
1
+ require "semaph/formatting"
1
2
  require "semaph/model/pipeline_collection"
2
3
 
3
4
  module Semaph
@@ -9,11 +10,15 @@ module Semaph
9
10
  @project = project
10
11
  @raw = raw
11
12
  @id = raw["wf_id"]
12
- @sha = raw["commit_sha"]
13
- @commit = @sha.slice(0..10)
14
13
  @created_at = Time.at(raw["created_at"]["seconds"].to_i)
15
14
  @branch = raw["branch_name"]
16
15
  @branch_id = raw["branch_id"]
16
+ extract_git_details
17
+ end
18
+
19
+ def extract_git_details
20
+ @sha = raw["commit_sha"]
21
+ @commit = @sha.slice(0..10)
17
22
  @commit = `git log -n 1 --format="%h %an %s" #{sha}`.chomp if `git cat-file -t #{sha} 2>&1`.chomp == "commit"
18
23
  end
19
24
 
@@ -27,6 +32,14 @@ module Semaph
27
32
  Workflow.new(project, workflow_response["workflow"])
28
33
  end
29
34
 
35
+ def description
36
+ [
37
+ Semaph::Formatting.time(created_at),
38
+ branch,
39
+ commit,
40
+ ].join(" ")
41
+ end
42
+
30
43
  def stop
31
44
  project.client.stop_workflow(@id)
32
45
  end
@@ -13,6 +13,20 @@ module Semaph
13
13
  end
14
14
 
15
15
  def execute(index_string)
16
+ base = "tmp/logs/pipeline/#{@job_collection.pipeline.id}"
17
+ with_job(index_string) do |job|
18
+ unless job.finished?
19
+ puts "This job has not finished yet"
20
+ return
21
+ end
22
+
23
+ system("less #{job.write_log(base)}")
24
+ end
25
+ end
26
+
27
+ private
28
+
29
+ def with_job(index_string)
16
30
  index = index_string.to_i - 1
17
31
 
18
32
  job = @job_collection.all[index]
@@ -22,19 +36,7 @@ module Semaph
22
36
  return
23
37
  end
24
38
 
25
- unless job.finished?
26
- puts "This job has not finished yet"
27
- return
28
- end
29
-
30
- base = "tmp/logs/pipeline/#{job.pipeline.id}"
31
- FileUtils.mkdir_p(base)
32
- filename = "#{base}/#{job.id}.log"
33
- unless File.exist?(filename)
34
- puts "retrieving log for job #{job.id}"
35
- File.open(filename, "w") { |file| file.puts job.log }
36
- end
37
- system("less #{filename}")
39
+ yield job
38
40
  end
39
41
  end
40
42
  end
@@ -1,5 +1,3 @@
1
- require "fileutils"
2
-
3
1
  module Semaph
4
2
  module Shells
5
3
  module Pipeline
@@ -15,17 +13,12 @@ module Semaph
15
13
 
16
14
  def execute(expression)
17
15
  base = "tmp/logs/pipeline/#{job_collection.pipeline.id}"
18
- FileUtils.mkdir_p(base)
19
16
  @job_collection.send(@scope).each do |job|
20
17
  unless job.finished?
21
18
  puts "skipping incomplete job #{job.id}"
22
19
  next
23
20
  end
24
- filename = "#{base}/#{job.id}.log"
25
- unless File.exist?(filename)
26
- puts "retrieving log for job #{job.id}"
27
- File.open(filename, "w") { |file| file.puts job.log }
28
- end
21
+ job.write_log(base)
29
22
  end
30
23
  system("ag #{expression} #{base} | less")
31
24
  end
@@ -2,7 +2,7 @@ module Semaph
2
2
  module Shells
3
3
  module Pipeline
4
4
  class JobsPollCommand
5
- attr_reader :usage, :help
5
+ attr_reader :usage, :help, :job_collection
6
6
 
7
7
  def initialize(job_collection)
8
8
  @job_collection = job_collection
@@ -11,25 +11,50 @@ module Semaph
11
11
  end
12
12
 
13
13
  def execute(_whatever)
14
- incomplete_jobs = @job_collection.incomplete
15
- while incomplete_jobs.count.positive?
16
- puts "#{incomplete_jobs.count} incomplete jobs remaining:"
17
- incomplete_jobs.each { |job| puts job.description }
18
- failed_jobs = @job_collection.failed
19
- if failed_jobs.count.positive?
20
- puts "Some jobs have already failed:"
21
- failed_jobs.each { |job| puts job.description }
22
- `terminal-notifier -group semaph -message "#{failed_jobs.count} jobs have failed" -title "Job failures"` if @can_notify
14
+ while job_collection.incomplete.count.positive?
15
+ report_incomplete(job_collection.incomplete)
16
+ if job_collection.failed.count.positive?
17
+ report_failures(job_collection.failed)
23
18
  return
24
19
  end
25
20
  sleep 20
26
- @job_collection.reload
27
- incomplete_jobs = @job_collection.incomplete
21
+ job_collection.reload
28
22
  end
29
- @job_collection.all.each_with_index do |job, index|
23
+ report_final
24
+ end
25
+
26
+ private
27
+
28
+ def report_final
29
+ job_collection.all.each_with_index do |job, index|
30
30
  puts "#{index + 1} #{job.description}"
31
31
  end
32
- `terminal-notifier -group semaph -message "All jobs have completed" -title "Workflow completed"` if @can_notify
32
+ failed_job_count = job_collection.failed.count
33
+ notify(
34
+ "Workflow completed",
35
+ "#{job_collection.pipeline.workflow.description} completed with #{failed_job_count} failed jobs",
36
+ failed_job_count.positive?,
37
+ )
38
+ end
39
+
40
+ def report_incomplete(incomplete_jobs)
41
+ puts "polling #{job_collection.pipeline.workflow.description}"
42
+ puts "#{incomplete_jobs.count} incomplete jobs remaining:"
43
+ incomplete_jobs.each { |job| puts job.description }
44
+ end
45
+
46
+ def report_failures(failed_jobs)
47
+ puts "Some jobs have failed:"
48
+ failed_jobs.each { |job| puts job.description }
49
+ notify("Job Failures", "#{failed_jobs.count} jobs have failed", true)
50
+ end
51
+
52
+ def notify(title, message, failed)
53
+ return unless @can_notify
54
+
55
+ sound = failed ? "basso" : "blow"
56
+
57
+ `terminal-notifier -group semaph -message "#{message}" -title "#{title}" -sound #{sound}`
33
58
  end
34
59
  end
35
60
  end
@@ -1,5 +1,4 @@
1
- require "semaph/commands/reload_command"
2
- require "semaph/commands/rerun_workflow_command"
1
+ require "semaph/commands"
3
2
  require "semaph/shells/pipeline/jobs_list_command"
4
3
  require "semaph/shells/pipeline/job_log_command"
5
4
  require "semaph/shells/pipeline/job_log_grep_command"
@@ -16,6 +15,8 @@ module Semaph
16
15
 
17
16
  def initialize(pipeline)
18
17
  @pipeline = pipeline
18
+ workflow = pipeline.workflow
19
+ project = workflow.project
19
20
  @prompt = "🏗 #{project.client.name} #{project.name} #{workflow.id} #{pipeline.yaml} > "
20
21
  add_commands
21
22
  @jobs_list_command.execute("")
@@ -23,77 +24,20 @@ module Semaph
23
24
 
24
25
  private
25
26
 
26
- def project
27
- workflow.project
28
- end
29
-
30
- def workflow
31
- pipeline.workflow
32
- end
33
-
34
- def job_collection
35
- pipeline.job_collection
27
+ def add_commands
28
+ add_command ::Semaph::Commands::ReloadCommand.new, "reload" if ENV["SEMAPH_RELOAD"]
29
+ workflow = pipeline.workflow
30
+ ::Semaph::Commands.workflow_commands(self, workflow)
31
+ add_job_collection_commands(pipeline.job_collection)
36
32
  end
37
33
 
38
- def add_commands
34
+ def add_job_collection_commands(job_collection)
39
35
  @jobs_list_command = JobsListCommand.new(job_collection)
40
36
  add_command @jobs_list_command, "list-jobs", "ls"
41
37
  add_command JobsPollCommand.new(job_collection), "poll-jobs"
42
38
  add_command JobLogCommand.new(job_collection), "job-log"
43
39
  add_command JobLogGrepCommand.new(job_collection, :all), "grep-all-logs"
44
40
  add_command JobLogGrepCommand.new(job_collection, :failed), "grep-failed-logs"
45
- add_command ::Semaph::Commands::RerunWorkflowCommand.new(workflow), "rerun"
46
- add_open_branch_command
47
- add_open_workflow_command
48
- add_github_commands
49
- add_command ::Semaph::Commands::ReloadCommand.new, "reload" if ENV["SEMAPH_RELOAD"]
50
- end
51
-
52
- def add_open_workflow_command
53
- add_command(
54
- ::Semaph::Commands::VisitUrlCommand.new(
55
- "https://#{project.client.host}/workflows/#{workflow.id}",
56
- "browse to workflow",
57
- ),
58
- "open-workflow",
59
- )
60
- end
61
-
62
- def add_open_branch_command
63
- add_command(
64
- ::Semaph::Commands::VisitUrlCommand.new(
65
- "https://#{project.client.host}/branches/#{workflow.branch_id}",
66
- "browse to branch in semaphore",
67
- ),
68
- "open-branch",
69
- )
70
- end
71
-
72
- def add_github_commands
73
- return unless workflow.project.github_url
74
-
75
- add_github_branch
76
- add_github_commit
77
- end
78
-
79
- def add_github_branch
80
- add_command(
81
- ::Semaph::Commands::VisitUrlCommand.new(
82
- "#{workflow.project.github_url}/tree/#{workflow.branch}",
83
- "browse to the branch in github",
84
- ),
85
- "open-github-branch",
86
- )
87
- end
88
-
89
- def add_github_commit
90
- add_command(
91
- ::Semaph::Commands::VisitUrlCommand.new(
92
- "#{workflow.project.github_url}/commit/#{workflow.sha}",
93
- "browse to the commit in github",
94
- ),
95
- "open-github-commit",
96
- )
97
41
  end
98
42
  end
99
43
  end
@@ -1,5 +1,3 @@
1
- require "semaph/formatting"
2
-
3
1
  module Semaph
4
2
  module Shells
5
3
  module Project
@@ -17,20 +15,9 @@ module Semaph
17
15
  @workflow_collection.all.each_with_index do |workflow, index|
18
16
  next unless workflow.branch.include?(branch)
19
17
 
20
- puts description(index, workflow)
18
+ puts "#{index + 1} #{workflow.description}"
21
19
  end
22
20
  end
23
-
24
- private
25
-
26
- def description(index, workflow)
27
- [
28
- index + 1,
29
- Semaph::Formatting.time(workflow.created_at),
30
- workflow.branch,
31
- workflow.commit,
32
- ].join(" ")
33
- end
34
21
  end
35
22
  end
36
23
  end
@@ -1,7 +1,4 @@
1
- require "semaph/commands/reload_command"
2
- require "semaph/commands/rerun_workflow_command"
3
- require "semaph/commands/stop_workflow_command"
4
- require "semaph/commands/visit_url_command"
1
+ require "semaph/commands"
5
2
  require "semaph/shells/workflow/pipelines_list_command"
6
3
  require "semaph/shells/workflow/pipelines_select_command"
7
4
  require "shell_shock/context"
@@ -16,6 +13,7 @@ module Semaph
16
13
 
17
14
  def initialize(workflow)
18
15
  @workflow = workflow
16
+ project = @workflow.project
19
17
  @prompt = "🏗 #{project.client.name} #{project.name} #{workflow.id} > "
20
18
  add_commands
21
19
  @list_command.execute("")
@@ -23,71 +21,13 @@ module Semaph
23
21
 
24
22
  private
25
23
 
26
- def project
27
- @workflow.project
28
- end
29
-
30
- def pipeline_collection
31
- @workflow.pipeline_collection
32
- end
33
-
34
24
  def add_commands
25
+ pipeline_collection = @workflow.pipeline_collection
35
26
  @list_command = PipelinesListCommand.new(pipeline_collection)
36
27
  add_command @list_command, "list-pipelines", "ls"
37
28
  add_command PipelinesSelectCommand.new(pipeline_collection), "select-pipeline", "cd"
38
- add_command ::Semaph::Commands::RerunWorkflowCommand.new(workflow), "rerun"
39
- add_command ::Semaph::Commands::StopWorkflowCommand.new(workflow), "stop"
40
- add_open_branch_command
41
- add_open_workflow_command
42
- add_github_commands
43
29
  add_command ::Semaph::Commands::ReloadCommand.new, "reload" if ENV["SEMAPH_RELOAD"]
44
- end
45
-
46
- def add_open_workflow_command
47
- add_command(
48
- ::Semaph::Commands::VisitUrlCommand.new(
49
- "https://#{project.client.host}/workflows/#{workflow.id}",
50
- "browse to workflow",
51
- ),
52
- "open-workflow",
53
- )
54
- end
55
-
56
- def add_open_branch_command
57
- add_command(
58
- ::Semaph::Commands::VisitUrlCommand.new(
59
- "https://#{project.client.host}/branches/#{workflow.branch_id}",
60
- "browse to branch in semaphore",
61
- ),
62
- "open-branch",
63
- )
64
- end
65
-
66
- def add_github_commands
67
- return unless workflow.project.github_url
68
-
69
- add_github_branch
70
- add_github_commit
71
- end
72
-
73
- def add_github_branch
74
- add_command(
75
- ::Semaph::Commands::VisitUrlCommand.new(
76
- "#{workflow.project.github_url}/tree/#{workflow.branch}",
77
- "browse to the branch in github",
78
- ),
79
- "open-github-branch",
80
- )
81
- end
82
-
83
- def add_github_commit
84
- add_command(
85
- ::Semaph::Commands::VisitUrlCommand.new(
86
- "#{workflow.project.github_url}/commit/#{workflow.sha}",
87
- "browse to the commit in github",
88
- ),
89
- "open-github-commit",
90
- )
30
+ ::Semaph::Commands.workflow_commands(self, workflow)
91
31
  end
92
32
  end
93
33
  end
@@ -1,3 +1,3 @@
1
1
  module Semaph
2
- VERSION = "0.5.0".freeze
2
+ VERSION = "0.6.0".freeze
3
3
  end
@@ -28,4 +28,5 @@ Gem::Specification.new do |spec|
28
28
  spec.add_dependency "shell_shock"
29
29
 
30
30
  spec.add_development_dependency "pry"
31
+ spec.add_development_dependency "rubocop"
31
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semaph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Ryall
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-03 00:00:00.000000000 Z
11
+ date: 2020-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: api client and shell for api
70
84
  email:
71
85
  - mark@ryall.name
@@ -90,6 +104,7 @@ files:
90
104
  - exe/semaph
91
105
  - lib/semaph.rb
92
106
  - lib/semaph/api.rb
107
+ - lib/semaph/commands.rb
93
108
  - lib/semaph/commands/reload_command.rb
94
109
  - lib/semaph/commands/rerun_workflow_command.rb
95
110
  - lib/semaph/commands/stop_workflow_command.rb
@@ -129,7 +144,7 @@ metadata:
129
144
  homepage_uri: http://github.com/markryall/semaph
130
145
  source_code_uri: http://github.com/markryall/semaph
131
146
  changelog_uri: http://github.com/markryall/semaph
132
- post_install_message:
147
+ post_install_message:
133
148
  rdoc_options: []
134
149
  require_paths:
135
150
  - lib
@@ -145,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
160
  version: '0'
146
161
  requirements: []
147
162
  rubygems_version: 3.1.2
148
- signing_key:
163
+ signing_key:
149
164
  specification_version: 4
150
165
  summary: client for semaphore 2
151
166
  test_files: []