Class: GitoriousMergeRequest
- Inherits:
-
Object
- Object
- GitoriousMergeRequest
- Defined in:
- lib/gitorious_merge_request.rb,
lib/gitorious_merge_request/version.rb
Constant Summary collapse
- Version =
'2.0.1'
Instance Method Summary collapse
- #cmd_checkout(opts) ⇒ Object
- #cmd_diff(opts) ⇒ Object
- #cmd_list(opts) ⇒ Object
- #cmd_new(opts) ⇒ Object
- #cmd_rm(opts) ⇒ Object
- #cmd_show(opts) ⇒ Object
- #login(opts) ⇒ Object
- #parse_code(code) ⇒ Object
- #show(mr) ⇒ Object
Instance Method Details
#cmd_checkout(opts) ⇒ Object
76 77 78 79 80 |
# File 'lib/gitorious_merge_request.rb', line 76 def cmd_checkout opts repo, id = parse_code opts[:code] mr = Gitorious::MergeRequest.new repo, id mr.checkout end |
#cmd_diff(opts) ⇒ Object
82 83 84 85 86 |
# File 'lib/gitorious_merge_request.rb', line 82 def cmd_diff opts repo, id = parse_code opts[:code] mr = Gitorious::MergeRequest.new repo, id mr.diff end |
#cmd_list(opts) ⇒ Object
67 68 69 70 71 72 73 74 |
# File 'lib/gitorious_merge_request.rb', line 67 def cmd_list opts repo, id = parse_code opts[:code] status = opts[:status] || '' list = Gitorious::MergeRequest.list repo, status list.each do |mr| puts "#{mr.id} from #{mr.username}: #{mr.summary}" end end |
#cmd_new(opts) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/gitorious_merge_request.rb', line 25 def cmd_new opts opts[:forked_branch] ||= Git.current_branch Trollop::die :summary, "must exist" unless opts[:summary] Trollop::die :forked, "must exist" unless opts[:forked_repo] Trollop::die :forked_branch, "must exist" unless opts[:forked_branch] Trollop::die :target, "must exist" unless opts[:target_repo] Trollop::die :target_branch, "must exist" unless opts[:target_branch] login opts puts "Opening merge request page" mr = Gitorious::MergeRequest.create opts puts "YOUR NEW MERGE REQUEST\n" show mr end |
#cmd_rm(opts) ⇒ Object
55 56 57 58 59 |
# File 'lib/gitorious_merge_request.rb', line 55 def cmd_rm opts repo, id = parse_code opts[:code] login opts Gitorious::MergeRequest.delete repo, id end |
#cmd_show(opts) ⇒ Object
61 62 63 64 65 |
# File 'lib/gitorious_merge_request.rb', line 61 def cmd_show opts repo, id = parse_code opts[:code] mr = Gitorious::MergeRequest.new repo, id show mr end |
#login(opts) ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/gitorious_merge_request.rb', line 16 def login opts Trollop::die :email, "must exist" unless opts[:email] email = opts[:email] password = ask('Password: '){ |q| q.echo = false } puts 'Login...' Gitorious.login email, password end |
#parse_code(code) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/gitorious_merge_request.rb', line 41 def parse_code code id = Integer(code) rescue nil id = nil if id.zero? if id or code.blank? repo = $origin_repo else raise 'Invalid code format' unless code =~ /(.+):(\d+)/ repo_or_remote, id = $1, $2.to_i repo = if (remote = Gitorious.remote_to_repo(repo_or_remote)) then remote else repo_or_remote end end [repo, id] end |
#show(mr) ⇒ Object
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/gitorious_merge_request.rb', line 88 def show mr #Requester: #{mr.requester} puts <<-EOS ID: #{mr.id} (#{Gitorious::MRUrl % {:repo => mr.target_repo, :id => mr.id}}) User: #{mr.username} (#{Gitorious::Host}/#{mr.username}) Summary: #{mr.summary} Proposal: #{mr.proposal} Fork: branch #{mr.forked_branch} of #{mr.forked_repo} (#{Gitorious::Host}/#{mr.forked_repo}) Target: branch #{mr.target_branch} of #{mr.target_repo} (#{Gitorious::Host}/#{mr.target_repo}) Ending commit: #{mr.ending_commit} Merge base SHA: #{mr.merge_base_sha} EOS end |