ghedsh 1.1.20 → 1.1.21

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: df4f9b762bbed5fa79231616af6df96b34954dba
4
- data.tar.gz: 76d67595bfba20f88780bbbdbe83856f30ff8794
3
+ metadata.gz: 91993b0a9f8bd97edbb09612f1c1ce4924436b22
4
+ data.tar.gz: 3f8ae8fadc7bc61d17fc0c2f454272620c05e297
5
5
  SHA512:
6
- metadata.gz: 83f259674514ecbfea88048e0c7d43b05596c33a47380d94939666d7dca96b583a80264f5487ea90c34daf57c128f7c1d34187cf15d28033ea2f3bd621666aac
7
- data.tar.gz: ff59f9e13672b1a326f9e6003b5c92c3ea10d9612e85dc6ac560376a8ff6531a917a873b073be8898f990fee9b70a1a115c0b7f23e24b4fb9dec153b81f680e8
6
+ metadata.gz: 7694cc5fe678e4c7ea228b6adcfcad7f10d62437f6d4de9711e8fdd3d2b7bbcaebf149bf64cb4cebfe30e8c422eda0d119f1774b2baf527bdae315f9fac98904
7
+ data.tar.gz: 4401a6bcb3041ef9c4454cd4e85bb6bbe965b4c378ab8c266e26a0e29726889241bf86100ead09fc28719aa2d99f1527e577f792a2f7b0ff6efc7bf51f59947c
data/README.md CHANGED
@@ -45,7 +45,8 @@ Logged in our app you start set in your personal profile. There you can list you
45
45
  Levels
46
46
  └── User
47
47
     ├── Organizations
48
-    │   ├── Teams
48
+    │   ├── Groups
49
+   │   ├── Teams
49
50
  │  │  └── Team Repositories
50
51
     │   ├── Assignments
51
52
     │   └── Organization Repositories
@@ -133,14 +134,14 @@ assignments
133
134
  Muestra las tareas o asignaciones hechas para una organizacion.
134
135
 
135
136
  ```sh
136
- new_assignment <nombre>
137
+ new_repository <nombre>
137
138
  ```
138
- Crea una asignacion para una organizacion. Espera por parametro el nombre. Tras ejecutar el comando pedira un repositorio ya existente, la creacion de uno nuevo o la no insercion de un repositorio. Ademas esperara una lista de grupos para asignar a la tarea.
139
+ Crea un repositorio para un usuario, para una organizacion, o para un equipo dentro de una organizacion. Espera el nombre del repositorio.
139
140
 
140
141
  ```sh
141
- make <nombre>
142
+ rm_repository <nombre>
142
143
  ```
143
- Situado dentro de una asignacion o tarea, se creara un repositorio para cada equipo que pertenezca al grupo o grupos asignados.
144
+ Borra un repositorio de un usuario o de una organizacion. El comando espera el nombre del repositorio, ademas pedira confirmacion para el borrado del mismo si se ha comprobado su existencia.
144
145
 
145
146
  ```sh
146
147
  clone <nombre>
@@ -182,9 +183,37 @@ close_issue <id>
182
183
  ```
183
184
  Cierra un issue especifico dentro de un repositorio. Se debe especificar el issue mediante la id del mismo.
184
185
 
186
+ ###Comandos para las Tareas o asignaciones
185
187
 
188
+ ```sh
189
+ new_assignment <nombre>
190
+ ```
191
+ Crea una asignacion para una organizacion. Espera por parametro el nombre. Tras ejecutar el comando pedira un repositorio ya existente, la creacion de uno nuevo o la no insercion de un repositorio. Ademas esperara una lista de grupos para asignar a la tarea, ademas de la posible creacion de un grupo al que se le añadiran sus equipos. Todos los pasos pueden ser saltados, y tanto los grupos como el repositorio pueden ser añadidos posteriormente mediante **add_group** y **add_repo**.
186
192
 
193
+ ```sh
194
+ cd <asignacion>
195
+ ```
196
+ Dentro de una organizacion nos situara dentro de una asignacion para poder listar o editar los datos de la misma.
187
197
 
198
+ ```sh
199
+ make <nombre>
200
+ ```
201
+ Situado dentro de una asignacion o tarea, se creara un repositorio para cada equipo que pertenezca al grupo o grupos asignados. Se volcara el contenido del repositorio original a cada uno de los nuevos repositorios asignados a cada equipo.
202
+
203
+ ```sh
204
+ info
205
+ ```
206
+ Dentro de la asignacion, mostrara los datos de la misma. Se listaran los grupos y el repositorio asignado.
207
+
208
+ ```sh
209
+ add_repo
210
+ ```
211
+ Dentro de la asignacion, se activara el proceso de añadido del repositorio. Entre las opciones a elegir, estara la de añadir un repositorio ya creado, crear un nuevo repositorio o saltar el paso y no añadir el repositorio. Si ya habia un repositorio asignado anteriormente, este comando lo reemplazara.
212
+
213
+ ```sh
214
+ add_group
215
+ ```
216
+ Dentro de la asignacion, se activara el proceso de añadido de groups. Entre las opciones a elegir, estaran la de añadir directamente grupos ya creados o crear uno desde cero. Si se crea uno desde cero se pedira un nombre o se creara un nombre con la fecha actual, despues se añadiran los equipos que perteneceran al grupo. Si ya existian grupos en la asignacion, este comando añadira otro mas a la lista.
188
217
 
189
218
 
190
219
  ##Aditional information
data/lib/actions/orgs.rb CHANGED
@@ -55,22 +55,56 @@ class Organizations
55
55
  puts "3) Don't assign a repository yet"
56
56
  print "option => "
57
57
  op=gets.chomp
58
+ puts "\n"
58
59
  if op=="3" or op=="1" or op=="2"
59
60
  ex=true
60
61
  end
61
62
  end
62
63
  case
63
64
  when op=="1" || op=="2"
64
- puts "Name of the repository: "
65
- reponame=gets.chomp
66
- if op==1
67
- if client.repository?("#{config["Org"]}/#{reponame}")==false
68
- puts "The repository #{reponame} doesn't exist"
69
- reponame=""
65
+
66
+ if op=="1"
67
+ ex2=false
68
+ until ex2==true
69
+ exname=false
70
+ until exname==true
71
+ puts "Name of the repository -> Owner/Repository or Organization/Repository :"
72
+ reponame=gets.chomp
73
+ if reponame.split("/").size!=2 and reponame!=""
74
+ puts "Please introduce a valid format."
75
+ else
76
+ exname=true
77
+ end
78
+ if reponame==""
79
+ exname=true
80
+ ex2=true
81
+ end
82
+ end
83
+ if reponame!=""
84
+ if client.repository?("#{reponame}")==false
85
+ puts "The repository #{reponame} doesn't exist\n"
86
+ puts "\nName of the repository (To skip and add the repository later, only press enter): "
87
+ if reponame==""
88
+ ex2=true
89
+ end
90
+ else
91
+ ex2=true
92
+ end
93
+ end
70
94
  end
71
95
  end
72
96
  if op=="2"
73
- Repositories.new().create_repository(client,config,reponame,ORGS)
97
+ ex2=false
98
+ until ex2==true
99
+ ex2=Repositories.new().create_repository(client,config,reponame,false,ORGS)
100
+ if ex2==false
101
+ puts "Name of the repository (To skip and add the repository later, press enter): "
102
+ reponame=gets.chomp
103
+ if reponame==""
104
+ ex2=true
105
+ end
106
+ end
107
+ end
74
108
  end
75
109
  when op=="3" then reponame=""
76
110
  end
@@ -81,8 +115,12 @@ class Organizations
81
115
  team=Teams.new()
82
116
  groupslist=team.get_groupslist(config)
83
117
  groupsadd=[]
118
+ teamlist=team.read_teamlist(client,config)
119
+
84
120
  puts "\n"
85
- puts "Add groups to your assignment (Press enter to skip): "
121
+ puts "Groups currently available:\n\n"
122
+ puts groupslist
123
+ puts "\nAdd groups to your assignment (Press enter to skip): "
86
124
  op=gets.chomp
87
125
  if op==""
88
126
  puts "Do you want to create a new group? (Press any key to preceed, or only enter to skip)"
@@ -96,7 +134,12 @@ class Organizations
96
134
  name="Group-#{time.ctime}"
97
135
  name=name.split(" ").join("-")
98
136
  end
