trellish 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/bin/trellish CHANGED
@@ -23,7 +23,8 @@ end
23
23
  Trellish.configure(
24
24
  trello_api_key: config_file['trello_api_key'],
25
25
  trello_oauth_secret: config_file['trello_oauth_secret'],
26
- trello_oauth_token: config_file['trello_oauth_token'])
26
+ trello_oauth_token: config_file['trello_oauth_token'],
27
+ github_oauth_token: config_file['github_oauth_token'])
27
28
 
28
29
  card = Trellish::Card.new(ARGV[0])
29
30
  card.finish
data/lib/trellish.rb CHANGED
@@ -10,7 +10,8 @@ module Trellish
10
10
  @config = {
11
11
  trello_api_key: 'TRELLO_API_KEY',
12
12
  trello_oauth_secret: 'TRELLO_OAUTH_SECRET',
13
- trello_oauth_token: 'TRELLO_OAUTH_TOKEN'
13
+ trello_oauth_token: 'TRELLO_OAUTH_TOKEN',
14
+ github_oauth_token: 'GITHUB_OAUTH_TOKEN'
14
15
  }
15
16
 
16
17
  @valid_config_keys = @config.keys
data/lib/trellish/card.rb CHANGED
@@ -10,23 +10,13 @@ module Trellish
10
10
  @card = Trello::Card.find(parse_card_id(card_id_or_url))
11
11
  end
12
12
 
13
- def add_branch_link
14
- @card.add_comment(github_branch_url)
15
- end
16
-
17
- def add_merge_to_master_item
18
- checklist = @card.checklists.first
19
- if checklist.nil?
20
- new_checklist = Checklist.create(name: 'Checklist', board_id: @card.board_id)
21
- @card.add_checklist(new_checklist)
22
- checklist = @card.refresh!.checklists.first
23
- end
24
- checklist.add_item('Merge to master')
13
+ def add_pull_request_link
14
+ @card.description = "[Pull Request] (#{github_pull_request_url})\n\n#{@card.description}"
15
+ @card.save
25
16
  end
26
17
 
27
18
  def finish
28
- add_branch_link
29
- add_merge_to_master_item
19
+ add_pull_request_link
30
20
  remove_all
31
21
  move_to_qa
32
22
  end
data/lib/trellish/git.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'faraday'
2
+
1
3
  module Trellish
2
4
  module Git
3
5
 
@@ -5,24 +7,44 @@ module Trellish
5
7
  @current_git_branch ||= `cat .git/head`.split('/').last
6
8
  end
7
9
 
8
- def github_branch_url
9
- @github_branch_url ||= "https://github.com/#{git_repository_owner}/#{git_repository_name}/tree/#{current_git_branch}"
10
+ def github_pull_request_url
11
+ return @github_pull_request_url if @github_pull_request_url
12
+ conn = Faraday.new(:url => 'https://api.github.com', :ssl => {:ca_file => '/System/Library/OpenSSL/certs/ca-certificates.crt'}) do |faraday|
13
+ faraday.request :url_encoded
14
+ faraday.adapter ::Faraday.default_adapter
15
+ end
16
+ response = conn.post do |req|
17
+ req.url "/repos/#{git_repository_owner}/#{git_repository_name}/pulls"
18
+ req.headers['Content-Type'] = 'application/json'
19
+ req.headers['Authorization'] = "token #{Trellish.config[:github_oauth_token]}"
20
+ req.body = %Q|{
21
+ "title": "#{pull_request_title}",
22
+ "base": "master",
23
+ "head": "#{git_repository_owner}:#{current_git_branch}"
24
+ }|.gsub(/\s/, '')
25
+ true
26
+ end
27
+ @github_pull_request_url = JSON.parse(response.body)["html_url"]
10
28
  end
11
29
 
12
- def remote_url
13
- @remote_url ||= `git config remote.origin.url`
30
+ def git_repository_name
31
+ @git_repository_name ||= matches[2]
32
+ end
33
+
34
+ def git_repository_owner
35
+ @git_repository_owner ||= matches[1]
14
36
  end
15
37
 
16
38
  def matches
17
39
  @matches ||= matches = remote_url.match(%r|^git@github.com:([^/]*)\/([^\.]*)\.git$|)
18
40
  end
19
41
 
20
- def git_repository_owner
21
- @git_repository_owner ||= matches[1]
42
+ def pull_request_title
43
+ @pull_request_title ||= `git show -s --format=%s head`
22
44
  end
23
45
 
24
- def git_repository_name
25
- @git_repository_name ||= matches[2]
46
+ def remote_url
47
+ @remote_url ||= `git config remote.origin.url`
26
48
  end
27
49
 
28
50
  end
@@ -1,3 +1,3 @@
1
1
  module Trellish
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/trellish.example.yml CHANGED
@@ -1,7 +1,16 @@
1
1
  # Sign in to Trello and go here https://trello.com/1/appKey/generate.
2
2
  # Copy "Key" from that page to tello_api_key.
3
3
  trello_api_key: numbers_and_letters_and_stuff
4
+
4
5
  # Copy "Secret (for OAuth signing)" from that page to tello_oauth_secret.
5
6
  trello_oauth_secret: numbers_and_letters_and_stuff
6
- # Visit http://trello.com/1/connect?key=TRELLO_API_KEY_FROM_ABOVE&name=Trellish&response_type=token&scope=read,write&expiration=never and copy the token to trello_oauth_token.
7
+
8
+ # Visit
9
+ # http://trello.com/1/connect?key=TRELLO_API_KEY_FROM_ABOVE&name=Trellish&response_type=token&scope=read,write&expiration=never
10
+ # and copy the token to trello_oauth_token here.
7
11
  trello_oauth_token: numbers_and_letters_and_stuff
12
+
13
+ # Run:
14
+ # curl -u 'username' -d '{"scopes":["repo"],"note":"Trellish"}' https://api.github.com/authorizations
15
+ # and copy the token parameter from the response here.
16
+ github_oauth_token: numbers_and_letters_and_stuff
data/trellish.gemspec CHANGED
@@ -4,7 +4,7 @@ require File.expand_path('../lib/trellish/version', __FILE__)
4
4
  Gem::Specification.new do |gem|
5
5
  gem.authors = ["Wes Gibbs"]
6
6
  gem.email = ["wesgibbs@gmail.com"]
7
- gem.description = %q{Annotate Trello cards with git branch, add 'Merge to master' checkbox, remove yourself and move the card to the QA list}
7
+ gem.description = %q{Create a pull request, put link to it on the card, remove everyone and move the card to the QA list}
8
8
  gem.summary = %q{Finish a Trello card}
9
9
  gem.homepage = "http://rubygems.org/gems/trellish"
10
10
 
@@ -15,5 +15,6 @@ Gem::Specification.new do |gem|
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = Trellish::VERSION
17
17
 
18
+ gem.add_dependency 'oauth2', '>=0.7.0'
18
19
  gem.add_dependency 'ruby-trello-wgibbs', '>=0.4.4'
19
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trellish
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,8 +9,24 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-03 00:00:00.000000000 Z
12
+ date: 2012-10-02 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: oauth2
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.7.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.7.0
14
30
  - !ruby/object:Gem::Dependency
15
31
  name: ruby-trello-wgibbs
16
32
  requirement: !ruby/object:Gem::Requirement
@@ -27,8 +43,8 @@ dependencies:
27
43
  - - ! '>='
28
44
  - !ruby/object:Gem::Version
29
45
  version: 0.4.4
30
- description: Annotate Trello cards with git branch, add 'Merge to master' checkbox,
31
- remove yourself and move the card to the QA list
46
+ description: Create a pull request, put link to it on the card, remove everyone and
47
+ move the card to the QA list
32
48
  email:
33
49
  - wesgibbs@gmail.com
34
50
  executables: