lib/abak-flow/request.rb in abak-flow-0.1.3 vs lib/abak-flow/request.rb in abak-flow-0.1.4

- old
+ new

@@ -14,18 +14,20 @@ # Опции нужны, если человек хочет запушить ветку, с именем отличным от стандарта c.option '--head STRING', String, 'Имя ветки, которую нужно принять в качестве изменений' c.option '--base STRING', String, 'Имя ветки, в которую нужно принять изменения' c.action do |args, options| - repository = Hub::Commands.send :local_repo - current_branch = repository.current_branch.short_name - request_rules = { - :feature => :develop, - :hotfix => :master - } + request_rules = {:feature => :develop, :hotfix => :master} jira_browse_url = 'http://jira.dev.apress.ru/browse/' + repository = Hub::Commands.send :local_repo + current_branch = repository.current_branch.short_name + remote_branch, task = current_branch.split('/').push(nil).map(&:to_s) + + title = args.first.to_s.strip + title = task if task =~ /^\w+\-\d{1,}$/ && title.empty? + # Проверим, что мы не в мастере или девелопе if [:master, :develop].include? current_branch.to_sym say 'Нельзя делать pull request из меток master или develop' exit end @@ -35,18 +37,17 @@ say 'Необходимо настроить репозиторий upstream (главный) для текущего пользователя' say '=> git remote add upstream https://Developer@github.com/abak-press/sample.git' exit end - if args.first.to_s.empty? - say 'Пожалуйста, укажите в заголовке номер вашей задачи, например так:' - say '=> git request "PC-001"' + if title.empty? + say 'Пожалуйста, укажите что-нибудь для заголовка pull request, например номер вашей задачи вот так:' + say '=> git request publish "PC-001"' exit end # Расставим ветки согласно правилам - remote_branch, task = current_branch.split('/').push(nil).map(&:to_s) head = "#{repository.repo_owner}:#{current_branch}" base = "#{repository.remote_by_name('upstream').project.owner}:#{request_rules.fetch(remote_branch.to_sym, '')}" head = options.head unless options.head.nil? base = options.base unless options.base.nil? @@ -55,11 +56,11 @@ # @TODO Может быть лучше достать дерективу конфига origin? say "=> Обновляю ветку #{current_branch} на origin" Hub::Runner.execute('push', repository.main_project.remote.name, current_branch) # Запостим pull request на upstream - command_options = ['pull-request', args.first, '-b', base, '-h', head] + command_options = ['pull-request', title, '-b', base, '-h', head] command_options |= ['-d', jira_browse_url + task] if task =~ /^\w+\-\d{1,}$/ say '=> Делаю pull request на upstream' say Hub::Runner.execute(*command_options) end @@ -93,11 +94,11 @@ say 'Необходимо указать имя задачи, а лучше всего ее номер из jira' exit end unless task =~ /^\w+\-\d{1,}$/ - say '=> Вы приняли верное решение :)' && exit unless agree("Лучше всего завести задачу с именем примерно такого формата PC-001, может попробуем заного? [yes/no/y/n]:") + say '=> Вы приняли верное решение :)' && exit if agree("Лучше всего завести задачу с именем примерно такого формата PC-001, может попробуем заного? [y/n]:") end Hub::Runner.execute('flow', 'feature', 'start', task) end end @@ -113,11 +114,11 @@ say 'Необходимо указать имя задачи, а лучше всего ее номер из jira' exit end unless task =~ /^\w+\-\d{1,}$/ - say '=> Вы приняли верное решение :)' && exit unless agree("Лучше всего завести задачу с именем примерно такого формата PC-001, может попробуем заного? [yes/no/y/n]:") + say '=> Вы приняли верное решение :)' && exit if agree("Лучше всего завести задачу с именем примерно такого формата PC-001, может попробуем заного? [y/n]:") end Hub::Runner.execute('flow', 'hotfix', 'start', task) end end @@ -141,10 +142,10 @@ type = options.local ? :local : :origin end warning = "Внимание! Alarm! Danger! Achtung\nЕсли вы удалите ветку на удаленном репозитории, а ваш pull request еще не приняли, вы рискуете потерять проделанную работу.\nВы уверены, что хотите продолжить?" if [:all, :origin].include?(type) - say '=> Вы приняли верное решение :)' && exit unless agree("#{warning} [yes/no/y/n]:") + say '=> Вы приняли верное решение :)' && exit unless agree("#{warning} [y/n]:") end # @TODO Проверку на наличие ветки на origin if [:all, :origin].include? type say "=> Удаляю ветку #{branch} на origin" \ No newline at end of file