semaph 0.5.0 → 0.6.0

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 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: []