prima-twig 0.0.11 → 0.0.12

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: c716c024c25c66f63d2191d909dae689c575e95a
4
- data.tar.gz: ef65e6652f87fd539305b6e0df765adb247725eb
3
+ metadata.gz: d4235df66f116e82cec91485015227c678d9a528
4
+ data.tar.gz: 8e020b023f0d6f830d59e035f22251b69265c0c6
5
5
  SHA512:
6
- metadata.gz: 745640d28a76cbfd14425e6f31b9ac5504d56fe0e7b0b54e074a10e0c59c7c5306be549f1fd20efe9fcf0df8db059bc78544428979d298f21f2950160a0076d6
7
- data.tar.gz: 7b4e51b34230cd1817c57970857051ff9685382c2bdbe3b43fa0e1083d67db882d5593d704508df6aa7b39203c77bf691762691d528fe9987987d61aeac5f6a8
6
+ metadata.gz: 2d3429ed0d550da0eb7a40416bf89864820f3e1925471fc5cde6d19d68a799d939324e46a74276969173b967ba3653d4f3d393d63a9de025fd6db8a0db824945
7
+ data.tar.gz: e831f5e756253820e19955d2031d47713791739f4aaae61041fa9767e01d4d458e7c5e573826ad04986498cf41ce717016b5ed3837af19a7890cf35d7e48b344
data/bin/twig-circle CHANGED
@@ -43,9 +43,9 @@ class Circle
43
43
  @prima = Prima.new
44
44
  end
45
45
 
46
- def execute
46
+ def execute!
47
47
  Launchy.open("https://circleci.com/gh/#{ @prima.repo_name }/tree/#{ @prima.current_branch_name }")
48
48
  end
49
49
  end
50
50
 
51
- Circle.new.execute
51
+ Circle.new.execute!
data/bin/twig-open-pr CHANGED
@@ -43,7 +43,7 @@ class OpenPR
43
43
  @prima = Prima.new
44
44
  end
45
45
 
46
- def execute
46
+ def execute!
47
47
  unless @prima.gh.user_authenticated?
48
48
  puts 'Non autenticato'
49
49
  exit 1
@@ -97,12 +97,16 @@ class OpenPR
97
97
  end
98
98
 
99
99
  def create_pull_request
100
+ current_branch_name = @prima.current_branch_name
100
101
  title = ask('Titolo: ')
101
102
  head = @prima.current_branch_name
102
103
  base = 'dev'
103
104
  body = ask('Body: ')
105
+ unless @prima.twig.get_branch_property(current_branch_name, 'issue').nil?
106
+ body << " close ##{@prima.twig.get_branch_property(current_branch_name, 'issue')}"
107
+ end
104
108
  @prima.gh.create_pull_request @prima.repo_name, base, head, title, body
105
109
  end
106
110
  end
107
111
 
108
- OpenPR.new.execute
112
+ OpenPR.new.execute!
data/bin/twig-review CHANGED
@@ -42,7 +42,7 @@ class Review
42
42
  @prima = Prima.new
43
43
  end
44
44
 
45
- def execute
45
+ def execute!
46
46
  unless @prima.is_a_valid_branch?
47
47
  puts "Il branch #{ @prima.current_branch_name } non può essere in review".red
48
48
  exit 1
@@ -64,4 +64,4 @@ class Review
64
64
  end
65
65
  end
66
66
 
67
- Review.new.execute
67
+ Review.new.execute!
@@ -0,0 +1,78 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require_relative '../lib/prima_twig.rb'
5
+ require 'colorize'
6
+ require 'highline/import'
7
+
8
+ def help_content
9
+ <<-HELP
10
+
11
+ twig-take-issue
12
+ ===============
13
+
14
+ Takes an issue from github and open a branch for it
15
+
16
+ Synopsis
17
+ --------
18
+
19
+ twig take-issue
20
+
21
+
22
+ Subcommand for Twig: <http://rondevera.github.io/twig/>
23
+ Author: Matteo Giachino <https://github.com/matteosister>
24
+
25
+ HELP
26
+ end
27
+
28
+ args = ARGV.dup
29
+
30
+ if args.include?('--help')
31
+ puts help_content
32
+ exit
33
+ end
34
+
35
+
36
+ class TakeIssue
37
+ def initialize
38
+ @prima = Prima.new
39
+ end
40
+
41
+ def execute!
42
+ unless @prima.is_clean?
43
+ puts 'hai dei file non committati...non posso continuare'.red
44
+ #exit(1)
45
+ end
46
+
47
+ issues = @prima.gh.list_issues('primait/prima')
48
+ issues.delete_if do |issue|
49
+ issue.pull_request?
50
+ end
51
+
52
+ issue_number = choose_issue(issues)
53
+ branch_name = ask('branch name: '.cyan)
54
+ branch_name << "-#{issue_number}"
55
+ branch_name = @prima.clean_branch_name branch_name
56
+
57
+ puts "creo branch con nome #{branch_name}"
58
+ @prima.rugged.branches.create(branch_name, 'master')
59
+ @prima.twig.set_branch_property(branch_name, 'issue', issue_number)
60
+ @prima.rugged.checkout(branch_name)
61
+ end
62
+
63
+ def choose_issue(issues)
64
+ choose do |menu|
65
+
66
+ menu.prompt = 'Choose an issue: '.cyan
67
+
68
+ issues.each do |issue|
69
+ milestone = issue.milestone
70
+ msg = "##{issue.number} - #{issue.title}"
71
+ msg = "[#{milestone.title}] #{msg}" unless milestone.nil?
72
+ menu.choice(msg) {issue.number}
73
+ end
74
+ end
75
+ end
76
+ end
77
+
78
+ TakeIssue.new.execute!
data/lib/prima_twig.rb CHANGED
@@ -8,7 +8,7 @@ class Prima
8
8
  REVIEW_LABEL='review'
9
9
  GITHUB='github'
10
10
  TRELLO='trello'
11
- attr_reader :gh, :twig, :config
11
+ attr_reader :gh, :twig, :config, :rugged
12
12
 
13
13
  def initialize
14
14
  @twig = Twig.new(:read_options => true)
@@ -75,6 +75,12 @@ class Prima
75
75
  "primait:#{ current_branch_name }"
76
76
  end
77
77
 
78
+ def clean_branch_name(branch_name)
79
+ branch_name.gsub! /[^a-zA-Z0-9\-_]/, '_'
80
+ branch_name.gsub! /_+/, '_'
81
+ branch_name
82
+ end
83
+
78
84
  # proxy di tutti i metodi a rugged
79
85
  def method_missing(method)
80
86
  @rugged.send method
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prima-twig
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matteo Giachino
@@ -101,12 +101,14 @@ executables:
101
101
  - twig-circle
102
102
  - twig-open-pr
103
103
  - twig-review
104
+ - twig-take-issue
104
105
  extensions: []
105
106
  extra_rdoc_files: []
106
107
  files:
107
108
  - bin/twig-circle
108
109
  - bin/twig-open-pr
109
110
  - bin/twig-review
111
+ - bin/twig-take-issue
110
112
  - lib/prima_twig.rb
111
113
  homepage: http://rubygems.org/gems/prima-twig
112
114
  licenses: