abak-flow 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -10
- data/README.md +9 -5
- data/abak-flow.gemspec +2 -0
- data/lib/abak-flow/branch.rb +25 -5
- data/lib/abak-flow/configuration.rb +1 -0
- data/lib/abak-flow/locales/en.yml +10 -0
- data/lib/abak-flow/locales/ru.yml +10 -0
- data/lib/abak-flow/pull_request.rb +1 -1
- data/lib/abak-flow/request.rb +57 -35
- data/lib/abak-flow/version.rb +1 -1
- data/lib/abak-flow/visitor.rb +12 -3
- metadata +65 -24
- checksums.yaml +0 -15
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -32,10 +32,10 @@ Github-flow же наоборот ведет основную разработк
|
|
32
32
|
$ git config --global abak-flow.oauth-user YOUR_GITHUB_MAIL@gmail.com
|
33
33
|
$ git config --global abak-flow.oauth-token 0123456789YOUR_GITHUB_API_TOKEN
|
34
34
|
$ git remote add upstream git://github.com/GITHUB_PROJECT_USER/GITHUB_PROJECT_NAME.git
|
35
|
-
|
35
|
+
|
36
36
|
### А если я использую прокси, как быть?
|
37
37
|
$ git config --global abak-flow.http-proxy http://my-proxy.com:3129
|
38
|
-
|
38
|
+
|
39
39
|
Далее по приоритету идут переменные окружения. Сначала **http_proxy**, затем **HTTP_PROXY**
|
40
40
|
|
41
41
|
Т.е если вы используете переменные окружения, то просто не указывайте прокси в конфиге
|
@@ -44,16 +44,16 @@ Github-flow же наоборот ведет основную разработк
|
|
44
44
|
|
45
45
|
**Заметьте:** В конфиге git, значением *abak.oauth-user* должен являться тот email адрес, под которым вы заходите на github
|
46
46
|
|
47
|
-
**Обратите внимание:** В данном контексте под **upstream** подразумевается адрес репозитория в который будут оформляться pull request. А репозиторием **origin** будет являться ваш форк
|
47
|
+
**Обратите внимание:** В данном контексте под **upstream** подразумевается адрес репозитория в который будут оформляться pull request. А репозиторием **origin** будет являться ваш форк
|
48
48
|
|
49
49
|
# С чего начать?
|
50
50
|
|
51
51
|
$ git request checkup
|
52
52
|
|
53
53
|
или
|
54
|
-
|
54
|
+
|
55
55
|
$ git request help
|
56
|
-
|
56
|
+
|
57
57
|
**Примечание:** Вообще-то все комманды поддерживают опцию *--help*, но вот именно *git request --help* успевает перехватиться самим git и он конечно неодумевает как ему показать хэлп по внешней комманде
|
58
58
|
|
59
59
|
# Примеры использования
|
@@ -96,3 +96,7 @@ Github-flow же наоборот ведет основную разработк
|
|
96
96
|
|
97
97
|
# В заключении
|
98
98
|
Данный репозиторий и изложенные в нем идеи ни в коем случае не претендуют на идеал и совершенство. Это всего лишь узко заточенная комбинация гемов
|
99
|
+
|
100
|
+
## Лицензия
|
101
|
+
|
102
|
+
Abak-flow выпускается под лицензией [MIT](http://www.opensource.org/licenses/MIT).
|
data/abak-flow.gemspec
CHANGED
@@ -11,6 +11,7 @@ Gem::Specification.new do |gem|
|
|
11
11
|
gem.homepage = "https://github.com/Strech/abak-flow"
|
12
12
|
gem.summary = "Совмещение 2-х подходов разработки Git-flow & Github-flow"
|
13
13
|
gem.description = "Простой набор правил и комманд, заточеных для работы в git-flow с использование в качестве удаленного репозитория github"
|
14
|
+
gem.license = "MIT"
|
14
15
|
|
15
16
|
gem.rubyforge_project = "abak-flow"
|
16
17
|
|
@@ -20,6 +21,7 @@ Gem::Specification.new do |gem|
|
|
20
21
|
gem.require_paths = ["lib"]
|
21
22
|
|
22
23
|
gem.add_runtime_dependency "octokit", "~> 1.19.0"
|
24
|
+
gem.add_dependency "faraday", "= 0.8.9" # TODO : remove after octokit upgrade
|
23
25
|
gem.add_runtime_dependency "git", "~> 1.2.5"
|
24
26
|
gem.add_runtime_dependency "commander", ">= 4.1.3"
|
25
27
|
gem.add_runtime_dependency "ruler", ">= 1.4.2"
|
data/lib/abak-flow/branch.rb
CHANGED
@@ -24,6 +24,7 @@ module Abak::Flow
|
|
24
24
|
@branch.full
|
25
25
|
end
|
26
26
|
|
27
|
+
# TODO : Брать коммит мессадж до перевода строки
|
27
28
|
def message
|
28
29
|
@branch.gcommit.message
|
29
30
|
end
|
@@ -51,9 +52,18 @@ module Abak::Flow
|
|
51
52
|
@manager.git.push(origin, @branch)
|
52
53
|
end
|
53
54
|
|
54
|
-
def
|
55
|
+
def delete_on_remote
|
56
|
+
origin = @manager.repository.origin.repo
|
57
|
+
@manager.git.push(origin, ":#{@branch}")
|
58
|
+
end
|
59
|
+
|
60
|
+
def delete_on_local
|
61
|
+
@branch.delete
|
62
|
+
end
|
63
|
+
|
64
|
+
def pick_up_base_name(options = Hash.new)
|
55
65
|
mappable? ? MAPPING[folder]
|
56
|
-
: name
|
66
|
+
: options.fetch(:or_use, name)
|
57
67
|
end
|
58
68
|
|
59
69
|
def pick_up_title
|
@@ -61,10 +71,20 @@ module Abak::Flow
|
|
61
71
|
: message
|
62
72
|
end
|
63
73
|
|
64
|
-
# TODO :
|
74
|
+
# TODO : Сделать настраевыемым трекер и формат задачи
|
75
|
+
# TODO : Смотреть в коммит мессадж и искать там Fixes/Closes/Close/Fix
|
65
76
|
def pick_up_body
|
66
|
-
|
67
|
-
|
77
|
+
head.mappable? &&
|
78
|
+
head.tracker_task? ? "http://jira.railsc.ru/browse/#{task}"
|
79
|
+
: I18n.t("commands.publish.nothing")
|
80
|
+
end
|
81
|
+
|
82
|
+
def develop?
|
83
|
+
@branch.name == DEVELOPMENT
|
84
|
+
end
|
85
|
+
|
86
|
+
def master?
|
87
|
+
@branch.name == MASTER
|
68
88
|
end
|
69
89
|
|
70
90
|
def hotfix?
|
@@ -15,6 +15,11 @@ en:
|
|
15
15
|
|
16
16
|
pull_request:
|
17
17
|
name: Pull Request
|
18
|
+
errors:
|
19
|
+
head_is_incorrect: Something wrong with 'head' branch
|
20
|
+
base_is_incorrect: Something wrong with 'base' branch
|
21
|
+
title_is_incorrect: Title is not specified
|
22
|
+
body_is_incorrect: Message body is not specified
|
18
23
|
|
19
24
|
commands:
|
20
25
|
checkup:
|
@@ -30,3 +35,8 @@ en:
|
|
30
35
|
requesting: "Creating pull request %{branch} → %{upstream}"
|
31
36
|
updating: "Updating %{branch} → %{upstream}"
|
32
37
|
nothing: I have nothing to say ...
|
38
|
+
done:
|
39
|
+
fail: Something goes wrong!
|
40
|
+
deleting: "Deleting %{branch} in %{upstream}"
|
41
|
+
errors:
|
42
|
+
branch_is_incorrect: "You can't delete %{branch}"
|
@@ -15,6 +15,11 @@ ru:
|
|
15
15
|
|
16
16
|
pull_request:
|
17
17
|
name: Пулл реквест
|
18
|
+
errors:
|
19
|
+
head_is_incorrect: Что-то не так с 'head' веткой
|
20
|
+
base_is_incorrect: Что-то не так с 'base' веткой
|
21
|
+
title_is_incorrect: Не указан заголовок
|
22
|
+
body_is_incorrect: Не указано содержание
|
18
23
|
|
19
24
|
commands:
|
20
25
|
checkup:
|
@@ -30,3 +35,8 @@ ru:
|
|
30
35
|
requesting: "Создание пулл реквеста %{branch} → %{upstream}"
|
31
36
|
updating: "Обновление %{branch} → %{upstream}"
|
32
37
|
nothing: Мне нечего добавить ...
|
38
|
+
done:
|
39
|
+
fail: Что-то пошло не так!
|
40
|
+
deleting: "Удаление %{branch} из %{upstream}"
|
41
|
+
errors:
|
42
|
+
branch_is_incorrect: "Вы не можете удалить %{branch}"
|
@@ -24,7 +24,7 @@ module Abak::Flow
|
|
24
24
|
fact(:head_is_incorrect) { not @head.valid? }
|
25
25
|
fact(:base_is_incorrect) { not @base.valid? }
|
26
26
|
fact(:title_is_incorrect) { @title.empty? }
|
27
|
-
fact(:body_is_incorrect) { @body.empty? }
|
27
|
+
fact(:body_is_incorrect) { @head.tracker_task? ? @body.empty? : false }
|
28
28
|
|
29
29
|
rule([:head_is_incorrect]) { @errors << I18n.t("pull_request.errors.head_is_incorrect") }
|
30
30
|
rule([:base_is_incorrect]) { @errors << I18n.t("pull_request.errors.base_is_incorrect") }
|
data/lib/abak-flow/request.rb
CHANGED
@@ -9,20 +9,17 @@ module Abak::Flow
|
|
9
9
|
|
10
10
|
default_command :help
|
11
11
|
|
12
|
+
# TODO : Заменить команды классами
|
12
13
|
command :checkup do |c|
|
13
14
|
c.syntax = "git request checkup"
|
14
15
|
c.description = "Проверить все ли настроено для работы с github и удаленными репозиториями"
|
15
16
|
|
16
17
|
c.action do |args, options|
|
17
18
|
m = Manager.new
|
18
|
-
v = Visitor.new(m.configuration, m.repository, call: :ready?,
|
19
|
+
v = Visitor.new(m.configuration, m.repository, call: :ready?, inspect: :errors)
|
20
|
+
v.exit_on_fail(:checkup, 1)
|
19
21
|
|
20
|
-
|
21
|
-
say ANSI.green { I18n.t("commands.checkup.success") }
|
22
|
-
else
|
23
|
-
say ANSI.red { I18n.t("commands.checkup.fail") }
|
24
|
-
say ANSI.yellow { v.output }
|
25
|
-
end
|
22
|
+
say ANSI.green { I18n.t("commands.checkup.success") }
|
26
23
|
end
|
27
24
|
end # command :checkup
|
28
25
|
|
@@ -34,16 +31,9 @@ module Abak::Flow
|
|
34
31
|
c.option "--head STRING", String, "Имя ветки которую нужно сравнить"
|
35
32
|
|
36
33
|
c.action do |args, options|
|
37
|
-
# TODO : Вот это дубль, хочется его как-то более красиво
|
38
34
|
m = Manager.new
|
39
|
-
v = Visitor.new(m.configuration, m.repository, call: :ready?,
|
40
|
-
|
41
|
-
unless v.ready?
|
42
|
-
say ANSI.red { I18n.t("commands.compare.fail") }
|
43
|
-
say ANSI.yellow { v.output }
|
44
|
-
|
45
|
-
exit 1
|
46
|
-
end
|
35
|
+
v = Visitor.new(m.configuration, m.repository, call: :ready?, inspect: :errors)
|
36
|
+
v.exit_on_fail(:compare, 1)
|
47
37
|
|
48
38
|
current = m.git.current_branch
|
49
39
|
head = Branch.new(options.head || current, m)
|
@@ -81,20 +71,12 @@ module Abak::Flow
|
|
81
71
|
base = Branch.new(options.base || head.pick_up_base_name, m)
|
82
72
|
|
83
73
|
title = options.title || head.pick_up_title
|
84
|
-
body
|
85
|
-
options.body || (head.mappable? ? nil : I18n.t("commands.publish.nothing")),
|
86
|
-
head.pick_up_body
|
87
|
-
].compact * "\n\n"
|
74
|
+
body = options.body || head.pickup_up_body
|
88
75
|
|
89
76
|
p = PullRequest.new({base: base, head: head, title: title, body: body}, m)
|
90
|
-
v = Visitor.new(m.configuration, m.repository, p, call: :ready?, look_for: :errors)
|
91
|
-
|
92
|
-
unless v.ready?
|
93
|
-
say ANSI.red { I18n.t("commands.publish.fail") }
|
94
|
-
say ANSI.yellow { v.output }
|
95
77
|
|
96
|
-
|
97
|
-
|
78
|
+
v = Visitor.new(m.configuration, m.repository, p, call: :ready?, inspect: :errors)
|
79
|
+
v.exit_on_fail(:publish, 1)
|
98
80
|
|
99
81
|
say ANSI.white {
|
100
82
|
I18n.t("commands.publish.updating",
|
@@ -108,15 +90,55 @@ module Abak::Flow
|
|
108
90
|
branch: ANSI.bold { "#{m.repository.origin.owner}:#{head}" },
|
109
91
|
upstream: ANSI.bold { "#{m.repository.upstream.owner}:#{base}" }) }
|
110
92
|
|
111
|
-
v = Visitor.new(p, call: :publish,
|
112
|
-
|
113
|
-
say ANSI.green { I18n.t("commands.publish.success", link: p.link) }
|
114
|
-
else
|
115
|
-
say ANSI.red { I18n.t("commands.publish.fail") }
|
116
|
-
say ANSI.yellow { v.output }
|
93
|
+
v = Visitor.new(p, call: :publish, inspect: :errors)
|
94
|
+
v.exit_on_fail(:publish, 2)
|
117
95
|
|
118
|
-
|
119
|
-
end
|
96
|
+
say ANSI.green { I18n.t("commands.publish.success", link: p.link) }
|
120
97
|
end
|
121
98
|
end # command :publish
|
99
|
+
|
100
|
+
command :done do |c|
|
101
|
+
c.syntax = "git request done"
|
102
|
+
c.description = "Удалить ветки (local и origin) в которых велась работа"
|
103
|
+
|
104
|
+
c.action do |args, options|
|
105
|
+
m = Manager.new
|
106
|
+
v = Visitor.new(m.configuration, m.repository, call: :ready?, inspect: :errors)
|
107
|
+
v.exit_on_fail(:done, 1)
|
108
|
+
|
109
|
+
branch = Branch.new(m.git.current_branch, m)
|
110
|
+
|
111
|
+
if branch.develop? || branch.master?
|
112
|
+
say ANSI.red {
|
113
|
+
I18n.t("commands.done.errors.branch_is_incorrect",
|
114
|
+
branch: ANSI.bold { branch }) }
|
115
|
+
exit 2
|
116
|
+
end
|
117
|
+
|
118
|
+
say ANSI.white {
|
119
|
+
I18n.t("commands.done.deleting",
|
120
|
+
branch: ANSI.bold { branch },
|
121
|
+
upstream: ANSI.bold { "#{m.repository.origin}" }) }
|
122
|
+
|
123
|
+
# FIXME : Исправить молчаливую ситуацию
|
124
|
+
# Возможно стоит предупредить о ее отсутствии
|
125
|
+
branch.delete_on_remote rescue nil
|
126
|
+
|
127
|
+
say ANSI.white {
|
128
|
+
I18n.t("commands.done.deleting",
|
129
|
+
branch: ANSI.bold { branch },
|
130
|
+
upstream: ANSI.bold { "working tree" }) }
|
131
|
+
|
132
|
+
# TODO : Добавить проверку, что ветка,
|
133
|
+
# в которую надо попасть (master/develop)
|
134
|
+
# существует
|
135
|
+
|
136
|
+
# TODO : Быть может стоит вынести это в настройки
|
137
|
+
# и позволить выбирать, куда отправлять
|
138
|
+
# при удалении ветки, а по умолчанию использовать master
|
139
|
+
m.git.checkout(
|
140
|
+
branch.pick_up_base_name(or_use: Branch::DEVELOPMENT))
|
141
|
+
branch.delete_on_local
|
142
|
+
end
|
143
|
+
end # command :done
|
122
144
|
end
|
data/lib/abak-flow/version.rb
CHANGED
data/lib/abak-flow/visitor.rb
CHANGED
@@ -7,7 +7,7 @@ module Abak::Flow
|
|
7
7
|
|
8
8
|
@objects = args
|
9
9
|
@call = options.fetch(:call)
|
10
|
-
@
|
10
|
+
@inspect = options.fetch(:inspect)
|
11
11
|
|
12
12
|
@asked = false
|
13
13
|
end
|
@@ -23,11 +23,11 @@ module Abak::Flow
|
|
23
23
|
ready? unless asked?
|
24
24
|
|
25
25
|
@objects.map do |o|
|
26
|
-
next if o.send(@
|
26
|
+
next if o.send(@inspect).empty?
|
27
27
|
|
28
28
|
info = ""
|
29
29
|
name = o.respond_to?(:display_name) ? o.display_name : o.class.name
|
30
|
-
o.send(@
|
30
|
+
o.send(@inspect).each_with_index do |inf, idx|
|
31
31
|
info << "\n #{idx + 1}. #{inf}"
|
32
32
|
end
|
33
33
|
|
@@ -35,6 +35,15 @@ module Abak::Flow
|
|
35
35
|
end * "\n"
|
36
36
|
end
|
37
37
|
|
38
|
+
def exit_on_fail(command, code = 1)
|
39
|
+
return if ready?
|
40
|
+
|
41
|
+
say ANSI.red { I18n.t("commands.#{command}.fail") }
|
42
|
+
say ANSI.yellow { output }
|
43
|
+
|
44
|
+
exit(code)
|
45
|
+
end
|
46
|
+
|
38
47
|
private
|
39
48
|
def asked?
|
40
49
|
@asked
|
metadata
CHANGED
@@ -1,99 +1,128 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: abak-flow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease:
|
5
|
+
version: 1.0.2
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Strech (aka Sergey Fedorov)
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2014-02-10 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
15
|
+
name: octokit
|
14
16
|
version_requirements: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
15
18
|
requirements:
|
16
19
|
- - ~>
|
17
20
|
- !ruby/object:Gem::Version
|
18
21
|
version: 1.19.0
|
19
|
-
type: :runtime
|
20
|
-
prerelease: false
|
21
|
-
name: octokit
|
22
22
|
requirement: !ruby/object:Gem::Requirement
|
23
|
+
none: false
|
23
24
|
requirements:
|
24
25
|
- - ~>
|
25
26
|
- !ruby/object:Gem::Version
|
26
27
|
version: 1.19.0
|
28
|
+
type: :runtime
|
29
|
+
prerelease: false
|
27
30
|
- !ruby/object:Gem::Dependency
|
31
|
+
name: faraday
|
28
32
|
version_requirements: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
29
34
|
requirements:
|
30
|
-
- -
|
35
|
+
- - '='
|
31
36
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
37
|
+
version: 0.8.9
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - '='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.8.9
|
33
44
|
type: :runtime
|
34
45
|
prerelease: false
|
46
|
+
- !ruby/object:Gem::Dependency
|
35
47
|
name: git
|
48
|
+
version_requirements: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.2.5
|
36
54
|
requirement: !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
37
56
|
requirements:
|
38
57
|
- - ~>
|
39
58
|
- !ruby/object:Gem::Version
|
40
59
|
version: 1.2.5
|
60
|
+
type: :runtime
|
61
|
+
prerelease: false
|
41
62
|
- !ruby/object:Gem::Dependency
|
63
|
+
name: commander
|
42
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
43
66
|
requirements:
|
44
67
|
- - ! '>='
|
45
68
|
- !ruby/object:Gem::Version
|
46
69
|
version: 4.1.3
|
47
|
-
type: :runtime
|
48
|
-
prerelease: false
|
49
|
-
name: commander
|
50
70
|
requirement: !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
51
72
|
requirements:
|
52
73
|
- - ! '>='
|
53
74
|
- !ruby/object:Gem::Version
|
54
75
|
version: 4.1.3
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
55
78
|
- !ruby/object:Gem::Dependency
|
79
|
+
name: ruler
|
56
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
57
82
|
requirements:
|
58
83
|
- - ! '>='
|
59
84
|
- !ruby/object:Gem::Version
|
60
85
|
version: 1.4.2
|
61
|
-
type: :runtime
|
62
|
-
prerelease: false
|
63
|
-
name: ruler
|
64
86
|
requirement: !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
65
88
|
requirements:
|
66
89
|
- - ! '>='
|
67
90
|
- !ruby/object:Gem::Version
|
68
91
|
version: 1.4.2
|
92
|
+
type: :runtime
|
93
|
+
prerelease: false
|
69
94
|
- !ruby/object:Gem::Dependency
|
95
|
+
name: i18n
|
70
96
|
version_requirements: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
71
98
|
requirements:
|
72
99
|
- - ! '>='
|
73
100
|
- !ruby/object:Gem::Version
|
74
101
|
version: 0.6.1
|
75
|
-
type: :runtime
|
76
|
-
prerelease: false
|
77
|
-
name: i18n
|
78
102
|
requirement: !ruby/object:Gem::Requirement
|
103
|
+
none: false
|
79
104
|
requirements:
|
80
105
|
- - ! '>='
|
81
106
|
- !ruby/object:Gem::Version
|
82
107
|
version: 0.6.1
|
108
|
+
type: :runtime
|
109
|
+
prerelease: false
|
83
110
|
- !ruby/object:Gem::Dependency
|
111
|
+
name: ansi
|
84
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
85
114
|
requirements:
|
86
115
|
- - ! '>='
|
87
116
|
- !ruby/object:Gem::Version
|
88
117
|
version: 1.4.3
|
89
|
-
type: :runtime
|
90
|
-
prerelease: false
|
91
|
-
name: ansi
|
92
118
|
requirement: !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
93
120
|
requirements:
|
94
121
|
- - ! '>='
|
95
122
|
- !ruby/object:Gem::Version
|
96
123
|
version: 1.4.3
|
124
|
+
type: :runtime
|
125
|
+
prerelease: false
|
97
126
|
description: Простой набор правил и комманд, заточеных для работы в git-flow с использование
|
98
127
|
в качестве удаленного репозитория github
|
99
128
|
email:
|
@@ -133,26 +162,38 @@ files:
|
|
133
162
|
- spec/abak-flow/system_spec.rb
|
134
163
|
- spec/spec_helper.rb
|
135
164
|
homepage: https://github.com/Strech/abak-flow
|
136
|
-
licenses:
|
137
|
-
|
165
|
+
licenses:
|
166
|
+
- MIT
|
138
167
|
post_install_message:
|
139
168
|
rdoc_options: []
|
140
169
|
require_paths:
|
141
170
|
- lib
|
142
171
|
required_ruby_version: !ruby/object:Gem::Requirement
|
172
|
+
none: false
|
143
173
|
requirements:
|
144
174
|
- - ! '>='
|
145
175
|
- !ruby/object:Gem::Version
|
146
176
|
version: '0'
|
147
177
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
|
+
none: false
|
148
179
|
requirements:
|
149
180
|
- - ! '>='
|
150
181
|
- !ruby/object:Gem::Version
|
151
182
|
version: '0'
|
152
183
|
requirements: []
|
153
184
|
rubyforge_project: abak-flow
|
154
|
-
rubygems_version:
|
185
|
+
rubygems_version: 1.8.25
|
155
186
|
signing_key:
|
156
|
-
specification_version:
|
187
|
+
specification_version: 3
|
157
188
|
summary: Совмещение 2-х подходов разработки Git-flow & Github-flow
|
158
|
-
test_files:
|
189
|
+
test_files:
|
190
|
+
- spec/abak-flow/branch_spec.rb
|
191
|
+
- spec/abak-flow/branches_spec.rb
|
192
|
+
- spec/abak-flow/configuration_spec.rb
|
193
|
+
- spec/abak-flow/git_spec.rb
|
194
|
+
- spec/abak-flow/github_client_spec.rb
|
195
|
+
- spec/abak-flow/messages_spec.rb
|
196
|
+
- spec/abak-flow/project_spec.rb
|
197
|
+
- spec/abak-flow/pull_request_spec.rb
|
198
|
+
- spec/abak-flow/system_spec.rb
|
199
|
+
- spec/spec_helper.rb
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
MDFkNDI2YTZiMTk4Y2Q4YTQxNzlmMzc3MGMzOGNmOTk5ODg3ZWM3Nw==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YjMxMzFkNjQ1MWNlMTZkZjMxMmY5ZDZkMGYwYzk2NmYyNzZjNTQ2Zg==
|
7
|
-
!binary "U0hBNTEy":
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
ZWI2OTM3ZTlmY2I4NWE0NTUxMDYzODY2OTBjMDZmZDQ4Yzk5NjFjZmM4Y2U3
|
10
|
-
YmM0NjE2MDFkM2M2NjRjNzE5MTg3MmU1ODJiZjI4OGE3ZDAzNjAxMzNhYzMx
|
11
|
-
NWRhYmU0YmVhZTRmMTY0YmZiNDRiOTQyYjY3YTk1OGY0Y2EzZDA=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
ODEwY2Y3YWQyNzc5NzYzMmJjMzE4MDI5MTYxNjJhMDY3MTM5NGIyM2E4NmMz
|
14
|
-
MmZiMzhkYTdlOWQwN2QxOGIyN2MwNDMyNWJmN2NjZWJhNDRjNzE5NWExNzUx
|
15
|
-
NWEzZTdiMGNkMzI3ZDc4Yjg0ZDhhNTUyOGNkMTdkMjdiODBiNTc=
|