ruby 根据分支名称创建一个提交消息,其中包含Pivotal故事的链接,并将其全部放在剪贴板上。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 根据分支名称创建一个提交消息,其中包含Pivotal故事的链接,并将其全部放在剪贴板上。相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env ruby
require 'pry-nav'

def pbcopy(input)
  str = input.to_s
  IO.popen('pbcopy', 'w') { |f| f << str }
  str
end

branch_name = `git rev-parse --abbrev-ref HEAD`.chomp

DIVIDERS = %r{[-|_|/|\/]}

parts = branch_name.match(/(?<initials>.+)#{DIVIDERS}(?<number>\d{5,})#{DIVIDERS}(?<description>.*)/)

if parts.nil?
  # Initials missing?
  parts = branch_name.match(/(?<number>\d{5,})#{DIVIDERS}(?<description>.*)/)
  INITIALS = 'CB'
end

begin
  INITIALS       ||= parts[:initials].split(DIVIDERS).join("/").upcase
  PIVOTAL_NUMBER = parts[:number]
  DESCRIPTION    = parts[:description].gsub(/#{DIVIDERS}/, ' ')
rescue
  exit(0)
end

commit_message = <<MSG
[#{INITIALS}][#{PIVOTAL_NUMBER}] #{DESCRIPTION}

Pivotal Story: https://www.pivotaltracker.com/story/show/#{PIVOTAL_NUMBER}
MSG

STDOUT << commit_message
pbcopy(commit_message)
puts(">>> Commit message is on the clipboard!")

以上是关于ruby 根据分支名称创建一个提交消息,其中包含Pivotal故事的链接,并将其全部放在剪贴板上。的主要内容,如果未能解决你的问题,请参考以下文章