sem 0.7.0 → 0.8.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
  SHA1:
3
- metadata.gz: 5c1a10ab040f112a1f24a09ea5f73861b9071b43
4
- data.tar.gz: ada5cba1c12170b169bee90ab53c91a450d61147
3
+ metadata.gz: fcf97334c5552314453331d55eff0abdf5dcb0a7
4
+ data.tar.gz: c53b9c7001b91e8bd888e77d88759b5627afde8b
5
5
  SHA512:
6
- metadata.gz: 51a35aa698536afebe6c0308fb9ce7fef042ac215e9e69368e08d621732fce09cf53ac3ef1d7c8a322eaaac1ba4c969e3a6e589a37c27933057622b8e70353c2
7
- data.tar.gz: 95db9b01b1c029800a19572d192322d46f9d2d9e77d0fe93ab4e22c42c279cca5749b0e1debc2f0c5ea816b7f0216072b961f5fb0f95289314e07a220a52366d
6
+ metadata.gz: c706b748e6920848e71318d3ae91f009eec005d6fb9fefa24a5a9621908ad7d6e798a29dda0417c5461652f7ff56234ca213dc6622e24cd4b01d3d963dc57c8a
7
+ data.tar.gz: 9a705290418c713cee873bf311c932ade36afb76af077cda2f0c36df666cf111359162e304adb720b683a7a326ce2821b5901bd52ef5f73a6ddbc462da7f1bb9
data/lib/sem/api/org.rb CHANGED
@@ -23,8 +23,8 @@ class Sem::API::Org < SimpleDelegator
23
23
  Sem::API::Base.client.projects.list_for_org!(username).map { |project| Sem::API::Project.new(username, project) }
24
24
  end
25
25
 
26
- def shared_configs
27
- Sem::API::Base.client.shared_configs.list_for_org!(username).map { |config| Sem::API::SharedConfig.new(username, config) }
26
+ def secrets
27
+ Sem::API::Base.client.secrets.list_for_org!(username).map { |secret| Sem::API::Secret.new(username, secret) }
28
28
  end
29
29
 
30
30
  end
@@ -42,20 +42,20 @@ class Sem::API::Project < SimpleDelegator
42
42
  "#{@org_name}/#{name}"
43
43
  end
44
44
 
45
- def shared_configs
46
- Sem::API::Base.client.shared_configs.list_for_project!(id).map { |config| Sem::API::SharedConfig.new(org_name, config) }
45
+ def secrets
46
+ Sem::API::Base.client.secrets.list_for_project!(id).map { |secret| Sem::API::Secret.new(org_name, secret) }
47
47
  end
48
48
 
49
- def add_shared_config(shared_config)
50
- Sem::API::Base.client.shared_configs.attach_to_project!(shared_config.id, id)
49
+ def add_secret(secret)
50
+ Sem::API::Base.client.secrets.attach_to_project!(secret.id, id)
51
51
  rescue SemaphoreClient::Exceptions::NotFound
52
- raise Sem::Errors::ResourceNotFound.new("Shared Configuration", [shared_config.full_name])
52
+ raise Sem::Errors::ResourceNotFound.new("Secret", [secret.full_name])
53
53
  end
54
54
 
55
- def remove_shared_config(shared_config)
56
- Sem::API::Base.client.shared_configs.detach_from_project!(shared_config.id, id)
55
+ def remove_secret(secret)
56
+ Sem::API::Base.client.secrets.detach_from_project!(secret.id, id)
57
57
  rescue SemaphoreClient::Exceptions::NotFound
58
- raise Sem::Errors::ResourceNotFound.new("Shared Configuration", [shared_config.full_name])
58
+ raise Sem::Errors::ResourceNotFound.new("Secret", [secret.full_name])
59
59
  end
60
60
 
61
61
  def config_files
@@ -0,0 +1,109 @@
1
+ class Sem::API::Secret < SimpleDelegator
2
+ extend Sem::API::Base
3
+
4
+ def self.all
5
+ Sem::API::Org.all.pmap(&:secrets).flatten
6
+ end
7
+
8
+ def self.find!(secrets_srn)
9
+ org_name, secret_name = Sem::SRN.parse_secret(secrets_srn)
10
+
11
+ secrets = client.secrets.list_for_org!(org_name)
12
+ secret = secrets.find { |c| c.name == secret_name }
13
+
14
+ if secret.nil?
15
+ raise Sem::Errors::ResourceNotFound.new("Secret", [org_name, secret_name])
16
+ end
17
+
18
+ new(org_name, secret)
19
+ rescue SemaphoreClient::Exceptions::NotFound
20
+ raise Sem::Errors::ResourceNotFound.new("Secret", [org_name, secret_name])
21
+ end
22
+
23
+ def self.create!(secret_srn, args = {})
24
+ org_name, secret_name = Sem::SRN.parse_secret(secret_srn)
25
+
26
+ secret = client.secrets.create_for_org!(org_name, args.merge(:name => secret_name))
27
+
28
+ if secret.nil?
29
+ raise Sem::Errors::ResourceNotCreated.new("Secret", [org_name, secret_name])
30
+ end
31
+
32
+ new(org_name, secret)
33
+ end
34
+
35
+ attr_reader :org_name
36
+
37
+ def initialize(org_name, secret)
38
+ @org_name = org_name
39
+
40
+ super(secret)
41
+ end
42
+
43
+ def full_name
44
+ "#{org_name}/#{name}"
45
+ end
46
+
47
+ def add_config_file(args)
48
+ file = Sem::API::Base.client.config_files.create_for_secret!(id, args)
49
+
50
+ if file.nil?
51
+ raise Sem::Errors::ResourceNotCreated.new("Configuration File", [org_name, path])
52
+ end
53
+
54
+ Sem::API::File.new(file)
55
+ end
56
+
57
+ def remove_config_file(path)
58
+ file = files.find { |f| f.path == path }
59
+
60
+ if file.nil?
61
+ raise Sem::Errors::ResourceNotCreated.new("Configuration File", [org_name, path])
62
+ end
63
+
64
+ Sem::API::Base.client.config_files.delete!(file.id)
65
+ end
66
+
67
+ def add_env_var(args)
68
+ env_var = Sem::API::Base.client.env_vars.create_for_secret!(id, args)
69
+
70
+ if env_var.nil?
71
+ raise Sem::Errors::ResourceNotCreated.new("Environment Variable", [org_name, args[:name]])
72
+ end
73
+
74
+ Sem::API::EnvVar.new(env_var)
75
+ end
76
+
77
+ def remove_env_var(name)
78
+ env_var = env_vars.find { |var| var.name == name }
79
+
80
+ if env_var.nil?
81
+ raise Sem::Errors::ResourceNotFound.new("Environment Variable", [org_name, name])
82
+ end
83
+
84
+ Sem::API::Base.client.env_vars.delete!(env_var.id)
85
+ end
86
+
87
+ def update!(args)
88
+ secret = Sem::API::Base.client.secrets.update!(id, args)
89
+
90
+ if secret.nil?
91
+ raise Sem::Errors::ResourceNotUpdated.new("Secret", [org_name, name])
92
+ end
93
+
94
+ self.class.new(org_name, secret)
95
+ end
96
+
97
+ def delete!
98
+ Sem::API::Base.client.secrets.delete!(id)
99
+ end
100
+
101
+ def files
102
+ Sem::API::Base.client.config_files.list_for_secret!(id).map { |file| Sem::API::File.new(file) }
103
+ end
104
+
105
+ def env_vars
106
+ Sem::API::Base.client.env_vars.list_for_secret!(id).map { |env_var| Sem::API::EnvVar.new(env_var) }
107
+ end
108
+
109
+ end
data/lib/sem/api/team.rb CHANGED
@@ -71,16 +71,16 @@ class Sem::API::Team < SimpleDelegator
71
71
  raise Sem::Errors::ResourceNotFound.new("Project", [project.full_name])
72
72
  end
73
73
 
74
- def add_shared_config(config)
75
- Sem::API::Base.client.shared_configs.attach_to_team!(config.id, id)
74
+ def add_secret(secret)
75
+ Sem::API::Base.client.secrets.attach_to_team!(secret.id, id)
76
76
  rescue SemaphoreClient::Exceptions::NotFound
77
- raise Sem::Errors::ResourceNotFound.new("Shared Configuration", [config.full_name])
77
+ raise Sem::Errors::ResourceNotFound.new("Secret", [secret.full_name])
78
78
  end
79
79
 
80
- def remove_shared_config(config)
81
- Sem::API::Base.client.shared_configs.detach_from_team!(config.id, id)
80
+ def remove_secret(secret)
81
+ Sem::API::Base.client.secrets.detach_from_team!(secret.id, id)
82
82
  rescue SemaphoreClient::Exceptions::NotFound
83
- raise Sem::Errors::ResourceNotFound.new("Shared Configuration", [config.full_name])
83
+ raise Sem::Errors::ResourceNotFound.new("Secret", [secret.full_name])
84
84
  end
85
85
 
86
86
  def delete!
@@ -95,8 +95,8 @@ class Sem::API::Team < SimpleDelegator
95
95
  Sem::API::Base.client.projects.list_for_team!(id).map { |project| Sem::API::Project.new(org_name, project) }
96
96
  end
97
97
 
98
- def shared_configs
99
- Sem::API::Base.client.shared_configs.list_for_team!(id).map { |config| Sem::API::SharedConfig.new(org_name, config) }
98
+ def secrets
99
+ Sem::API::Base.client.secrets.list_for_team!(id).map { |secret| Sem::API::Secret.new(org_name, secret) }
100
100
  end
101
101
 
102
102
  end
data/lib/sem/api.rb CHANGED
@@ -6,7 +6,7 @@ module Sem
6
6
  require_relative "api/project"
7
7
  require_relative "api/env_var"
8
8
  require_relative "api/file"
9
- require_relative "api/shared_config"
9
+ require_relative "api/secret"
10
10
  require_relative "api/team"
11
11
  end
12
12
  end
@@ -113,66 +113,63 @@ DESC
113
113
 
114
114
  end
115
115
 
116
- class SharedConfigs < Dracula
116
+ class Secrets < Dracula
117
117
 
118
- desc "list", "list shared configurations on a project"
118
+ desc "list", "list secrets on a project"
119
119
  long_desc <<-DESC
120
120
  Examples:
121
121
 
122
- $ sem projects:shared-configs:list renderedtext/cli
122
+ $ sem projects:secrets:list renderedtext/cli
123
123
  ID NAME CONFIG FILES ENV VARS
124
124
  99c7ed43-ac8a-487e-b488-c38bc757a034 renderedtext/tokens 1 0
125
125
  99c7ed43-ac8a-487e-b488-c38bc757a034 renderedtext/secrets 0 1
126
126
  DESC
127
127
  def list(project_name)
128
128
  project = Sem::API::Project.find!(project_name)
129
- shared_configs = project.shared_configs
129
+ secrets = project.secrets
130
130
 
131
- if !shared_configs.empty?
132
- Sem::Views::SharedConfigs.list(shared_configs)
131
+ if !secrets.empty?
132
+ Sem::Views::Secrets.list(secrets)
133
133
  else
134
- Sem::Views::Projects.attach_first_shared_config(project)
134
+ Sem::Views::Projects.attach_first_secret(project)
135
135
  end
136
136
  end
137
137
 
138
- desc "add", "attach a shared configuration to a project"
138
+ desc "add", "attach a secret to a project"
139
139
  long_desc <<-DESC
140
140
  Examples:
141
141
 
142
- $ sem projects:shared-configs:add renderedtext/cli renderedtext/secrets
143
- Shared Configuration renderedtext/secrets added to the project.
142
+ $ sem projects:secrets:add renderedtext/cli renderedtext/secrets
143
+ Secret renderedtext/secrets added to the project.
144
144
  DESC
145
- def add(project_name, shared_config_name)
145
+ def add(project_name, secret_name)
146
146
  project = Sem::API::Project.find!(project_name)
147
- shared_config = Sem::API::SharedConfig.find!(shared_config_name)
147
+ secret = Sem::API::Secret.find!(secret_name)
148
148
 
149
- project.add_shared_config(shared_config)
149
+ project.add_secret(secret)
150
150
 
151
- shared_config.env_vars.each { |var| project.add_env_var(var) }
152
- shared_config.files.each { |file| project.add_config_file(file) }
153
-
154
- puts "Shared Configuration #{shared_config_name} added to the project."
151
+ puts "Secret #{secret_name} added to the project."
155
152
  end
156
153
 
157
- desc "remove", "removes a shared configuration from the project"
154
+ desc "remove", "removes a secret from the project"
158
155
  long_desc <<-DESC
159
156
  Examples:
160
157
 
161
- $ sem projects:shared-configs:remove renderedtext/cli renderedtext/secrets
162
- Shared Configuration renderedtext/secrets removed from the project.
158
+ $ sem projects:secrets:remove renderedtext/cli renderedtext/secrets
159
+ Secret renderedtext/secrets removed from the project.
163
160
  DESC
164
- def remove(project_name, shared_config_name)
161
+ def remove(project_name, secret_name)
165
162
  project = Sem::API::Project.find!(project_name)
166
- shared_config = Sem::API::SharedConfig.find!(shared_config_name)
163
+ secret = Sem::API::Secret.find!(secret_name)
167
164
 
168
- project.remove_shared_config(shared_config)
165
+ project.remove_secret(secret)
169
166
 
170
- puts "Shared Configuration #{shared_config_name} removed from the project."
167
+ puts "Secret #{secret_name} removed from the project."
171
168
  end
172
169
 
173
170
  end
174
171
 
175
- register "shared-configs", "manage shared configurations", SharedConfigs
172
+ register "secrets", "manage secrets", Secrets
176
173
  register "files", "manage projects' config files", Files
177
174
  register "env-vars", "manage projects' environment variables", EnvVars
178
175
  end
