Sha256: 096c4ca986c0d5b5b75cf8d031d56553c8b5c4eb4e37e2f60f2a05b619abe552

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents


module Atlassian
  module Stash
    module Git

      DEFAULT_REMOTE="origin"

      def get_current_branch
        %x(git symbolic-ref HEAD)[/refs\/heads\/(.*)/, 1]
      end

      def get_branches()
        %x{git branch -a}
      end

      def is_branch?(match)
        not get_branches.split().select{|x| x == match}.empty?
      end

      def is_in_git_repository?
        system('git rev-parse')
      end

      def get_remotes
        %x(git remote -v)
      end

      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

      def ensure_within_git!
        if is_in_git_repository?
          yield
        else
          raise "fatal: Not a git repository"
        end
      end

      def create_git_alias
        %x(git config --global alias.create-pull-request "\!sh -c 'stash pull-request \\$0'")
      end

      def get_repo_root_directory
        %x(git rev-parse --show-toplevel)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bpescatore-stash-0.3.2 lib/atlassian/stash/git.rb