tbgit 1.0.5 → 1.0.6

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: bc190fce7c3defc7df4c29ebc7f0ed09c76365de
4
- data.tar.gz: 6c5ec3f084df04208c75c30c77655e4a2506a0db
3
+ metadata.gz: 0eb15c5320ffda2798b568ff362e5048a9056970
4
+ data.tar.gz: c10caeb230277b6e3f2968b11ae264582852972a
5
5
  SHA512:
6
- metadata.gz: 236c2f3c28a0a54c77a1688380689ea77730095a9c6e3fe308d440fdaeaa3585c20f7a690aeb8166d713d9920f0e6fb7ccc3fd3cd9b948f603c27262e3350722
7
- data.tar.gz: e0d93db6c08c334a27bcd118c240d914b87bc09cecf5172a1bce711cecba58af240dbb674ee900d1efa93f404e3b2c8f320cf01582399bfc1a6464e8cb01cb4c
6
+ metadata.gz: 784640d659c9c8b9aef4bea90bf55caf775c76a91aaa0cb9a4c9276eda8597878e0e27bb384fec4aabe77dd7cbcbb981c6769e84d44a34b707c13c052bd36656
7
+ data.tar.gz: c003f1d1af994c744518a857628b95221d3b4e336575eeefaa797222118b551cbd029104a3c17e57aeb5ae0cbdc7351c78d46176da10897366601f2bc66ff676
data/bin/tbgit CHANGED
@@ -49,6 +49,8 @@ when "create-locals"
49
49
  tbgit.spacer
50
50
 
51
51
  tbgit.create_local_tracking_remotes
52
+ when "add-webhooks"
53
+ tbgit.add_webhooks(ARGV[1],ARGV[2],ARGV[3],ARGV[4],ARGV[5])
52
54
  else
53
55
  helptext.helpme
54
56
  end
@@ -0,0 +1,38 @@
1
+ require 'net/http'
2
+
3
+ require 'rubygems'
4
+ require 'json'
5
+
6
+ class CreateWebhooks
7
+
8
+ @@host = "https://api.github.com"
9
+ @@port = 443
10
+
11
+ def post(organization,student,reponame,user,pass,url)
12
+
13
+ payload ='{
14
+ "name": "web",
15
+ "active": true,
16
+ "events": ["push"],
17
+ "config": {
18
+ "url": "' + url + '",
19
+ "content_type": "json"
20
+ }
21
+ }'
22
+
23
+ post_url = @@host + "/repos/" + organization + "/" + student + "-" + reponame + "/hooks"
24
+ uri = URI(post_url)
25
+
26
+ Net::HTTP.start(uri.host,uri.port,
27
+ :use_ssl => uri.scheme = 'https') do |http|
28
+ request = Net::HTTP::Post.new(uri, initheader = {'Content-Type' =>'application/json'})
29
+ request.basic_auth user, pass
30
+ request.body = payload
31
+ http.request request do |response|
32
+ response.read_body do |chunk|
33
+ puts chunk
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
data/lib/tbgit/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Tbgit
2
- VERSION = "1.0.5"
2
+ VERSION = "1.0.6"
3
3
  end
@@ -0,0 +1,3 @@
1
+ module Tbgit
2
+ VERSION = "1.0.4"
3
+ end
data/lib/tbgit.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require "tbgit/version"
2
2
  require "tempfile"
3
3
  require "score_parser"
4
+ require "add_webhooks"
5
+ require 'highline/import'
4
6
 
5
7
  module Main
6
8
 
@@ -39,7 +41,7 @@ module Main
39
41
 
40
42
  #gather necessary information
41
43
  def gather(students_file, organization, reponame)
42
- if students_file == ""
44
+ if students_file == nil
43
45
  puts 'Students file |../students|:'
44
46
  @students_file = $stdin.gets.chomp
45
47
  if @students_file == ""
@@ -49,7 +51,7 @@ module Main
49
51
  @students_file = students_file
50
52
  end
51
53
 
52
- if organization == ""
54
+ if organization == nil
53
55
  puts 'Organization name |yale-stc-developer-curriculum|:'
54
56
  @organization = $stdin.gets.chomp
55
57
  if @organization == ""
@@ -59,7 +61,7 @@ module Main
59
61
  @organization = organization
60
62
  end
61
63
 
62
- if reponame == ""
64
+ if reponame == nil
63
65
  puts 'Student Repo Name |TechBootcampHomework|:'
64
66
  @reponame = $stdin.gets.chomp
65
67
  if @reponame == ""
@@ -135,12 +137,12 @@ module Main
135
137
 
136
138
  confirm(flag,"A merge and commit will be performed on each local student branch (from the branch you specify). Continue?")
137
139
 
138
- if merge_branch != ""
140
+ if merge_branch == nil
139
141
  puts "Merge from branch: "
140
142
  merge_branch = $stdin.gets.chomp