99
- puts "Put a list of Teams"
137
+ puts "Teams currently available:\n\n"
138
+ teamlist.each do |aux|
139
+ print "#{aux[0]} "
140
+ end
141
+ puts "\n\nPut a list of Teams: "
142
+
100
143
  list=gets.chomp
101
144
  list=list.split(" ")
102
145
  team.new_group(client,config,name,list)
@@ -185,23 +228,22 @@ class Organizations
185
228
 
186
229
  if assig["repo"]!=""
187
230
 
188
- system("git clone #{web2}#{config["Org"]}/#{assig["repo"]}.git")
189
- system("git-C #{assig["repo"]} remote rename origin professor")
231
+ #system("git clone #{web2}#{config["Org"]}/#{assig["repo"]}.git #{ENV['HOME']}/.ghedsh/#{assig["repo"]}")
232
+ system("git clone #{web2}#{assig["repo"]}.git #{ENV['HOME']}/.ghedsh/#{assig["repo"]}")
190
233
 
191
234
  assig["groups"].each do |i|
192
235
  teamsforgroup=team.get_single_group(config,i)
193
236
  teamsforgroup.each do |y|
194
237
  config["TeamID"]=teamlist["#{y}"]
195
238
  config["Team"]=y
196
- repo.create_repository(client,config,"#{y}-#{assig["name_assig"]}",TEAM)
197
- #system("git-C #{assig["repo"]} remote rm origin")
198
- # system("git -C #{assig["repo"]} remote add origin #{web2}#{config["Org"]}/#{y}-#{assig["name_assig"]}.git")
239
+ repo.create_repository(client,config,"#{y}-#{assig["name_assig"]}",true,TEAM)
240
+ system("git -C #{ENV['HOME']}/.ghedsh/#{assig["repo"]} remote rm origin")
241
+ system("git -C #{ENV['HOME']}/.ghedsh/#{assig["repo"]} remote add origin #{web2}#{config["Org"]}/#{y}-#{assig["name_assig"]}.git")
199
242
 
200
- #system("git -C #{assig["repo"]} remote set-url origin #{web2}#{config["Org"]}/#{y}-#{assig["name_assig"]}.git")
201
- system("git -C #{assig["repo"]} remote add #{y} #{web2}#{config["Org"]}/#{y}-#{assig["name_assig"]}.git")
202
- system("git -C #{assig["repo"]} push #{y} --all")
243
+ system("git -C #{ENV['HOME']}/.ghedsh/#{assig["repo"]} push origin --all")
203
244
  end
204
245
  end
246
+ system("rm -rf #{ENV['HOME']}/.ghedsh/#{assig["repo"]}")
205
247
  else
206
248
  puts "No repository is given for this assignment"
207
249
  end
data/lib/actions/repo.rb CHANGED
@@ -239,22 +239,83 @@ class Repositories
239
239
  return mem
240
240
  end
241
241
 
242
- def create_repository(client,config,repo,scope)
242
+ def delete_repository(client,config,repo,scope)
243
+
244
+ if scope==ORGS
245
+ if client.repository?("#{config["Org"]}/#{repo}")==false
246
+ puts "It doesn't exist a repository with that name in #{config["Org"]}"
247
+ else
248
+ ex=false
249
+ until ex==true
250
+ puts "Repository #{repo} will be delete. Are you sure? (yes/no) (y/n)"
251
+ op=gets.chomp
252
+ if op=="yes" or op=="y"
253
+ client.delete_repository("#{config["Org"]}/#{repo}")
254
+ ex=true
255
+ end
256
+ if op=="no" or op=="n" then ex=true end
257
+ end
258
+ end
259
+ end
260
+ if scope==USER || scope==TEAM
261
+ if client.repository?("#{config["User"]}/#{repo}")==false
262
+ puts "It doesn't exist a repository with that name in #{config["User"]}"
263
+ else
264
+ ex=false
265
+ until ex==true
266
+ puts "Repository #{repo} will be delete. Are you sure? (yes/no) (y/n)"
267
+ op=gets.chomp
268
+ if op=="yes" or op=="y"
269
+ client.delete_repository("#{config["User"]}/#{repo}")
270
+ ex=true
271
+ end
272
+ if op=="no" or op=="n" then ex=true end
273
+ end
274
+ end
275
+ end
276
+ end
277
+
278
+ def create_repository(client,config,repo,empty,scope)
243
279
  options=Hash.new
