omnifocus-github 1.0.0 → 1.0.1

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.
Files changed (4) hide show
  1. data/History.txt +3 -0
  2. data/README.txt +2 -1
  3. data/lib/omnifocus/github.rb +35 -3
  4. metadata +53 -16
data/History.txt CHANGED
@@ -1,3 +1,6 @@
1
+ === 1.0.1 / 2011-07-16
2
+ * Fixed a bug. Only adds tickets assigned to user, not all tickets in project.
3
+
1
4
  === 1.0.0 / 2009-07-28
2
5
 
3
6
  * 1 major enhancement
data/README.txt CHANGED
@@ -1,6 +1,7 @@
1
1
  = omnifocus-github
2
2
 
3
- * http://rubyforge.org/projects/seattlerb
3
+ home :: https://github.com/seattlerb/omnifocus-github
4
+ rdoc :: http://seattlerb.rubyforge.org/omnifocus-github
4
5
 
5
6
  == DESCRIPTION:
6
7
 
@@ -2,9 +2,9 @@ require 'open-uri'
2
2
  require 'yaml'
3
3
 
4
4
  module OmniFocus::Github
5
- VERSION = '1.0.0'
5
+ VERSION = '1.0.1'
6
6
 
7
- GH_URL = "http://github.com"
7
+ GH_URL = "https://github.com"
8
8
 
9
9
  def fetch url, key
10
10
  base_url = "#{GH_URL}/api/v2/yaml"
@@ -13,6 +13,8 @@ module OmniFocus::Github
13
13
 
14
14
  def populate_github_tasks
15
15
  user = `git config --global github.user`.chomp
16
+
17
+ # Personal projects
16
18
  projects = fetch("repos/show/#{user}", "repositories").select { |project|
17
19
  project[:open_issues] > 0
18
20
  }.map { |project|
@@ -20,11 +22,12 @@ module OmniFocus::Github
20
22
  }
21
23
 
22
24
  projects.sort.each do |project|
25
+ warn " scanning #{user}/#{project}"
23
26
  fetch("issues/list/#{user}/#{project}/open", "issues").each do |issue|
24
27
  number = issue["number"]
25
28
  ticket_id = "GH-#{project}##{number}"
26
29
  title = "#{ticket_id}: #{issue["title"]}"
27
- url = "#{GH_URL}/#{user}/#{project}/issues/#issue/#{number}"
30
+ url = "#{GH_URL}/#{user}/#{project}/issues/#{number}"
28
31
 
29
32
  if existing[ticket_id] then
30
33
  bug_db[existing[ticket_id]][ticket_id] = true
@@ -34,5 +37,34 @@ module OmniFocus::Github
34
37
  bug_db[project][ticket_id] = [title, url]
35
38
  end
36
39
  end
40
+
41
+ # Organization projects
42
+ orgs = fetch("user/show/#{user}/organizations", "organizations")
43
+ orgs.each do |o|
44
+ login = o["login"]
45
+ projects = fetch("repos/show/#{login}", "repositories")
46
+ projects = projects.select { |project| project[:open_issues] > 0}
47
+ projects = projects.map{|project| project[:name]}
48
+
49
+ projects.sort.each do |project|
50
+ warn " scanning #{login}/#{project}"
51
+ issues = fetch("issues/list/#{login}/#{project}/open", "issues")
52
+ issues.each do |issue|
53
+ number = issue["number"]
54
+ t_user = issue["user"]
55
+ ticket_id = "GH-#{project}##{number}"
56
+ title = "#{ticket_id}: #{issue["title"]}"
57
+ url = "#{GH_URL}/#{login}/#{project}/issues/#issue/#{number}"
58
+
59
+ next unless t_user == user
60
+ if existing[ticket_id] then
61
+ bug_db[existing[ticket_id]][ticket_id] = true
62
+ next
63
+ end
64
+
65
+ bug_db[project][ticket_id] = [title, url]
66
+ end
67
+ end
68
+ end
37
69
  end
38
70
  end
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omnifocus-github
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ hash: 21
5
+ prerelease:
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 1
10
+ version: 1.0.1
5
11
  platform: ruby
6
12
  authors:
7
13
  - Ryan Davis
@@ -9,29 +15,54 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2009-07-28 00:00:00 -07:00
18
+ date: 2011-07-16 00:00:00 -07:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: omnifocus
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
27
  - - ">="
22
28
  - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
23
32
  version: "0"
24
- version:
33
+ type: :runtime
34
+ version_requirements: *id001
25
35
  - !ruby/object:Gem::Dependency
26
- name: hoe
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
36
+ name: minitest
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
30
40
  requirements:
31
41
  - - ">="
32
42
  - !ruby/object:Gem::Version
33
- version: 2.3.3
34
- version:
43
+ hash: 11
44
+ segments:
45
+ - 2
46
+ - 0
47
+ - 2
48
+ version: 2.0.2
49
+ type: :development
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: hoe
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ hash: 23
60
+ segments:
61
+ - 2
62
+ - 10
63
+ version: "2.10"
64
+ type: :development
65
+ version_requirements: *id003
35
66
  description: Plugin for omnifocus gem to provide github BTS synchronization.
36
67
  email:
37
68
  - ryand-ruby@zenspider.com
@@ -51,7 +82,7 @@ files:
51
82
  - Rakefile
52
83
  - lib/omnifocus/github.rb
53
84
  has_rdoc: true
54
- homepage: http://rubyforge.org/projects/seattlerb
85
+ homepage: https://github.com/seattlerb/omnifocus-github
55
86
  licenses: []
56
87
 
57
88
  post_install_message:
@@ -61,21 +92,27 @@ rdoc_options:
61
92
  require_paths:
62
93
  - lib
63
94
  required_ruby_version: !ruby/object:Gem::Requirement
95
+ none: false
64
96
  requirements:
65
97
  - - ">="
66
98
  - !ruby/object:Gem::Version
99
+ hash: 3
100
+ segments:
101
+ - 0
67
102
  version: "0"
68
- version:
69
103
  required_rubygems_version: !ruby/object:Gem::Requirement
104
+ none: false
70
105
  requirements:
71
106
  - - ">="
72
107
  - !ruby/object:Gem::Version
108
+ hash: 3
109
+ segments:
110
+ - 0
73
111
  version: "0"
74
- version:
75
112
  requirements: []
76
113
 
77
114
  rubyforge_project: seattlerb
78
- rubygems_version: 1.3.4
115
+ rubygems_version: 1.4.2
79
116
  signing_key:
80
117
  specification_version: 3
81
118
  summary: Plugin for omnifocus gem to provide github BTS synchronization.