141
143
  end
142
144
 
143
- if message != ""
145
+ if message == nil
144
146
  puts "Commit Message: "
145
147
  message = $stdin.gets.chomp
146
148
  end
@@ -171,8 +173,8 @@ module Main
171
173
 
172
174
  end
173
175
 
174
- #takes an array of commands, and executes each command on each student branch
175
- def on_each_exec(input)
176
+ #takes an array of commands, and executes a ruby command on each student branch
177
+ def on_each_ruby(input)
176
178
  all_remotes = all_remotes_list
177
179
  all_remotes.each do |branch|
178
180
  branch.delete!("\n")
@@ -187,7 +189,7 @@ module Main
187
189
  final_command = command.gsub("<branch>", branch)
188
190
 
189
191
  puts final_command
190
- system final_command
192
+ eval(final_command)
191
193
  end
192
194
  end
193
195
 
@@ -195,25 +197,30 @@ module Main
195
197
  switch_to_master
196
198
  end
197
199
 
198
-
200
+ #takes an array of commands, and executes a system command on each student branch
201
+ def on_each_exec(input)
202
+ input.map! { |a| "system '" + a.gsub("'"){"\\'"} + "'"}
203
+ on_each_ruby(input)
204
+ end
205
+
199
206
  def git_status
200
207
  on_each_exec(["git status <branch>"])
201
208
  end
202
209
 
203
210
  def spec(flag,specfile,studentcopy,mastercopy,commit_message)
204
211
 
205
- if specfile==""
212
+ if specfile==nil
206
213
  puts "Please specify the relative path from your pwd to the rspec file you would like to spec, eg. 'hw1/spec/spec.rb'"
207
214
  specfile = $stdin.gets.chomp
208
215
  end
209
216
 
210
- if studentcopy==""
217
+ if studentcopy==nil
211
218
  puts "Where would you like to save each student's individual results?"
212
219
  puts "**Must be inside the student's repo directory, eg. 'hw1/spec/results.txt'**"
213
220
  studentcopy = $stdin.gets.chomp
214
221
  end
215
222
 
216
- if mastercopy==""
223
+ if mastercopy==nil
217
224
  puts "In which folder would you like to save a copy of all results?"
218
225
  puts "**Must be outside the student's repo directory, eg. '../results'**"
219
226
  mastercopy = $stdin.gets.chomp
@@ -222,7 +229,7 @@ module Main
222
229
  puts "mkdir " + mastercopy
223
230
  system "mkdir " + mastercopy
224
231
 
225
- if commit_message==""
232
+ if commit_message==nil
226
233
  puts "Commit message (commiting each student's results to their repo):"
227
234
  commit_message = $stdin.gets.chomp
228
235
  end
@@ -241,5 +248,34 @@ module Main
241
248
 
242
249
  end
243
250
 
251
+ def add_webhooks(organization,reponame,user,pass,url)
252
+ if organization == nil
253
+ puts "Organization Name:"
254
+ organization = $stdin.gets.chomp
255
+ end
256
+
257
+ if reponame == nil
258
+ puts "Student Repository Name:"
259
+ reponame = $stdin.gets.chomp
260
+ end
261
+
262
+ if user == nil
263
+ print "Username:"
264
+ user = $stdin.gets.chomp
265
+ end
266
+
267
+ if pass == nil
268
+ pass = ask("Password: ") { |q| q.echo = false }
269
+ end
270
+
271
+ if url == nil
272
+ puts "Webhook url:"
273
+ url = $stdin.gets.chomp
274
+ end
275
+
276
+ on_each_ruby(['create = CreateWebhooks.new; create.post(\''+ organization.to_s + '\',\'<branch>\',\''+reponame.to_s+'\',
277
+ \''+user.to_s+'\',\''+pass.to_s+'\',\''+url.to_s+'\')'])
278
+
279
+ end
244
280
  end #class
245
281
  end #module
data/tbgit.gemspec CHANGED
@@ -23,4 +23,5 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "rake"
24
24
  spec.add_development_dependency "json"
25
25
  spec.add_development_dependency "rubygems"
26
+ spec.add_development_dependency "highline/import"
26
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tbgit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charlie Proctor
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-23 00:00:00.000000000 Z
11
+ date: 2014-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: highline/import
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: ''
70
84
  email:
71
85
  - charlie@charlieproctor.com
@@ -80,11 +94,13 @@ files:
80
94
  - README.md
81
95
  - Rakefile
82
96
  - bin/tbgit
97
+ - lib/add_webhooks.rb
83
98
  - lib/helptext.rb
84
99
  - lib/score_parser.rb
85
100
  - lib/scoresheet.txt
86
101
  - lib/tbgit.rb
87
102
  - lib/tbgit/version.rb
103
+ - lib/tbgit/version.rb~
88
104
  - tbgit.gemspec
89
105
  homepage: ''
90
106
  licenses: