module Atlassian::Stash::Git

Constants

DEFAULT_REMOTE

Public Instance Methods

create_git_alias() click to toggle source
# File lib/atlassian/stash/git.rb, line 56
def create_git_alias
  %x(git config --global alias.create-pull-request "\!sh -c 'stash pull-request \\$0 \\$@'")
end
ensure_within_git!() { || ... } click to toggle source
# File lib/atlassian/stash/git.rb, line 48
def ensure_within_git!
  if is_in_git_repository?
    yield
  else
    raise "fatal: Not a git repository"
  end
end
get_branches() click to toggle source
# File lib/atlassian/stash/git.rb, line 13
def get_branches()
  all = %x{git branch --no-color -a}.gsub("*","").gsub(" ", "").split("\n")
  all.select{|x| not x.include? "->"}
end
get_current_branch() click to toggle source
# File lib/atlassian/stash/git.rb, line 9
def get_current_branch
  %x(git symbolic-ref HEAD)[/refs\/heads\/(.*)/, 1]
end
get_remote(branch = nil) click to toggle source
# File lib/atlassian/stash/git.rb, line 31
def get_remote(branch = nil)
  remote_branch = %x(git rev-parse --abbrev-ref --symbolic-full-name #{branch}@{u} 2>/dev/null)
  remote = remote_branch.split('/').first
  remote == "" ? nil : remote
end
get_remote_url(remote=nil) click to toggle source
# File lib/atlassian/stash/git.rb, line 37
def get_remote_url(remote=nil)
  remotes = get_remotes
  return nil if remotes.empty?

  remote = DEFAULT_REMOTE if remote.nil? || remote.empty?

  origin = remotes.split("\n").collect { |r| r.strip }.grep(/^#{remote}.*\(push\)$/).first
  return nil if origin.nil?
  URI.extract(origin).first
end
get_remotes() click to toggle source
# File lib/atlassian/stash/git.rb, line 27
def get_remotes
  %x(git remote -v)
end
get_repo_root_directory() click to toggle source
# File lib/atlassian/stash/git.rb, line 60
def get_repo_root_directory
  %x(git rev-parse --show-toplevel)
end
is_branch?(match) click to toggle source
# File lib/atlassian/stash/git.rb, line 18
def is_branch?(match)
  all = get_branches
  not all.select{|x| x == match}.empty?
end
is_in_git_repository?() click to toggle source
# File lib/atlassian/stash/git.rb, line 23
def is_in_git_repository?
  system('git rev-parse')
end