abak-flow 0.1.1 → 0.1.2

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.
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: