abak-flow 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +63 -5
- data/VERSION +1 -1
- data/lib/abak-flow/request.rb +42 -1
- data/lib/abak-flow/version.rb +1 -1
- metadata +6 -6
data/README.md
CHANGED
@@ -3,12 +3,12 @@ Abak-flow
|
|
3
3
|
Нет, это не новая идеология ведения проекта, это всего лишь набор утилит которые помогают связать использование git-flow и github
|
4
4
|
|
5
5
|
# Концепция
|
6
|
-
Идеология git-flow использует
|
6
|
+
Идеология git-flow использует следующий набор веток:
|
7
7
|
|
8
8
|
* *master* - всегда пригодна для развертывания
|
9
9
|
* *develop* - основная ветка разработки
|
10
10
|
* *hotfix* - ветка для изменений которые попадут на продакшен сервер
|
11
|
-
* *feature* - ветки для крупных
|
11
|
+
* *feature* - ветки для крупных задач
|
12
12
|
|
13
13
|
Github-flow же наоборот ведет основную разработку в ветке master, но при этом master является пригодным для развертывания в любой момент.
|
14
14
|
|
@@ -22,13 +22,71 @@ Github-flow же наоборот ведет основную разработк
|
|
22
22
|
|
23
23
|
|
24
24
|
# Установка
|
25
|
-
|
25
|
+
|
26
|
+
$ gem install abak-flow
|
27
|
+
$ git config --global alias.request '!request'
|
28
|
+
$ git config --global github.user AwesomeCoder
|
29
|
+
$ git config --global github.token 0123456789yourf0123456789token
|
30
|
+
$ git remote add upstream git://github.com/anonimus/example.git
|
26
31
|
|
27
32
|
# С чего начать?
|
28
|
-
|
33
|
+
|
34
|
+
$ git request --help
|
29
35
|
|
30
36
|
# Примеры использования
|
31
|
-
|
37
|
+
### Самый простой способ начать новую задачу:
|
38
|
+
|
39
|
+
$ git checkout develop
|
40
|
+
$ git request feature
|
41
|
+
$ touch 'hello.txt' && echo 'Hello world!' > hello.txt
|
42
|
+
$ git commit -a -m 'Hello world commit'
|
43
|
+
$ git request publish
|
44
|
+
|
45
|
+
Теперь то же самое, только словами:
|
46
|
+
|
47
|
+
* Переключимся в ветку develop
|
48
|
+
* Abak-flow создаст ветку, пригодную для оформления pull request (правила именования и правила самого реквеста)
|
49
|
+
* Простое создание нового файла
|
50
|
+
* Git процедуры добавления своих изменений в репозиторий
|
51
|
+
* Затем публикация вашей ветки на вашем форке (если таковая уже есть, то просто обновление), затем оформление pull request из этой ветки в соответствующую правилам ветку на upstream (в данном случае это будет ветка develop)
|
52
|
+
|
53
|
+
Для задач, которые должны быть выполнены в виде hotfix принцип тот же:
|
54
|
+
|
55
|
+
$ git checkout master
|
56
|
+
$ git request hotfix
|
57
|
+
$ …
|
58
|
+
$ git request publish
|
59
|
+
|
60
|
+
*На самом деле переключаться на master или develop в самом начале вовсе не обязательно, этот шаг был приведен для пущей ясности*
|
61
|
+
|
62
|
+
### Обновление ветки на удаленном репозитории:
|
63
|
+
|
64
|
+
$ git checkout feature/TASK-001
|
65
|
+
$ git request update
|
66
|
+
|
67
|
+
### Завершение текущей задачи:
|
68
|
+
Вообще, завершать задачу лучше только после того, как ваш pull request был принят. Почему? На самом деле по ряду причин. По умолчанию эта команда удаляет как вашу текущую ветку с задачей в локальном репозитории и в добавок ко всему - на вашем удаленном репозитории (форке)
|
69
|
+
|
70
|
+
$ git co feature/TASK-001
|
71
|
+
$ git request done
|
72
|
+
|
73
|
+
Чтобы оставить какую либо ветку в живых возможно напрямую указать, какую копию ветки **удалить**, локальную или же удаленную (на origin)
|
74
|
+
|
75
|
+
$ git co feature/TASK-001
|
76
|
+
$ git request done --origin
|
77
|
+
|
78
|
+
Или же так
|
79
|
+
|
80
|
+
$ git co feature/TASK-001
|
81
|
+
$ git request done --local
|
82
|
+
|
83
|
+
### Маленькие хитрости
|
84
|
+
Если сразу правильно именовать ветки, т.е ветку с задачей создавать с именем, такого формата TASK-001, то, в описание pull request автоматически вставится ссылка на задачу в jira
|
85
|
+
|
86
|
+
### А помощь?
|
87
|
+
Многие команды имеют какие-то дополнительные опции. Но они нужны только в экзотических случаях. Но при любом раскладе подсказку и тонкий намек всегда можно получить воспользовавших такой командой:
|
88
|
+
|
89
|
+
$ git request done --help
|
32
90
|
|
33
91
|
# В заключении
|
34
92
|
Данный репозиторий и изложенные в нем идеи ни в коем случае не претендуют на идеал и совершенство. Это всего лишь узко заточенная комбинация гемов
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/lib/abak-flow/request.rb
CHANGED
@@ -57,7 +57,7 @@ module Abak::Flow
|
|
57
57
|
Hub::Runner.execute('push', repository.main_project.remote.name, current_branch)
|
58
58
|
|
59
59
|
# Запостим pull request на upstream
|
60
|
-
command_options = ['pull-request', args.first, '-b', base, '-h', head
|
60
|
+
command_options = ['pull-request', args.first, '-b', base, '-h', head]
|
61
61
|
command_options |= ['-d', jira_browse_url + task] if task =~ /^\w+\-\d{1,}$/
|
62
62
|
|
63
63
|
say '=> Делаю pull request на upstream'
|
@@ -82,6 +82,46 @@ module Abak::Flow
|
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
+
command :feature do |c|
|
86
|
+
c.syntax = 'git request feature <Название задачи>'
|
87
|
+
c.description = 'Создать ветку для выполнения задачи. Лучше всего, если название задачи, будет ее номером из jira'
|
88
|
+
|
89
|
+
c.action do |args, options|
|
90
|
+
task = args.shift.to_s
|
91
|
+
|
92
|
+
if task.empty?
|
93
|
+
say 'Необходимо указать имя задачи, а лучше всего ее номер из jira'
|
94
|
+
exit
|
95
|
+
end
|
96
|
+
|
97
|
+
unless task =~ /^\w+\-\d{1,}$/
|
98
|
+
say '=> Вы приняли верное решение :)' && exit unless agree("Лучше всего завести задачу с именем примерно такого формата PC-001, может попробуем заного? [yes/no/y/n]:")
|
99
|
+
end
|
100
|
+
|
101
|
+
Hub::Runner.execute('flow', 'feature', 'start', task)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
command :hotfix do |c|
|
106
|
+
c.syntax = 'git request hotfix <Название задачи>'
|
107
|
+
c.description = 'Создать ветку для выполнения bugfix задачи. Лучше всего, если название задачи, будет ее номером из jira'
|
108
|
+
|
109
|
+
c.action do |args, options|
|
110
|
+
task = args.shift.to_s
|
111
|
+
|
112
|
+
if task.empty?
|
113
|
+
say 'Необходимо указать имя задачи, а лучше всего ее номер из jira'
|
114
|
+
exit
|
115
|
+
end
|
116
|
+
|
117
|
+
unless task =~ /^\w+\-\d{1,}$/
|
118
|
+
say '=> Вы приняли верное решение :)' && exit unless agree("Лучше всего завести задачу с именем примерно такого формата PC-001, может попробуем заного? [yes/no/y/n]:")
|
119
|
+
end
|
120
|
+
|
121
|
+
Hub::Runner.execute('flow', 'hotfix', 'start', task)
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
85
125
|
command :done do |c|
|
86
126
|
c.syntax = 'git request done'
|
87
127
|
c.description = 'Завершить pull request. По умолчанию удаляются ветки как локальная (local), так и удаленная (origin)'
|
@@ -106,6 +146,7 @@ module Abak::Flow
|
|
106
146
|
say '=> Вы приняли верное решение :)' && exit unless agree("#{warning} [yes/no/y/n]:")
|
107
147
|
end
|
108
148
|
|
149
|
+
# @TODO Проверку на наличие ветки на origin
|
109
150
|
if [:all, :origin].include? type
|
110
151
|
say "=> Удаляю ветку #{branch} на origin"
|
111
152
|
Hub::Runner.execute('push', repository.main_project.remote.name, ':' + branch)
|
data/lib/abak-flow/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: abak-flow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
12
|
+
date: 2012-02-06 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: hub
|
16
|
-
requirement: &
|
16
|
+
requirement: &70312825724080 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70312825724080
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: commander
|
27
|
-
requirement: &
|
27
|
+
requirement: &70312825723660 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70312825723660
|
36
36
|
description: Простой набор правил и комманд, заточеных для работы в git-flow с использование
|
37
37
|
в качестве удаленного репозитория github
|
38
38
|
email:
|