@@ -0,0 +1,220 @@
1
+ class Sem::CLI::Secrets < Dracula
2
+
3
+ desc "list", "list secrets"
4
+ long_desc <<-DESC
5
+ Examples:
6
+
7
+ $ sem secrets: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
12
+ def list
13
+ secrets = Sem::API::Secret.all
14
+
15
+ if !secrets.empty?
16
+ Sem::Views::Secrets.list(secrets)
17
+ else
18
+ Sem::Views::Secrets.setup_first_secrets
19
+ end
20
+ end
21
+
22
+ desc "info", "show information about secrets"
23
+ long_desc <<-DESC
24
+ Examples:
25
+
26
+ $ sem secrets:info renderedtext/tokens
27
+ ID 99c7ed43-ac8a-487e-b488-c38bc757a034
28
+ Name renderedtext/tokens
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
34
+ def info(secret_name)
35
+ secret = Sem::API::Secret.find!(secret_name)
36
+
37
+ Sem::Views::Secrets.info(secret)
38
+ end
39
+
40
+ desc "create", "create new secrets"
41
+ long_desc <<-DESC
42
+ Examples:
43
+
44
+ $ sem secrets:create renderedtext/tokens
45
+ ID 99c7ed43-ac8a-487e-b488-c38bc757a034
46
+ Name renderedtext/tokens
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
52
+ def create(secret_name)
53
+ secret = Sem::API::Secret.create!(secret_name)
54
+
55
+ Sem::Views::Secrets.info(secret)
56
+ end
57
+
58
+ desc "rename", "rename secrets"
59
+ long_desc <<-DESC
60
+ Examples:
61
+
62
+ $ sem secrets:create renderedtext/tokens 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
70
+ def rename(old_secrets_name, new_secrets_name)
71
+ old_org_name, _old_name = Sem::SRN.parse_secret(old_secrets_name)
72
+ new_org_name, new_name = Sem::SRN.parse_secret(new_secrets_name)
73
+
74
+ abort "Secrets can't change their organization" unless new_org_name == old_org_name
75
+
76
+ secret = Sem::API::Secret.find!(old_secrets_name)
77
+ secret = secret.update!(:name => new_name)
78
+
79
+ Sem::Views::Secrets.info(secret)
80
+ end
81
+
82
+ desc "delete", "removes secrets from your organization"
83
+ long_desc <<-DESC
84
+ Examples:
85
+
86
+ $ sem secrets:delete renderedtext/tokens
87
+ Deleted secret renderedtext/tokens.
88
+ DESC
89
+ def delete(secrets_name)
90
+ secret = Sem::API::Secret.find!(secrets_name)
91
+ secret.delete!
92
+
93
+ puts "Deleted secret #{secrets_name}."
94
+ end
95
+
96
+ class Files < Dracula
97
+
98
+ desc "list", "list files in secrets"
99
+ long_desc <<-DESC
100
+ Examples:
101
+
102
+ $ sem secrets:files:list renderedtext/tokens
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
107
+ def list(secret_name)
108
+ secret = Sem::API::Secret.find!(secret_name)
109
+ files = secret.files
110
+
111
+ if !files.empty?
112
+ Sem::Views::Files.list(files)
113
+ else
114
+ Sem::Views::Secrets.add_first_file(secret)
115
+ end
116
+ end
117
+
118
+ desc "add", "add a file to secrets"
119
+ option "path-on-semaphore", :aliases => "p", :desc => "Path of the file in builds relative to /home/runner directory", :required => true
120
+ option "local-path", :aliases => "l", :desc => "Location of the file on the local machine", :required => true
121
+ long_desc <<-DESC
122
+ Examples:
123
+
124
+ $ sem secrets:files:add renderedtext/tokens --local-path /tmp/secrets.json --path-on-semaphore secrets.json
125
+ Added /home/runner/secrets.txt to renderedtext/secrets.
126
+ DESC
127
+ def add(secrets_name)
128
+ secret = Sem::API::Secret.find!(secrets_name)
129
+
130
+ local_path = options["local-path"]
131
+
132
+ abort "File #{local_path} not found" unless File.exist?(local_path)
133
+
134
+ path = options["path-on-semaphore"]
135
+ content = File.read(local_path)
136
+
137
+ secret.add_config_file(:path => path, :content => content, :encrypted => true)
138
+
139
+ puts "Added /home/runner/#{path} to #{secrets_name}."
140
+ end
141
+
142
+ desc "remove", "remove a file from secrets"
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 secrets:files:remove renderedtext/secrets --path secrets.json
148
+ Removed /home/runner/secrets.txt from renderedtext/secrets.
149
+ DESC
150
+ def remove(secrets_name)
151
+ secret = Sem::API::Secret.find!(secrets_name)
152
+
153
+ secret.remove_config_file(options[:path])
154
+
155
+ puts "Removed /home/runner/#{options[:path]} from #{secrets_name}."
156
+ end
157
+
158
+ end
159
+
160
+ class EnvVars < Dracula
161
+
162
+ desc "list", "list environment variables in secrets"
163
+ long_desc <<-DESC
164
+ Examples:
165
+
166
+ $ sem secrets:files:list renderedtext/tokens
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
171
+ def list(secret_name)
172
+ secret = Sem::API::Secret.find!(secret_name)
173
+ env_vars = secret.env_vars
174
+
175
+ if !env_vars.empty?
176
+ Sem::Views::EnvVars.list(env_vars)
177
+ else
178
+ Sem::Views::Secrets.add_first_env_var(secret)
179
+ end
180
+ end
181
+
182
+ desc "add", "add an environment variable to secrets"
183
+ option :name, :aliases => "n", :desc => "Name of the variable", :required => true
184
+ option :content, :aliases => "c", :desc => "Content of the variable", :required => true
185
+ long_desc <<-DESC
186
+ Examples:
187
+
188
+ $ sem secrets:env-vars:add renderedtext/secrets --name TOKEN --content "s3cr3t"
189
+ Added TOKEN to renderedtext/secrets.
190
+ DESC
191
+ def add(secret_name)
192
+ secret = Sem::API::Secret.find!(secret_name)
193
+
194
+ secret.add_env_var(:name => options[:name], :content => options[:content], :encrypted => true)
195
+
196
+ puts "Added #{options[:name]} to #{secret_name}."
197
+ end
198
+
199
+ desc "remove", "remove an environment variable from secrets"
200
+ option :name, :aliases => "n", :desc => "Name of the variable", :required => true
201
+ long_desc <<-DESC
202
+ Examples:
203
+
204
+ $ sem secrets:env-vars:remove renderedtext/secrets --name TOKEN
205
+ Removed TOKEN from renderedtext/secrets.
206
+ DESC
207
+ def remove(secrets_name)
208
+ secret = Sem::API::Secret.find!(secrets_name)
209
+ name = options[:name]
210
+
211
+ secret.remove_env_var(name)
212
+
213
+ puts "Removed #{name} from #{secrets_name}"
214
+ end
215
+
216
+ end
217
+
218
+ register "files", "manage files", Files
219
+ register "env-vars", "manage environment variables", EnvVars
220
+ end
data/lib/sem/cli/teams.rb CHANGED
@@ -255,61 +255,61 @@ DESC
255
255
  end
256
256
  end
257
257
 
258
- class SharedConfigs < Dracula
259
- desc "list", "list shared configurations in a team"
258
+ class Secrets < Dracula
259
+ desc "list", "list secrets in a team"
260
260
  long_desc <<-DESC
261
261
  Examples:
262
262
 
263
- $ sem team:shared-configs:list renderedtext/devs
263
+ $ sem team:secrets:list renderedtext/devs
264
264
  ID NAME CONFIG FILES ENV VARS
265
265
  99c7ed43-ac8a-487e-b488-c38bc757a034 renderedtext/tokens 1 0
266
266
  1133ed43-ac8a-487e-b488-c38bc757a044 renderedtext/secrets 0 1
267
267
  DESC
268
268
  def list(team_name)
269
269
  team = Sem::API::Team.find!(team_name)
270
- configs = team.shared_configs
270
+ configs = team.secrets
271
271
 
272
272
  if !configs.empty?
273
- Sem::Views::SharedConfigs.list(configs)
273
+ Sem::Views::Secrets.list(configs)
274
274
  else
275
- Sem::Views::Teams.add_first_shared_config(team)
275
+ Sem::Views::Teams.add_first_secrets(team)
276
276
  end
277
277
  end
278
278
 
279
- desc "add", "add a shared configuration to a team"
279
+ desc "add", "add secrets to a team"
280
280
  long_desc <<-DESC
281
281
  Examples:
282
282
 
283
- $ sem team:shared-configs:add renderedtext/devs renderedtext/secrets
284
- Shared Configuration renderedtext/secrets added to the team.
283
+ $ sem team:secrets:add renderedtext/devs renderedtext/tokens
284
+ Secrets renderedtext/token added to the team.
285
285
  DESC
286
- def add(team_name, shared_config_name)
286
+ def add(team_name, secret_name)
287
287
  team = Sem::API::Team.find!(team_name)
288
- shared_config = Sem::API::SharedConfig.find!(shared_config_name)
288
+ secret = Sem::API::Secret.find!(secret_name)
289
289
 
