class Celebrations::Git
Public Class Methods
new(env)
click to toggle source
Calls superclass method
Celebration::new
# File lib/release_party/celebrations/git.rb, line 7 def initialize(env) super env require 'grit' end
Public Instance Methods
commit_tracker_progress(env)
click to toggle source
# File lib/release_party/celebrations/git.rb, line 13 def commit_tracker_progress(env) # Go through each finished story id we've seen in the git repo # and deliver each story that is marked as finished env.finished_store_ids.each do |story_id| end end
load_git_progress(env)
click to toggle source
# File lib/release_party/celebrations/git.rb, line 21 def load_git_progress(env) repo = Grit::Repo.new(Dir.pwd) config = Grit::Config.new(repo) feature_branch = config.fetch('gitflow.prefix.feature', 'feature/') release_branch = config.fetch('gitflow.prefix.release', 'release/') puts "Feature branch: #{feature_branch}" puts "Release branch: #{release_branch}" # Find the last release latest_release = \ repo.commits('master').find do |commit| commit.message =~ /\AMerge branch '#{release_branch}(\d+)/ end latest_release_tag = $1 puts "Commit: #{latest_release} #{latest_release.message}" previous_release = \ repo.commits('master', 100).find do |commit| if commit.message =~ /\AMerge branch '#{release_branch}(\d+)/ latest_release_tag != $1 end end previous_release_tag = $1 puts "Commit: #{previous_release} #{previous_release.message}" env.finished_story_ids = repo.commits('develop').collect do |commit| $1 if commit.message =~ /\AMerge branch '#{feature_branch}(\d+)/ end.compact puts env.finished_story_ids end