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 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
- $ git request help
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
1
+ 0.1.2
@@ -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, '-d']
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)
@@ -1,5 +1,5 @@
1
1
  module Abak
2
2
  module Flow
3
- VERSION = '0.1.1'
3
+ VERSION = '0.1.2'
4
4
  end
5
5
  end
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.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-04 00:00:00.000000000Z
12
+ date: 2012-02-06 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: hub
16
- requirement: &70178034266540 !ruby/object:Gem::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: *70178034266540
24
+ version_requirements: *70312825724080
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: commander
27
- requirement: &70178046022640 !ruby/object:Gem::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: *70178046022640
35
+ version_requirements: *70312825723660
36
36
  description: Простой набор правил и комманд, заточеных для работы в git-flow с использование
37
37
  в качестве удаленного репозитория github
38
38
  email: