sem 0.6.2 → 0.7.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
  SHA1:
3
- metadata.gz: 91c9bf14f0ac746a36cb741716bdaf85a249208f
4
- data.tar.gz: 60f37117fcf17aa6a6217fec94db649128a5c39a
3
+ metadata.gz: 5c1a10ab040f112a1f24a09ea5f73861b9071b43
4
+ data.tar.gz: ada5cba1c12170b169bee90ab53c91a450d61147
5
5
  SHA512:
6
- metadata.gz: cc4436a876f21cee6646a046c768850113916e59436a1482a13e9ae50aa8586ea6d5944c32664d3a3d2108fa74aafacb80866d303e050bf16ce5b1a5cbe0be08
7
- data.tar.gz: 4b98bc488569ed7359aa4ee82137c8ecc35d1150599495ecb1d412824231a18fb4ea594e851b4f92810a3a09a45533bc58a97e3ca6e74d1178660522222f8bbd
6
+ metadata.gz: 51a35aa698536afebe6c0308fb9ce7fef042ac215e9e69368e08d621732fce09cf53ac3ef1d7c8a322eaaac1ba4c969e3a6e589a37c27933057622b8e70353c2
7
+ data.tar.gz: 95db9b01b1c029800a19572d192322d46f9d2d9e77d0fe93ab4e22c42c279cca5749b0e1debc2f0c5ea816b7f0216072b961f5fb0f95289314e07a220a52366d
data/README.md CHANGED
@@ -60,6 +60,16 @@ the [CLI development guide](guides.md).
60
60
 
61
61
  To run the CLI locally, use the `bundle exec sem`.
62
62
 
63
+ #### Generating Docs
64
+
65
+ First, generate a JSON structure of the CLI, by running:
66
+
67
+ ``` bash
68
+ ./bin/generate_json_structure
69
+ ```
70
+
71
+ Use that structure to generate docs in the semaphore-docs-new repository.
72
+
63
73
  #### Semaphore Resource Name (SRN)
64
74
 
65
75
  SRN is a way of identifying Semaphore resources. This CLI uses SRNs as arguments
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "sem"
5
+
6
+ puts Sem::CLI.structure.to_json
data/lib/sem/cli/orgs.rb CHANGED
@@ -1,6 +1,14 @@
1
1
  class Sem::CLI::Orgs < Dracula
2
2
 
3
- desc "list", "list organizations"
3
+ desc "list", "List all organizations"
4
+ long_desc <<-DESC
5
+ Examples:
6
+
7
+ $ sem orgs:list
8
+ ID NAME
9
+ 5bc7ed43-ac8a-487e-b488-c38bc757a034 renderedtext
10
+ 99c7ed43-ac8a-487e-b488-c38bc757a034 z-fighters
11
+ DESC
4
12
  def list
5
13
  orgs = Sem::API::Org.all
6
14
 
@@ -12,6 +20,15 @@ class Sem::CLI::Orgs < Dracula
12
20
  end
13
21
 
14
22
  desc "info", "shows detailed information about an organization"
23
+ long_desc <<-DESC
24
+ Examples:
25
+
26
+ $ sem orgs:info renderedtext
27
+ ID 5bc7ed43-ac8a-487e-b488-c38bc757a034
28
+ Name renderedtext
29
+ Created 2017-08-01 13:14:40 +0200
30
+ Updated 2017-08-02 13:14:40 +0200
31
+ DESC
15
32
  def info(org_name)
16
33
  org = Sem::API::Org.find!(org_name)
17
34
 
@@ -19,6 +36,15 @@ class Sem::CLI::Orgs < Dracula
19
36
  end
20
37
 
21
38
  desc "members", "list members of an organization"
39
+ long_desc <<-DESC
40
+ Examples:
41
+
42
+ $ sem orgs:members renderedtext
43
+ NAME
44
+ darko
45
+ shiroyasha
46
+ bmarkons
47
+ DESC
22
48
  def members(org_name)
23
49
  org = Sem::API::Org.find!(org_name)
24
50
 
@@ -1,6 +1,15 @@
1
1
  class Sem::CLI::Projects < Dracula
2
2
 
3
- desc "list", "list projects"
3
+ desc "list", "list all your projects"
4
+ long_desc <<-DESC
5
+ Examples:
6
+
7
+ $ sem projects:list
8
+ NAME
9
+ ID NAME
10
+ 99c7ed43-ac8a-487e-b488-c38bc757a034 rt/cli
11
+ 99c7ed43-ac8a-487e-b488-c38bc757a034 rt/api
12
+ DESC
4
13
  def list
5
14
  projects = Sem::API::Project.all
6
15
 
@@ -12,6 +21,15 @@ class Sem::CLI::Projects < Dracula
12
21
  end
13
22
 
14
23
  desc "info", "shows detailed information about a project"
24
+ long_desc <<-DESC
25
+ Examples:
26
+
27
+ $ sem projects:info renderedtext/cli
28
+ ID 99c7ed43-ac8a-487e-b488-c38bc757a034
29
+ Name renderedtext/cli
30
+ Created 2017-08-01 13:14:40 +0200
31
+ Updated 2017-08-02 13:14:40 +0200
32
+ DESC
15
33
  def info(project_name)
16
34
  project = Sem::API::Project.find!(project_name)
17
35
 
@@ -19,7 +37,28 @@ class Sem::CLI::Projects < Dracula
19
37
  end
20
38
 
21
39
  desc "create", "create a project"
22
- option :url, :aliases => "-u", :desc => "Git url to the repository"
40
+ option :url, :aliases => "-u", :desc => "Git url to the repository", :required => true
41
+ long_desc <<-DESC
42
+ Examples:
43
+
44
+ $ sem projects:create renderedtext/cli --url git@github.com:renderedtext/cli.git
45
+ ID 99c7ed43-ac8a-487e-b488-c38bc757a034
46
+ Name renderedtext/cli
47
+ Created 2017-08-01 13:14:40 +0200
48
+ Updated 2017-08-02 13:14:40 +0200
49
+
50
+ $ sem projects:create renderedtext/api --url https://github.com/renderedtext/api
51
+ ID 99c7ed43-ac8a-487e-b488-c38bc757a034
52
+ Name renderedtext/api
53
+ Created 2017-08-01 13:14:40 +0200
54
+ Updated 2017-08-02 13:14:40 +0200
55
+
56
+ $ sem projects:create renderedtext/api-tests --url https://github.com/renderedtext/api
57
+ ID 99c7ed43-ac8a-487e-b488-c38bc757a034
58
+ Name renderedtext/api-tests
59
+ Created 2017-08-01 13:14:40 +0200
60
+ Updated 2017-08-02 13:14:40 +0200
61
+ DESC
23
62
  def create(project_name)
24
63
  url = Sem::Helpers::GitUrl.new(options[:url])
25
64
 
@@ -38,7 +77,15 @@ class Sem::CLI::Projects < Dracula
38
77
 
39
78
  class Files < Dracula
40
79
 
41
- desc "list", "list configuration files on project"
80
+ desc "list", "list configuration files for a project"
81
+ long_desc <<-DESC
82
+ Examples:
83
+
84
+ $ sem projects:files:list renderedtext/cli
85
+ ID PATH ENCRYPTED?
86
+ 77c7ed43-ac8a-487e-b488-c38bc757a034 /etc/a true
87
+ 11c7ed43-bc8a-a87e-ba88-a38ba757a034 /var/secrets.txt true
88
+ DESC
42
89
  def list(project_name)
43
90
  project = Sem::API::Project.find!(project_name)
44
91
 
@@ -50,6 +97,14 @@ class Sem::CLI::Projects < Dracula
50
97
  class EnvVars < Dracula
51
98
 
52
99
  desc "list", "list environment variables on project"
100
+ long_desc <<-DESC
101
+ Examples:
102
+
103
+ $ sem projects:env-vars:list renderedtext/cli
104
+ ID NAME ENCRYPTED? CONTENT
105
+ 9997ed43-ac8a-487e-b488-c38bc757a034 SECRET false aaa
106
+ 1117ed43-tc8a-387e-6488-838bc757a034 TOKEN true *encrypted*
107
+ DESC
53
108
  def list(project_name)
54
109
  project = Sem::API::Project.find!(project_name)
55
110
 
@@ -61,6 +116,14 @@ class Sem::CLI::Projects < Dracula
61
116
  class SharedConfigs < Dracula
62
117
 
63
118
  desc "list", "list shared configurations on a project"
119
+ long_desc <<-DESC
120
+ Examples:
121
+
122
+ $ sem projects:shared-configs:list renderedtext/cli
123
+ ID NAME CONFIG FILES ENV VARS
124
+ 99c7ed43-ac8a-487e-b488-c38bc757a034 renderedtext/tokens 1 0
125
+ 99c7ed43-ac8a-487e-b488-c38bc757a034 renderedtext/secrets 0 1
126
+ DESC
64
127
  def list(project_name)
65
128
  project = Sem::API::Project.find!(project_name)
66
129
  shared_configs = project.shared_configs
@@ -73,6 +136,12 @@ class Sem::CLI::Projects < Dracula
73
136
  end
74
137
 
75
138
  desc "add", "attach a shared configuration to a project"
139
+ long_desc <<-DESC
140
+ Examples:
141
+
142
+ $ sem projects:shared-configs:add renderedtext/cli renderedtext/secrets
143
+ Shared Configuration renderedtext/secrets added to the project.
144
+ DESC
76
145
  def add(project_name, shared_config_name)
77
146
  project = Sem::API::Project.find!(project_name)
78
147
  shared_config = Sem::API::SharedConfig.find!(shared_config_name)
@@ -86,6 +155,12 @@ class Sem::CLI::Projects < Dracula
86
155
  end
87
156
 
88
157
  desc "remove", "removes a shared configuration from the project"
158
+ long_desc <<-DESC
159
+ Examples:
160
+
161
+ $ sem projects:shared-configs:remove renderedtext/cli renderedtext/secrets
162
+ Shared Configuration renderedtext/secrets removed from the project.
163
+ DESC
89
164
  def remove(project_name, shared_config_name)
90
165
  project = Sem::API::Project.find!(project_name)
91
166
  shared_config = Sem::API::SharedConfig.find!(shared_config_name)
@@ -1,6 +1,14 @@
1
1
  class Sem::CLI::SharedConfigs < Dracula
2
2
 
3
3
  desc "list", "list shared cofigurations"
4
+ long_desc <<-DESC
5
+ Examples:
6
+
7
+ $ sem shared-configs:list
8
+ ID NAME CONFIG FILES ENV VARS
9
+ 99c7ed43-ac8a-487e-b488-c38bc757a034 renderedtext/tokens 1 0
10
+ 1133ed43-ac8a-487e-b488-c38bc757a044 renderedtext/secrets 0 1
11
+ DESC
4
12
  def list
5
13
  shared_configs = Sem::API::SharedConfig.all
6
14
 
@@ -12,6 +20,17 @@ class Sem::CLI::SharedConfigs < Dracula
12
20
  end
13
21
 
14
22
  desc "info", "show information about a shared configuration"
23
+ long_desc <<-DESC
24
+ Examples:
25
+
26
+ $ sem shared-configs:info renderedtext/secrets
27
+ ID 99c7ed43-ac8a-487e-b488-c38bc757a034
28
+ Name renderedtext/secrets
29
+ Config Files 1
30
+ Environment Variables 0
31
+ Created 2017-08-01 13:14:40 +0200
32
+ Updated 2017-08-02 13:14:40 +0200
33
+ DESC
15
34
  def info(shared_config_name)
16
35
  shared_config = Sem::API::SharedConfig.find!(shared_config_name)
17
36
 
@@ -19,6 +38,17 @@ class Sem::CLI::SharedConfigs < Dracula
19
38
  end
20
39
 
21
40
  desc "create", "create a new shared configuration"
41
+ long_desc <<-DESC
42
+ Examples:
43
+
44
+ $ sem shared-configs:create renderedtext/secrets
45
+ ID 99c7ed43-ac8a-487e-b488-c38bc757a034
46
+ Name renderedtext/secrets
47
+ Config Files 1
48
+ Environment Variables 0
49
+ Created 2017-08-01 13:14:40 +0200
50
+ Updated 2017-08-02 13:14:40 +0200
51
+ DESC
22
52
  def create(shared_config_name)
23
53
  shared_config = Sem::API::SharedConfig.create!(shared_config_name)
24
54
 
@@ -26,6 +56,17 @@ class Sem::CLI::SharedConfigs < Dracula
26
56
  end
27
57
 
28
58
  desc "rename", "rename a shared configuration"
59
+ long_desc <<-DESC
60
+ Examples:
61
+
62
+ $ sem shared-configs:create renderedtext/secrets renderedtext/psst
63
+ ID 99c7ed43-ac8a-487e-b488-c38bc757a034
64
+ Name renderedtext/psst
65
+ Config Files 1
66
+ Environment Variables 0
67
+ Created 2017-08-01 13:14:40 +0200
68
+ Updated 2017-08-02 13:14:40 +0200
69
+ DESC
29
70
  def rename(old_shared_config_name, new_shared_config_name)
30
71
  old_org_name, _old_name = Sem::SRN.parse_shared_config(old_shared_config_name)
31
72
  new_org_name, new_name = Sem::SRN.parse_shared_config(new_shared_config_name)
@@ -39,16 +80,30 @@ class Sem::CLI::SharedConfigs < Dracula
39
80
  end
40
81
 
41
82
  desc "delete", "removes a shared configuration from your organization"
83
+ long_desc <<-DESC
84
+ Examples:
85
+
86
+ $ sem shared-configs:delete renderedtext/secrets
87
+ Deleted shared configuration renderedtext/secrets.
88
+ DESC
42
89
  def delete(shared_config_name)
43
90
  shared_config = Sem::API::SharedConfig.find!(shared_config_name)
44
91
  shared_config.delete!
45
92
 
46
- puts "Deleted shared configuration #{shared_config_name}"
93
+ puts "Deleted shared configuration #{shared_config_name}."
47
94
  end
48
95
 
49
96
  class Files < Dracula
50
97
 
51
- desc "list", "list files in the shared configuration"
98
+ desc "list", "list files in a shared configuration"
99
+ long_desc <<-DESC
100
+ Examples:
101
+
102
+ $ sem shared-configs:files:list renderedtext/secrets
103
+ ID PATH ENCRYPTED?
104
+ 77c7ed43-ac8a-487e-b488-c38bc757a034 /home/runner/a true
105
+ 11c7ed43-bc8a-a87e-ba88-a38ba757a034 /home/runner/secrets.txt true
106
+ DESC
52
107
  def list(shared_config_name)
53
108
  shared_config = Sem::API::SharedConfig.find!(shared_config_name)
54
109
  files = shared_config.files
@@ -61,9 +116,14 @@ class Sem::CLI::SharedConfigs < Dracula
61
116
  end
62
117
 
63
118
  desc "add", "add a file to the shared configuration"
64
- option "path-on-semaphore", :aliases => "p", :desc => "Path of the file in builds", :required => true
119
+ option "path-on-semaphore", :aliases => "p", :desc => "Path of the file in builds relative to /home/runner directory", :required => true
65
120
  option "local-path", :aliases => "l", :desc => "Location of the file on the local machine", :required => true
66
- option "encrypted", :desc => "Encrypt the file", :default => true, :type => :boolean
121
+ long_desc <<-DESC
122
+ Examples:
123
+
124
+ $ sem shared-configs:files:add renderedtext/secrets --local-path /tmp/secrets.json --path-on-semaphore secrets.json
125
+ Added /home/runner/secrets.txt to renderedtext/secrets.
126
+ DESC
67
127
  def add(shared_config_name)
68
128
  shared_config = Sem::API::SharedConfig.find!(shared_config_name)
69
129
 
@@ -74,19 +134,25 @@ class Sem::CLI::SharedConfigs < Dracula
74
134
  path = options["path-on-semaphore"]
75
135
  content = File.read(local_path)
76
136
 
77
- shared_config.add_config_file(:path => path, :content => content, :encrypted => options["encrypted"])
137
+ shared_config.add_config_file(:path => path, :content => content, :encrypted => true)
78
138
 
79
- puts "Added #{path} to #{shared_config_name}"
139
+ puts "Added /home/runner/#{path} to #{shared_config_name}."
80
140
  end
81
141
 
82
142
  desc "remove", "remove a file from the shared configuration"
83
- option :path, :aliases => "p", :desc => "Path of the file in builds", :required => true
143
+ option :path, :aliases => "p", :desc => "Path of the file in builds relative to /home/runner directory", :required => true
144
+ long_desc <<-DESC
145
+ Examples:
146
+
147
+ $ sem shared-configs:files:remove renderedtext/secrets --path secrets.json
148
+ Removed /home/runner/secrets.txt from renderedtext/secrets.
149
+ DESC
84
150
  def remove(shared_config_name)
85
151
  shared_config = Sem::API::SharedConfig.find!(shared_config_name)
86
152
 
87
153
  shared_config.remove_config_file(options[:path])
88
154
 
89
- puts "Removed #{options[:path]} from #{shared_config_name}"
155
+ puts "Removed /home/runner/#{options[:path]} from #{shared_config_name}."
90
156
  end
91
157
 
92
158
  end
@@ -94,6 +160,14 @@ class Sem::CLI::SharedConfigs < Dracula
94
160
  class EnvVars < Dracula
95
161
 
96
162
  desc "list", "list environment variables in the shared configuration"
163
+ long_desc <<-DESC
164
+ Examples:
165
+
166
+ $ sem shared-configs:files:list renderedtext/secrets
167
+ ID NAME ENCRYPTED? CONTENT
168
+ 9997ed43-ac8a-487e-b488-c38bc757a034 SECRET true aaa
169
+ 1117ed43-tc8a-387e-6488-838bc757a034 TOKEN true *encrypted*
170
+ DESC
97
171
  def list(shared_config_name)
98
172
  shared_config = Sem::API::SharedConfig.find!(shared_config_name)
99
173
  env_vars = shared_config.env_vars
@@ -108,17 +182,28 @@ class Sem::CLI::SharedConfigs < Dracula
108
182
  desc "add", "add an environment variable to the shared configuration"
109
183
  option :name, :aliases => "n", :desc => "Name of the variable", :required => true
110
184
  option :content, :aliases => "c", :desc => "Content of the variable", :required => true
111
- option :encrypted, :desc => "Encrypt the environment variable", :default => true, :type => :boolean
185
+ long_desc <<-DESC
186
+ Examples:
187
+
188
+ $ sem shared-configs:env-vars:add renderedtext/secrets --name TOKEN --content "s3cr3t"
189
+ Added TOKEN to renderedtext/secrets.
190
+ DESC
112
191
  def add(shared_config_name)
113
192
  shared_config = Sem::API::SharedConfig.find!(shared_config_name)
114
193
 
115
- shared_config.add_env_var(:name => options[:name], :content => options[:content], :encrypted => options[:encrypted])
194
+ shared_config.add_env_var(:name => options[:name], :content => options[:content], :encrypted => true)
116
195
 
117
- puts "Added #{options[:name]} to #{shared_config_name}"
196
+ puts "Added #{options[:name]} to #{shared_config_name}."
118
197
  end
119
198
 
120
199
  desc "remove", "remove an environment variable from the shared configuration"
121
200
  option :name, :aliases => "n", :desc => "Name of the variable", :required => true
201
+ long_desc <<-DESC
202
+ Examples:
203
+
204
+ $ sem shared-configs:env-vars:remove renderedtext/secrets --name TOKEN
205
+ Removed TOKEN from renderedtext/secrets.
206
+ DESC
122
207
  def remove(shared_config_name)
123
208
  shared_config = Sem::API::SharedConfig.find!(shared_config_name)
124
209
  name = options[:name]
data/lib/sem/cli/teams.rb CHANGED
@@ -1,8 +1,16 @@
1
- class Sem::CLI::Teams < Dracula
1
+ class Sem::CLI::Teams < Dracula # rubocop:disable Metrics/ClassLength
2
2
 
3
3
  ALLOWED_PERMISSIONS = ["admin", "edit", "read"].freeze
4
4
 
5
- desc "list", "list teams"
5
+ desc "list", "list all your teams"
6
+ long_desc <<-DESC
7
+ Examples:
8
+
9
+ $ sem teams:list
10
+ ID NAME PERMISSION MEMBERS
11
+ 1bc7ed43-ac8a-487e-b488-c38bc757a034 renderedtext/devs write 2 members
12
+ 1bc7ed43-ac8a-487e-b488-c38bc757a034 renderedtext/admins write 0 members
13
+ DESC
6
14
  def list
7
15
  teams = Sem::API::Team.all
8
16
 
@@ -14,6 +22,17 @@ class Sem::CLI::Teams < Dracula
14
22
  end
15
23
 
16
24
  desc "info", "show information about a team"
25
+ long_desc <<-DESC
26
+ Examples:
27
+
28
+ $ sem teams:info renderedtext/admins
29
+ ID 1bc7ed43-ac8a-487e-b488-c38bc757a034
30
+ Name renderedtext/admins
31
+ Permission edit
32
+ Members 2 members
33
+ Created 2017-08-01 13:14:40 +0200
34
+ Updated 2017-08-02 13:14:40 +0200
35
+ DESC
17
36
  def info(team_name)
18
37
  team = Sem::API::Team.find!(team_name)
19
38
 
@@ -24,6 +43,33 @@ class Sem::CLI::Teams < Dracula
24
43
  option :permission, :default => "read",
25
44
  :aliases => "p",
26
45
  :desc => "Permission level of the team in the organization"
46
+ long_desc <<-DESC
47
+ Examples:
48
+
49
+ $ sem teams:create renderedtext/interns
50
+ ID 1bc7ed43-ac8a-487e-b488-c38bc757a034
51
+ Name renderedtext/interns
52
+ Permission read
53
+ Members 0 members
54
+ Created 2017-08-01 13:14:40 +0200
55
+ Updated 2017-08-02 13:14:40 +0200
56
+
57
+ $ sem teams:create renderedtext/devs --permission edit
58
+ ID 1bc7ed43-ac8a-487e-b488-c38bc757a034
59
+ Name renderedtext/devs
60
+ Permission edit
61
+ Members 0 members
62
+ Created 2017-08-01 13:14:40 +0200
63
+ Updated 2017-08-02 13:14:40 +0200
64
+
65
+ $ sem teams:create renderedtext/admins --permission admin
66
+ ID 1bc7ed43-ac8a-487e-b488-c38bc757a034
67
+ Name renderedtext/admins
68
+ Permission admin
69
+ Members 0 members
70
+ Created 2017-08-01 13:14:40 +0200
71
+ Updated 2017-08-02 13:14:40 +0200
72
+ DESC
27
73
  def create(team_name)
28
74
  permission = options[:permission]
29
75
 
@@ -37,6 +83,17 @@ class Sem::CLI::Teams < Dracula
37
83
  end
38
84
 
39
85
  desc "rename", "change the name of the team"
86
+ long_desc <<-DESC
87
+ Examples:
88
+
89
+ $ sem teams:create renderedtext/interns renderedtext/juniors
90
+ ID 1bc7ed43-ac8a-487e-b488-c38bc757a034
91
+ Name renderedtext/juniors
92
+ Permission read
93
+ Members 0 members
94
+ Created 2017-08-01 13:14:40 +0200
95
+ Updated 2017-08-02 13:14:40 +0200
96
+ DESC
40
97
  def rename(old_team_name, new_team_name)
41
98
  old_org_name, _old_name = Sem::SRN.parse_team(old_team_name)
42
99
  new_org_name, new_name = Sem::SRN.parse_team(new_team_name)
@@ -54,6 +111,17 @@ class Sem::CLI::Teams < Dracula
54
111
  :required => true,
55
112
  :aliases => "p",
56
113
  :desc => "Permission level of the team in the organization"
114
+ long_desc <<-DESC
115
+ Examples:
116
+
117
+ $ sem teams:set-permission renderedtext/interns --permission edit
118
+ ID 1bc7ed43-ac8a-487e-b488-c38bc757a034
119
+ Name renderedtext/interns
120
+ Permission edit
121
+ Members 0 members
122
+ Created 2017-08-01 13:14:40 +0200
123
+ Updated 2017-08-02 13:14:40 +0200
124
+ DESC
57
125
  def set_permission(team_name) # rubocop:disable Style/AccessorMethodName
58
126
  permission = options[:permission]
59
127
 
@@ -68,6 +136,12 @@ class Sem::CLI::Teams < Dracula
68
136
  end
69
137
 
70
138
  desc "delete", "removes a team from your organization"
139
+ long_desc <<-DESC
140
+ Examples:
141
+
142
+ $ sem teams:delete renderedtext/interns
143
+ Team renderedtext/interns deleted.
144
+ DESC
71
145
  def delete(team_name)
72
146
  team = Sem::API::Team.find!(team_name)
73
147
  team.delete!
@@ -76,7 +150,16 @@ class Sem::CLI::Teams < Dracula
76
150
  end
77
151
 
78
152
  class Members < Dracula
79
- desc "list", "lists members of the team"
153
+ desc "list", "list members of the team"
154
+ long_desc <<-DESC
155
+ Examples:
156
+
157
+ $ sem teams:members:list renderedtext/interns
158
+ NAME
159
+ shiroyasha
160
+ darko
161
+ ervinb
162
+ DESC
80
163
  def list(team_name)
81
164
  team = Sem::API::Team.find!(team_name)
82
165
  users = team.users
@@ -89,6 +172,12 @@ class Sem::CLI::Teams < Dracula
89
172
  end
90
173
 
91
174
  desc "add", "add a user to the team"
175
+ long_desc <<-DESC
176
+ Examples:
177
+
178
+ $ sem teams:members:add renderedtext/interns shiroyasha
179
+ User shiroyasha added to the team.
180
+ DESC
92
181
  def add(team_name, username)
93
182
  team = Sem::API::Team.find!(team_name)
94
183
  team.add_user(username)
@@ -96,7 +185,13 @@ class Sem::CLI::Teams < Dracula
96
185
  puts "User #{username} added to the team."
97
186
  end
98
187
 
99
- desc "remove", "removes a user from the team"
188
+ desc "remove", "remove a user from the team"
189
+ long_desc <<-DESC
190
+ Examples:
191
+
192
+ $ sem teams:members:remove renderedtext/interns shiroyasha
193
+ User shiroyasha removed from the team.
194
+ DESC
100
195
  def remove(team_name, username)
101
196
  team = Sem::API::Team.find!(team_name)
102
197
  team.remove_user(username)
@@ -106,7 +201,16 @@ class Sem::CLI::Teams < Dracula
106
201
  end
107
202
 
108
203
  class Projects < Dracula
109
- desc "list", "lists projects in a team"
204
+ desc "list", "list projects in a team"
205
+ long_desc <<-DESC
206
+ Examples:
207
+
208
+ $ sem team:projects:list renderedtext/devs
209
+ NAME
210
+ ID NAME
211
+ 99c7ed43-ac8a-487e-b488-c38bc757a034 renderedtext/cli
212
+ 12c7ed43-4444-487e-b488-c38bc757a034 renderedtext/api
213
+ DESC
110
214
  def list(team_name)
111
215
  team = Sem::API::Team.find!(team_name)
112
216
  projects = team.projects
@@ -119,6 +223,12 @@ class Sem::CLI::Teams < Dracula
119
223
  end
120
224
 
121
225
  desc "add", "add a project to a team"
226
+ long_desc <<-DESC
227
+ Examples:
228
+
229
+ $ sem team:projects:add renderedtext/devs renderedtext/cli
230
+ Project renderedtext/cli added to the team.
231
+ DESC
122
232
  def add(team_name, project_name)
123
233
  team = Sem::API::Team.find!(team_name)
124
234
  project = Sem::API::Project.find!(project_name)
@@ -128,7 +238,13 @@ class Sem::CLI::Teams < Dracula
128
238
  puts "Project #{project_name} added to the team."
129
239
  end
130
240
 
131
- desc "remove", "removes a project from the team"
241
+ desc "remove", "remove a project from the team"
242
+ long_desc <<-DESC
243
+ Examples:
244
+
245
+ $ sem team:projects:remove renderedtext/devs renderedtext/cli
246
+ Project renderedtext/cli removed from the team.
247
+ DESC
132
248
  def remove(team_name, project_name)
133
249
  team = Sem::API::Team.find!(team_name)
134
250
  project = Sem::API::Project.find!(project_name)
@@ -141,6 +257,14 @@ class Sem::CLI::Teams < Dracula
141
257
 
142
258
  class SharedConfigs < Dracula
143
259
  desc "list", "list shared configurations in a team"
260
+ long_desc <<-DESC
261
+ Examples:
262
+
263
+ $ sem team:shared-configs:list renderedtext/devs
264
+ ID NAME CONFIG FILES ENV VARS
265
+ 99c7ed43-ac8a-487e-b488-c38bc757a034 renderedtext/tokens 1 0
266
+ 1133ed43-ac8a-487e-b488-c38bc757a044 renderedtext/secrets 0 1
267
+ DESC
144
268
  def list(team_name)
145
269
  team = Sem::API::Team.find!(team_name)
146
270
  configs = team.shared_configs
@@ -153,6 +277,12 @@ class Sem::CLI::Teams < Dracula
153
277
  end
154
278
 
155
279
  desc "add", "add a shared configuration to a team"
280
+ long_desc <<-DESC
281
+ Examples:
282
+
283
+ $ sem team:shared-configs:add renderedtext/devs renderedtext/secrets
284
+ Shared Configuration renderedtext/secrets added to the team.
285
+ DESC
156
286
  def add(team_name, shared_config_name)
157
287
  team = Sem::API::Team.find!(team_name)
158
288
  shared_config = Sem::API::SharedConfig.find!(shared_config_name)
@@ -163,6 +293,12 @@ class Sem::CLI::Teams < Dracula
163
293
  end
164
294
 
165
295
  desc "remove", "removes a shared Configuration from the team"
296
+ long_desc <<-DESC
297
+ Examples:
298
+
299
+ $ sem team:shared-configs:remove renderedtext/devs renderedtext/secrets
300
+ Shared Configuration renderedtext/secrets removed from the team.
301
+ DESC
166
302
  def remove(team_name, shared_config_name)
167
303
  team = Sem::API::Team.find!(team_name)
168
304
  shared_config = Sem::API::SharedConfig.find!(shared_config_name)
data/lib/sem/cli.rb CHANGED
@@ -12,10 +12,15 @@ module Sem
12
12
  puts Sem::VERSION
13
13
  end
14
14
 
15
- desc "login", "Log in to semaphore from the command line"
15
+ desc "login", "Log in to Semaphore from the command line"
16
16
  option "auth-token", :required => true
17
17
  long_desc <<-DESC
18
- You can find your auth-token on the bottom of the users settings page https://semaphoreci.com/users/edit.
18
+ Examples:
19
+
20
+ $ sem login --auth-token abcd12345
21
+ Your credentials have been saved to #{Sem::Configuration::CREDENTIALS_PATH}."
22
+
23
+ You can find your auth-token on the bottom of the users settings page <https://semaphoreci.com/users/edit>.
19
24
  DESC
20
25
  def login
21
26
  auth_token = options["auth-token"]
@@ -30,10 +35,16 @@ DESC
30
35
  end
31
36
 
32
37
  desc "logout", "Log out from semaphore"
38
+ long_desc <<-DESC
39
+ Examples:
40
+
41
+ $ sem logout
42
+ Logged out.
43
+ DESC
33
44
  def logout
34
45
  Sem::Configuration.delete_auth_token
35
46
 
36
- puts "Loged out."
47
+ puts "Logged out."
37
48
  end
38
49
 
39
50
  register "orgs", "manage organizations", Sem::CLI::Orgs
data/lib/sem/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sem
2
- VERSION = "0.6.2".freeze
2
+ VERSION = "0.7.0".freeze
3
3
  end
@@ -4,7 +4,7 @@ class Sem::Views::Files < Sem::Views::Base
4
4
  header = ["ID", "PATH", "ENCRYPTED?"]
5
5
 
6
6
  body = files.map do |file|
7
- [file.id, file.path, file.encrypted?]
7
+ [file.id, "/home/runner/#{file.path}", file.encrypted?]
8
8
  end
9
9
 
10
10
  print_table([header, *body])
data/sem.gemspec CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.require_paths = ["lib"]
23
23
 
24
24
  spec.add_dependency "semaphore_client", "2.8.1"
25
- spec.add_dependency "dracula", "~> 0.4.0"
25
+ spec.add_dependency "dracula", "~> 0.6.0"
26
26
  spec.add_dependency "pmap", "~> 1.1.1"
27
27
 
28
28
  spec.add_development_dependency "bundler", "~> 1.14"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sem
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Šarčević
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-16 00:00:00.000000000 Z
11
+ date: 2017-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: semaphore_client
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: 0.4.0
33
+ version: 0.6.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: 0.4.0
40
+ version: 0.6.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pmap
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -193,6 +193,7 @@ files:
193
193
  - README.md
194
194
  - Rakefile
195
195
  - bin/console
196
+ - bin/generate_json_structure
196
197
  - bin/setup
197
198
  - exe/sem
198
199
  - guides.md