github-trello 0.0.3 → 0.1.0
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/README.md +18 -3
- data/bin/trello-web +17 -1
- data/lib/github-trello/http.rb +4 -0
- data/lib/github-trello/server.rb +31 -5
- data/lib/github-trello/version.rb +1 -1
- metadata +8 -18
data/README.md
CHANGED
@@ -21,8 +21,23 @@ Go to https://trello.com/1/appKey/generate to get your key, then go to _https://
|
|
21
21
|
|
22
22
|
You can get the board id from the URL, for example https://trello.com/board/trello-development/4d5ea62fd76aa1136000000c the board id is _4d5ea62fd76aa1136000000ca_.
|
23
23
|
|
24
|
-
There are 3 actions you can configure to decide what happens to a card
|
24
|
+
There are 3 actions you can configure to decide what happens to a card, __on_start__ for case/card, __on_close__ for close/fix. __on_deploy__ requires an additional hookin to your deployment that you can read below.
|
25
25
|
|
26
|
-
|
26
|
+
Deployment
|
27
27
|
-
|
28
|
-
|
28
|
+
|
29
|
+
If you are moving your cards to a new list (such as "Live") after deployment, then you must use the __move_to__ option in __on_close__. Unlike __on_start__ or __on_close__, you must also specify the repo name for __move_to__.
|
30
|
+
|
31
|
+
You indicate a deploy happened through sending a POST request to __http://foobar.com:4000/deployed/[repo name]__. An example of a Capistrano deployment script:
|
32
|
+
|
33
|
+
require "net/https"
|
34
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
35
|
+
after "deploy:update" do
|
36
|
+
uri = URI("https://foobar.com:4000/deployed/foo-bar")
|
37
|
+
|
38
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
39
|
+
http.use_ssl = uri.scheme == "https"
|
40
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
41
|
+
http.request_post(uri.path, "")
|
42
|
+
end
|
43
|
+
end
|
data/bin/trello-web
CHANGED
@@ -14,8 +14,24 @@ Vegas::Runner.new(GithubTrello::Server, "trello-web", {
|
|
14
14
|
puts "[WARNING] No configuration found at #{path}."
|
15
15
|
puts "We've generated an example one for you, but you need to configure it still."
|
16
16
|
|
17
|
+
config = <<YAML
|
18
|
+
oauth_token: [token]
|
19
|
+
api_key: [key]
|
20
|
+
on_start:
|
21
|
+
move_to: [list id]
|
22
|
+
archive: true
|
23
|
+
on_close:
|
24
|
+
move_to: [list id]
|
25
|
+
archive: true
|
26
|
+
# See README for deployment usage
|
27
|
+
on_deploy:
|
28
|
+
move_to:
|
29
|
+
[repo name]: [list id]
|
30
|
+
archive: true
|
31
|
+
YAML
|
32
|
+
|
17
33
|
File.open(path, "w+") do |f|
|
18
|
-
f.write(
|
34
|
+
f.write(config)
|
19
35
|
end
|
20
36
|
|
21
37
|
exit
|
data/lib/github-trello/http.rb
CHANGED
@@ -20,6 +20,10 @@ module GithubTrello
|
|
20
20
|
http_request(:post, "/1/cards/#{card_id}/actions/comments", :body => "text=#{CGI::escape(comment)}")
|
21
21
|
end
|
22
22
|
|
23
|
+
def get_cards(list_id)
|
24
|
+
http_request(:get, "/1/lists/#{list_id}/cards", :params => {:fields => "idList"})
|
25
|
+
end
|
26
|
+
|
23
27
|
private
|
24
28
|
def http_request(method, request_path, args={})
|
25
29
|
request_path << "?"
|
data/lib/github-trello/server.rb
CHANGED
@@ -55,10 +55,9 @@ module GithubTrello
|
|
55
55
|
# Modify it if needed
|
56
56
|
to_update = {}
|
57
57
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
#end
|
58
|
+
unless results["idList"] == update_config["move_to"]
|
59
|
+
to_update[:idList] = update_config["move_to"]
|
60
|
+
end
|
62
61
|
|
63
62
|
if !results["closed"] and update_config["archive"]
|
64
63
|
to_update[:closed] = true
|
@@ -72,8 +71,35 @@ module GithubTrello
|
|
72
71
|
""
|
73
72
|
end
|
74
73
|
|
74
|
+
post "/deployed/:repo" do
|
75
|
+
config, http = self.class.config, self.class.http
|
76
|
+
if !config["on_deploy"]
|
77
|
+
raise "Deploy triggered without a on_deploy config specified"
|
78
|
+
elsif !config["on_close"] or !config["on_close"]["move_to"]
|
79
|
+
raise "Deploy triggered and either on_close config missed or move_to is not set"
|
80
|
+
end
|
81
|
+
|
82
|
+
update_config = config["on_deploy"]
|
83
|
+
|
84
|
+
to_update = {}
|
85
|
+
if update_config["move_to"] and update_config["move_to"][params[:repo]]
|
86
|
+
to_update[:idList] = update_config["move_to"][params[:repo]]
|
87
|
+
end
|
88
|
+
|
89
|
+
if update_config["archive"]
|
90
|
+
to_update[:closed] = true
|
91
|
+
end
|
92
|
+
|
93
|
+
cards = JSON.parse(http.get_cards(config["on_close"]["move_to"]))
|
94
|
+
cards.each do |card|
|
95
|
+
http.update_card(card["id"], to_update)
|
96
|
+
end
|
97
|
+
|
98
|
+
""
|
99
|
+
end
|
100
|
+
|
75
101
|
get "/" do
|
76
|
-
"
|
102
|
+
""
|
77
103
|
end
|
78
104
|
|
79
105
|
def self.config=(config)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: github-trello
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-04-10 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: vegas
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70278794486600 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,15 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.1.8
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 0.1.8
|
24
|
+
version_requirements: *70278794486600
|
30
25
|
- !ruby/object:Gem::Dependency
|
31
26
|
name: sinatra
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &70278794485740 !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
29
|
requirements:
|
35
30
|
- - ~>
|
@@ -37,12 +32,7 @@ dependencies:
|
|
37
32
|
version: 1.3.2
|
38
33
|
type: :runtime
|
39
34
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: 1.3.2
|
35
|
+
version_requirements: *70278794485740
|
46
36
|
description: Enables managing Trello cards through Github posthooks and Git commits
|
47
37
|
email:
|
48
38
|
- zach.anker@gmail.com
|
@@ -58,8 +48,7 @@ files:
|
|
58
48
|
- MIT-LICENSE
|
59
49
|
- README.md
|
60
50
|
- Rakefile
|
61
|
-
-
|
62
|
-
YmluL3RyZWxsby13ZWI=
|
51
|
+
- bin/trello-web
|
63
52
|
homepage: http://github.com/zanker/github-trello
|
64
53
|
licenses: []
|
65
54
|
post_install_message:
|
@@ -80,8 +69,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
80
69
|
version: 1.3.6
|
81
70
|
requirements: []
|
82
71
|
rubyforge_project: github-trello
|
83
|
-
rubygems_version: 1.8.
|
72
|
+
rubygems_version: 1.8.10
|
84
73
|
signing_key:
|
85
74
|
specification_version: 3
|
86
75
|
summary: Github -> Trello integration
|
87
76
|
test_files: []
|
77
|
+
has_rdoc:
|