244
- options[:auto_init]=true
280
+
281
+ if empty==false
282
+ options[:auto_init]=true
283
+ end
284
+
245
285
  case
246
286
  when scope==ORGS
247
- puts "created repository in #{config["Org"]}"
287
+
248
288
  options[:organization]=config["Org"]
249
- client.create_repository(repo,options)
289
+ if client.repository?("#{config["Org"]}/#{repo}")==false
290
+ client.create_repository(repo,options)
291
+ puts "created repository in #{config["Org"]}"
292
+ return true
293
+ else
294
+ puts "Already exists a repository with that name in #{config["Org"]}"
295
+ return false
296
+ end
250
297
  when scope==USER
251
- puts "created repository in user"
252
- client.create_repository(repo)
298
+ if client.repository?("#{config["User"]}/#{repo}")==false
299
+ client.create_repository(repo)
300
+ puts "created repository #{config["User"]}"
301
+ return true
302
+ else
303
+ puts "Already exists a repository with that name in #{config["User"]}"
304
+ return false
305
+ end
253
306
  when scope==TEAM
254
307
  puts "created repository in #{config["Org"]} team"
255
308
  options[:team_id]=config["TeamID"]
256
309
  options[:organization]=config["Org"]
257
- client.create_repository(repo,options)
310
+
311
+ if client.repository?("#{config["Org"]}/#{repo}")==false
312
+ client.create_repository(repo,options)
313
+ puts "created repository in #{config["Org"]} for team #{config["Team"]}"
314
+ return true
315
+ else
316
+ puts "Already exists a repository with that name in #{config["Org"]}"
317
+ return false
318
+ end
258
319
  end
259
320
  end
260
321
 
@@ -269,7 +330,7 @@ class Repositories
269
330
  # puts repo
270
331
  # puts options
271
332
  # puts "\n"
272
- client.create_repository(i+"/"+repo,options)
333
+ client.create_repository(i+"/"+repo,false,options)
273
334
  y=y+1
274
335
  end
275
336
  end
@@ -10,7 +10,8 @@ class Sys
10
10
  attr_reader :client
11
11
  attr_reader :memory
12
12
  LIST = ['repos', 'exit', 'orgs','help', 'people','teams', 'cd ', 'cd repo ','commits','forks', 'add_team_member ','new_team ','rm_team ','new_repository ','new_assignment ','clone ', 'issues',
13
- 'version', 'cat ', 'groups', 'files', 'assignments','new_issue ', 'open_issue', 'new_','open_', 'close_issue', 'new_group ', 'rm_group', 'rm_', 'do ', 'info','make','add_repo','add_group'].sort
13
+ 'version', 'cat ', 'groups', 'files', 'assignments','new_issue ', 'open_issue', 'new_','open_', 'close_issue', 'new_group ', 'rm_group', 'rm_', 'do ', 'info','make','add_repo',
14
+ 'add_group','rm_repository '].sort
14
15
 
15
16
  def initialize()
16
17
  @memory=[]
data/lib/interface.rb CHANGED
@@ -602,13 +602,18 @@ class Interface
602
602
  t.delete_group(@config,opcd[1])
603
603
  end
604
604
  end
605
+ if opcd[0]=="rm_repository" and opcd.size==2
606
+ if @deep==ORGS || @deep==USER || @deep==TEAM
607
+ r.delete_repository(@client,@config,opcd[1],@deep)
608
+ end
609
+ end
605
610
  if opcd[0]=="new_team" and opcd.size>2
606
611
  t.create_team_with_members(@client,@config,opcd[1],opcd[2..opcd.size])
607
612
  @teamlist=t.read_teamlist(@client,@config)
608
613
  @sysbh.add_history_str(1,@teamlist)
609
614
  end
610
615
  if opcd[0]=="new_repository" and opcd.size==2
611
- r.create_repository(@client,@config,opcd[1],@deep)
616
+ r.create_repository(@client,@config,opcd[1],false,@deep)
612
617
  end
613
618
  if opcd[0]=="new_assignment" and opcd.size>1 #2
614
619
  case
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ghedsh
2
- VERSION='1.1.20'
2
+ VERSION='1.1.21'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ghedsh
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.20
4
+ version: 1.1.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Javier Clemente
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-06-15 00:00:00.000000000 Z
12
+ date: 2016-06-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: octokit