290
- team.add_shared_config(shared_config)
290
+ team.add_secret(secret)
291
291
 
292
- puts "Shared Configuration #{shared_config_name} added to the team."
292
+ puts "Secrets #{secret_name} added to the team."
293
293
  end
294
294
 
295
- desc "remove", "removes a shared Configuration from the team"
295
+ desc "remove", "removes secrets from the team"
296
296
  long_desc <<-DESC
297
297
  Examples:
298
298
 
299
- $ sem team:shared-configs:remove renderedtext/devs renderedtext/secrets
300
- Shared Configuration renderedtext/secrets removed from the team.
299
+ $ sem team:secrets:remove renderedtext/devs renderedtext/secrets
300
+ Secrets renderedtext/secrets removed from the team.
301
301
  DESC
302
- def remove(team_name, shared_config_name)
302
+ def remove(team_name, secret_name)
303
303
  team = Sem::API::Team.find!(team_name)
304
- shared_config = Sem::API::SharedConfig.find!(shared_config_name)
304
+ secret = Sem::API::Secret.find!(secret_name)
305
305
 
306
- team.remove_shared_config(shared_config)
306
+ team.remove_secret(secret)
307
307
 
308
- puts "Shared Configuration #{shared_config_name} removed from the team."
308
+ puts "Secrets #{secret_name} removed from the team."
309
309
  end
310
310
  end
311
311
 
312
312
  register "members", "manage team members", Members
313
313
  register "projects", "manage team members", Projects
314
- register "shared-configs", "manage shared configurations", SharedConfigs
314
+ register "secrets", "manage secrets", Secrets
315
315
  end
data/lib/sem/cli.rb CHANGED
@@ -5,7 +5,7 @@ module Sem
5
5
  require_relative "cli/orgs"
6
6
  require_relative "cli/projects"
7
7
  require_relative "cli/teams"
8
- require_relative "cli/shared_configs"
8
+ require_relative "cli/secrets"
9
9
 
10
10
  desc "version", "Display CLI version"
11
11
  def version
@@ -49,7 +49,7 @@ DESC
49
49
 
50
50
  register "orgs", "manage organizations", Sem::CLI::Orgs
51
51
  register "teams", "manage teams and team membership", Sem::CLI::Teams
52
- register "shared-configs", "manage shared configurations", Sem::CLI::SharedConfigs
52
+ register "secrets", "manage secrets", Sem::CLI::Secrets
53
53
  register "projects", "manage projects", Sem::CLI::Projects
54
54
  end
55
55
  end
data/lib/sem/srn.rb CHANGED
@@ -14,8 +14,8 @@ class Sem::SRN
14
14
  parse_srn(semaphore_resource_name, "org_name/project_name")
15
15
  end
16
16
 
17
- def parse_shared_config(semaphore_resource_name)
18
- parse_srn(semaphore_resource_name, "org_name/shared_config_name")
17
+ def parse_secret(semaphore_resource_name)
18
+ parse_srn(semaphore_resource_name, "org_name/secret_name")
19
19
  end
20
20
 
21
21
  def parse_user(semaphore_resource_name)
data/lib/sem/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sem
2
- VERSION = "0.7.0".freeze
2
+ VERSION = "0.8.0".freeze
3
3
  end
@@ -26,12 +26,12 @@ class Sem::Views::Projects < Sem::Views::Base
26
26
  ]
27
27
  end
28
28
 
29
- def self.attach_first_shared_config(project)
30
- puts "You don't have any shared configurations on this project."
29
+ def self.attach_first_secret(project)
30
+ puts "You don't have any secrets on this project."
31
31
  puts ""
32
- puts "Add your first shared configuration:"
32
+ puts "Add your first secret:"
33
33
  puts ""
34
- puts " sem projects:shared-configs:add #{project.full_name} SHARED_CONFIG_NAME"
34
+ puts " sem projects:secrets:add #{project.full_name} SECRETS_NAME"
35
35
  puts ""
36
36
  end
37
37