octospy 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rspec +1 -0
  4. data/.travis.yml +23 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +58 -0
  8. data/Rakefile +4 -0
  9. data/bin/octospy +6 -0
  10. data/lib/cinch/plugins/management.rb +91 -0
  11. data/lib/cinch/plugins/octospy/job.rb +97 -0
  12. data/lib/cinch/plugins/octospy/recording.rb +101 -0
  13. data/lib/cinch/plugins/octospy.rb +68 -0
  14. data/lib/octospy/configurable.rb +49 -0
  15. data/lib/octospy/extensions/string.rb +39 -0
  16. data/lib/octospy/octokit/client.rb +9 -0
  17. data/lib/octospy/parser/download.rb +13 -0
  18. data/lib/octospy/parser/gist.rb +20 -0
  19. data/lib/octospy/parser/issue.rb +43 -0
  20. data/lib/octospy/parser/organization.rb +22 -0
  21. data/lib/octospy/parser/pull_request.rb +32 -0
  22. data/lib/octospy/parser/repository.rb +80 -0
  23. data/lib/octospy/parser/user.rb +37 -0
  24. data/lib/octospy/parser/wiki.rb +19 -0
  25. data/lib/octospy/parser.rb +117 -0
  26. data/lib/octospy/recordable/channel.rb +23 -0
  27. data/lib/octospy/recordable/repo.rb +16 -0
  28. data/lib/octospy/recordable.rb +26 -0
  29. data/lib/octospy/shortener.rb +48 -0
  30. data/lib/octospy/version.rb +3 -0
  31. data/lib/octospy/worker.rb +48 -0
  32. data/lib/octospy.rb +55 -0
  33. data/octospy.gemspec +37 -0
  34. data/spec/fixtures/commit_comment_event.json +59 -0
  35. data/spec/fixtures/create_event.json +21 -0
  36. data/spec/fixtures/delete_event.json +23 -0
  37. data/spec/fixtures/follow_event.json +48 -0
  38. data/spec/fixtures/fork_event.json +139 -0
  39. data/spec/fixtures/gist_event.json +27 -0
  40. data/spec/fixtures/gollum_event.json +30 -0
  41. data/spec/fixtures/issue_comment_event.json +97 -0
  42. data/spec/fixtures/issues_event.json +70 -0
  43. data/spec/fixtures/member_event.json +39 -0
  44. data/spec/fixtures/public_event.json +16 -0
  45. data/spec/fixtures/pull_request_event.json +400 -0
  46. data/spec/fixtures/pull_request_review_comment_event.json +73 -0
  47. data/spec/fixtures/push_event.json +35 -0
  48. data/spec/fixtures/team_add_event.json +51 -0
  49. data/spec/fixtures/watch_event.json +23 -0
  50. data/spec/helper.rb +79 -0
  51. data/spec/octospy/extensions/string_spec.rb +84 -0
  52. data/spec/octospy/parser/download_spec.rb +9 -0
  53. data/spec/octospy/parser/gist_spec.rb +17 -0
  54. data/spec/octospy/parser/issue_spec.rb +33 -0
  55. data/spec/octospy/parser/organization_spec.rb +33 -0
  56. data/spec/octospy/parser/pull_request_spec.rb +33 -0
  57. data/spec/octospy/parser/repository_spec.rb +101 -0
  58. data/spec/octospy/parser/user_spec.rb +44 -0
  59. data/spec/octospy/parser/wiki_spec.rb +17 -0
  60. data/spec/octospy/parser_spec.rb +63 -0
  61. data/spec/octospy/shortener_spec.rb +46 -0
  62. data/spec/support/shared_context.rb +60 -0
  63. metadata +345 -0
@@ -0,0 +1,48 @@
1
+ {"id":"1776402321",
2
+ "type":"FollowEvent",
3
+ "actor":
4
+ {"id":8991,
5
+ "login":"naoya",
6
+ "gravatar_id":"b4afc7d853d7f1cb6a253d3c7183c05a",
7
+ "url":"https://api.github.com/users/naoya",
8
+ "avatar_url":
9
+ "https://secure.gravatar.com/avatar/b4afc7d853d7f1cb6a253d3c7183c05a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},
10
+ "repo":{"name":"/", "url":"https://api.github.com/repos//"},
11
+ "payload":
12
+ {"target":
13
+ {"login":"Watson1978",
14
+ "id":199156,
15
+ "avatar_url":
16
+ "https://secure.gravatar.com/avatar/6e8aca910e7ee095397d3b90acb25f6c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",
17
+ "gravatar_id":"6e8aca910e7ee095397d3b90acb25f6c",
18
+ "url":"https://api.github.com/users/Watson1978",
19
+ "html_url":"https://github.com/Watson1978",
20
+ "followers_url":"https://api.github.com/users/Watson1978/followers",
21
+ "following_url":
22
+ "https://api.github.com/users/Watson1978/following{/other_user}",
23
+ "gists_url":"https://api.github.com/users/Watson1978/gists{/gist_id}",
24
+ "starred_url":
25
+ "https://api.github.com/users/Watson1978/starred{/owner}{/repo}",
26
+ "subscriptions_url":
27
+ "https://api.github.com/users/Watson1978/subscriptions",
28
+ "organizations_url":"https://api.github.com/users/Watson1978/orgs",
29
+ "repos_url":"https://api.github.com/users/Watson1978/repos",
30
+ "events_url":"https://api.github.com/users/Watson1978/events{/privacy}",
31
+ "received_events_url":
32
+ "https://api.github.com/users/Watson1978/received_events",
33
+ "type":"User",
34
+ "name":"Watson",
35
+ "company":null,
36
+ "blog":"http://watson1978.github.io/",
37
+ "location":"Japan",
38
+ "email":"watson1978@gmail.com",
39
+ "hireable":false,
40
+ "bio":null,
41
+ "public_repos":66,
42
+ "followers":101,
43
+ "following":15,
44
+ "created_at":"2010-02-07T22:53:15Z",
45
+ "updated_at":"2013-07-10T02:08:22Z",
46
+ "public_gists":146}},
47
+ "public":true,
48
+ "created_at":"2013-07-10T11:55:23Z"}
@@ -0,0 +1,139 @@
1
+ {"id":"1779407056",
2
+ "type":"ForkEvent",
3
+ "actor":
4
+ {"id":2570702,
5
+ "login":"chrisenytc",
6
+ "gravatar_id":"95560a7a009026f7cab205de25bb9e13",
7
+ "url":"https://api.github.com/users/chrisenytc",
8
+ "avatar_url":
9
+ "https://secure.gravatar.com/avatar/95560a7a009026f7cab205de25bb9e13?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},
10
+ "repo":
11
+ {"id":8514,
12
+ "name":"rails/rails",
13
+ "url":"https://api.github.com/repos/rails/rails"},
14
+ "payload":
15
+ {"forkee":
16
+ {"id":11399511,
17
+ "name":"rails",
18
+ "full_name":"chrisenytc/rails",
19
+ "owner":
20
+ {"login":"chrisenytc",
21
+ "id":2570702,
22
+ "avatar_url":
23
+ "https://secure.gravatar.com/avatar/95560a7a009026f7cab205de25bb9e13?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",
24
+ "gravatar_id":"95560a7a009026f7cab205de25bb9e13",
25
+ "url":"https://api.github.com/users/chrisenytc",
26
+ "html_url":"https://github.com/chrisenytc",
27
+ "followers_url":"https://api.github.com/users/chrisenytc/followers",
28
+ "following_url":
29
+ "https://api.github.com/users/chrisenytc/following{/other_user}",
30
+ "gists_url":"https://api.github.com/users/chrisenytc/gists{/gist_id}",
31
+ "starred_url":
32
+ "https://api.github.com/users/chrisenytc/starred{/owner}{/repo}",
33
+ "subscriptions_url":
34
+ "https://api.github.com/users/chrisenytc/subscriptions",
35
+ "organizations_url":"https://api.github.com/users/chrisenytc/orgs",
36
+ "repos_url":"https://api.github.com/users/chrisenytc/repos",
37
+ "events_url":
38
+ "https://api.github.com/users/chrisenytc/events{/privacy}",
39
+ "received_events_url":
40
+ "https://api.github.com/users/chrisenytc/received_events",
41
+ "type":"User"},
42
+ "private":true,
43
+ "html_url":"https://github.com/chrisenytc/rails",
44
+ "description":"Ruby on Rails",
45
+ "fork":true,
46
+ "url":"https://api.github.com/repos/chrisenytc/rails",
47
+ "forks_url":"https://api.github.com/repos/chrisenytc/rails/forks",
48
+ "keys_url":"https://api.github.com/repos/chrisenytc/rails/keys{/key_id}",
49
+ "collaborators_url":
50
+ "https://api.github.com/repos/chrisenytc/rails/collaborators{/collaborator}",
51
+ "teams_url":"https://api.github.com/repos/chrisenytc/rails/teams",
52
+ "hooks_url":"https://api.github.com/repos/chrisenytc/rails/hooks",
53
+ "issue_events_url":
54
+ "https://api.github.com/repos/chrisenytc/rails/issues/events{/number}",
55
+ "events_url":"https://api.github.com/repos/chrisenytc/rails/events",
56
+ "assignees_url":
57
+ "https://api.github.com/repos/chrisenytc/rails/assignees{/user}",
58
+ "branches_url":
59
+ "https://api.github.com/repos/chrisenytc/rails/branches{/branch}",
60
+ "tags_url":"https://api.github.com/repos/chrisenytc/rails/tags",
61
+ "blobs_url":
62
+ "https://api.github.com/repos/chrisenytc/rails/git/blobs{/sha}",
63
+ "git_tags_url":
64
+ "https://api.github.com/repos/chrisenytc/rails/git/tags{/sha}",
65
+ "git_refs_url":
66
+ "https://api.github.com/repos/chrisenytc/rails/git/refs{/sha}",
67
+ "trees_url":
68
+ "https://api.github.com/repos/chrisenytc/rails/git/trees{/sha}",
69
+ "statuses_url":
70
+ "https://api.github.com/repos/chrisenytc/rails/statuses/{sha}",
71
+ "languages_url":
72
+ "https://api.github.com/repos/chrisenytc/rails/languages",
73
+ "stargazers_url":
74
+ "https://api.github.com/repos/chrisenytc/rails/stargazers",
75
+ "contributors_url":
76
+ "https://api.github.com/repos/chrisenytc/rails/contributors",
77
+ "subscribers_url":
78
+ "https://api.github.com/repos/chrisenytc/rails/subscribers",
79
+ "subscription_url":
80
+ "https://api.github.com/repos/chrisenytc/rails/subscription",
81
+ "commits_url":
82
+ "https://api.github.com/repos/chrisenytc/rails/commits{/sha}",
83
+ "git_commits_url":
84
+ "https://api.github.com/repos/chrisenytc/rails/git/commits{/sha}",
85
+ "comments_url":
86
+ "https://api.github.com/repos/chrisenytc/rails/comments{/number}",
87
+ "issue_comment_url":
88
+ "https://api.github.com/repos/chrisenytc/rails/issues/comments/{number}",
89
+ "contents_url":
90
+ "https://api.github.com/repos/chrisenytc/rails/contents/{+path}",
91
+ "compare_url":
92
+ "https://api.github.com/repos/chrisenytc/rails/compare/{base}...{head}",
93
+ "merges_url":"https://api.github.com/repos/chrisenytc/rails/merges",
94
+ "archive_url":
95
+ "https://api.github.com/repos/chrisenytc/rails/{archive_format}{/ref}",
96
+ "downloads_url":
97
+ "https://api.github.com/repos/chrisenytc/rails/downloads",
98
+ "issues_url":
99
+ "https://api.github.com/repos/chrisenytc/rails/issues{/number}",
100
+ "pulls_url":
101
+ "https://api.github.com/repos/chrisenytc/rails/pulls{/number}",
102
+ "milestones_url":
103
+ "https://api.github.com/repos/chrisenytc/rails/milestones{/number}",
104
+ "notifications_url":
105
+ "https://api.github.com/repos/chrisenytc/rails/notifications{?since,all,participating}",
106
+ "labels_url":
107
+ "https://api.github.com/repos/chrisenytc/rails/labels{/name}",
108
+ "created_at":"2013-07-14T06:58:44Z",
109
+ "updated_at":"2013-07-14T06:58:44Z",
110
+ "pushed_at":"2013-07-14T05:02:06Z",
111
+ "git_url":"git://github.com/chrisenytc/rails.git",
112
+ "ssh_url":"git@github.com:chrisenytc/rails.git",
113
+ "clone_url":"https://github.com/chrisenytc/rails.git",
114
+ "svn_url":"https://github.com/chrisenytc/rails",
115
+ "homepage":"http://rubyonrails.org",
116
+ "size":103896,
117
+ "watchers_count":0,
118
+ "language":"Ruby",
119
+ "has_issues":false,
120
+ "has_downloads":true,
121
+ "has_wiki":false,
122
+ "forks_count":0,
123
+ "mirror_url":null,
124
+ "open_issues_count":0,
125
+ "forks":0,
126
+ "open_issues":0,
127
+ "watchers":0,
128
+ "master_branch":"master",
129
+ "default_branch":"master",
130
+ "public":false}},
131
+ "public":true,
132
+ "created_at":"2013-07-14T06:58:44Z",
133
+ "org":
134
+ {"id":4223,
135
+ "login":"rails",
136
+ "gravatar_id":"30f39a09e233e8369dddf6feb4be0308",
137
+ "url":"https://api.github.com/orgs/rails",
138
+ "avatar_url":
139
+ "https://secure.gravatar.com/avatar/30f39a09e233e8369dddf6feb4be0308?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png"}}
@@ -0,0 +1,27 @@
1
+ {"id":"1779421596",
2
+ "type":"GistEvent",
3
+ "actor":
4
+ {"url":"https://api.github.com/users/",
5
+ "avatar_url":
6
+ "https://secure.gravatar.com/avatar/?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},
7
+ "repo":{"name":"/", "url":"https://api.github.com/repos//"},
8
+ "payload":
9
+ {"action":"create",
10
+ "gist":
11
+ {"url":"https://api.github.com/gists/5993603",
12
+ "forks_url":"https://api.github.com/gists/5993603/forks",
13
+ "commits_url":"https://api.github.com/gists/5993603/commits",
14
+ "id":"5993603",
15
+ "git_pull_url":"https://gist.github.com/5993603.git",
16
+ "git_push_url":"https://gist.github.com/5993603.git",
17
+ "html_url":"https://gist.github.com/5993603",
18
+ "files":{},
19
+ "public":true,
20
+ "created_at":"2013-07-14T08:18:52Z",
21
+ "updated_at":"2013-07-14T08:18:52Z",
22
+ "description":"testing activegist",
23
+ "comments":0,
24
+ "user":null,
25
+ "comments_url":"https://api.github.com/gists/5993603/comments"}},
26
+ "public":true,
27
+ "created_at":"2013-07-14T08:18:52Z"}
@@ -0,0 +1,30 @@
1
+ {"id":"1779007727",
2
+ "type":"GollumEvent",
3
+ "actor":
4
+ {"id":311752,
5
+ "login":"ianstormtaylor",
6
+ "gravatar_id":"e7f4e4b1d3b381e70f864bc7f8b4493e",
7
+ "url":"https://api.github.com/users/ianstormtaylor",
8
+ "avatar_url":
9
+ "https://secure.gravatar.com/avatar/e7f4e4b1d3b381e70f864bc7f8b4493e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},
10
+ "repo":
11
+ {"id":5363235,
12
+ "name":"component/component",
13
+ "url":"https://api.github.com/repos/component/component"},
14
+ "payload":
15
+ {"pages":
16
+ [{"page_name":"Components",
17
+ "title":"Components",
18
+ "summary":null,
19
+ "action":"edited",
20
+ "sha":"3df147ed0f780a71cbbfd0b645b8589c007e6849",
21
+ "html_url":"https://github.com/component/component/wiki/Components"}]},
22
+ "public":true,
23
+ "created_at":"2013-07-13T00:14:10Z",
24
+ "org":
25
+ {"id":1687071,
26
+ "login":"component",
27
+ "gravatar_id":"e009159792e6cc522fc413deb96b967b",
28
+ "url":"https://api.github.com/orgs/component",
29
+ "avatar_url":
30
+ "https://secure.gravatar.com/avatar/e009159792e6cc522fc413deb96b967b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png"}}
@@ -0,0 +1,97 @@
1
+ {
2
+ "id": "1771641168",
3
+ "type": "IssueCommentEvent",
4
+ "actor": {
5
+ "id": 170270,
6
+ "login": "sindresorhus",
7
+ "gravatar_id": "d36a92237c75c5337c17b60d90686bf9",
8
+ "url": "https://api.github.com/users/sindresorhus",
9
+ "avatar_url": "https://secure.gravatar.com/avatar/d36a92237c75c5337c17b60d90686bf9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"
10
+ },
11
+ "repo": {
12
+ "id": 5710341,
13
+ "name": "bower/bower",
14
+ "url": "https://api.github.com/repos/bower/bower"
15
+ },
16
+ "payload": {
17
+ "action": "created",
18
+ "issue": {
19
+ "url": "https://api.github.com/repos/bower/bower/issues/582",
20
+ "labels_url": "https://api.github.com/repos/bower/bower/issues/582/labels{/name}",
21
+ "comments_url": "https://api.github.com/repos/bower/bower/issues/582/comments",
22
+ "events_url": "https://api.github.com/repos/bower/bower/issues/582/events",
23
+ "html_url": "https://github.com/bower/bower/issues/582",
24
+ "id": 16296959,
25
+ "number": 582,
26
+ "title": "Remove `engines` from package.json.",
27
+ "user": {
28
+ "login": "paulmillr",
29
+ "id": 574696,
30
+ "avatar_url": "https://secure.gravatar.com/avatar/d342e4ef045c54a6a6f41d070d8a0406?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",
31
+ "gravatar_id": "d342e4ef045c54a6a6f41d070d8a0406",
32
+ "url": "https://api.github.com/users/paulmillr",
33
+ "html_url": "https://github.com/paulmillr",
34
+ "followers_url": "https://api.github.com/users/paulmillr/followers",
35
+ "following_url": "https://api.github.com/users/paulmillr/following{/other_user}",
36
+ "gists_url": "https://api.github.com/users/paulmillr/gists{/gist_id}",
37
+ "starred_url": "https://api.github.com/users/paulmillr/starred{/owner}{/repo}",
38
+ "subscriptions_url": "https://api.github.com/users/paulmillr/subscriptions",
39
+ "organizations_url": "https://api.github.com/users/paulmillr/orgs",
40
+ "repos_url": "https://api.github.com/users/paulmillr/repos",
41
+ "events_url": "https://api.github.com/users/paulmillr/events{/privacy}",
42
+ "received_events_url": "https://api.github.com/users/paulmillr/received_events",
43
+ "type": "User"
44
+ },
45
+ "labels": [],
46
+ "state": "open",
47
+ "assignee": null,
48
+ "milestone": null,
49
+ "comments": 3,
50
+ "created_at": "2013-07-03T01:08:12Z",
51
+ "updated_at": "2013-07-03T13:49:56Z",
52
+ "closed_at": null,
53
+ "pull_request": {
54
+ "html_url": "https://github.com/bower/bower/pull/582",
55
+ "diff_url": "https://github.com/bower/bower/pull/582.diff",
56
+ "patch_url": "https://github.com/bower/bower/pull/582.patch"
57
+ },
58
+ "body": "It was removed recently."
59
+ },
60
+ "comment": {
61
+ "url": "https://api.github.com/repos/bower/bower/issues/comments/20416296",
62
+ "html_url": "https://github.com/bower/bower/issues/582#issuecomment-20416296",
63
+ "issue_url": "https://api.github.com/repos/bower/bower/issues/582",
64
+ "id": 20416296,
65
+ "user": {
66
+ "login": "sindresorhus",
67
+ "id": 170270,
68
+ "avatar_url": "https://secure.gravatar.com/avatar/d36a92237c75c5337c17b60d90686bf9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",
69
+ "gravatar_id": "d36a92237c75c5337c17b60d90686bf9",
70
+ "url": "https://api.github.com/users/sindresorhus",
71
+ "html_url": "https://github.com/sindresorhus",
72
+ "followers_url": "https://api.github.com/users/sindresorhus/followers",
73
+ "following_url": "https://api.github.com/users/sindresorhus/following{/other_user}",
74
+ "gists_url": "https://api.github.com/users/sindresorhus/gists{/gist_id}",
75
+ "starred_url": "https://api.github.com/users/sindresorhus/starred{/owner}{/repo}",
76
+ "subscriptions_url": "https://api.github.com/users/sindresorhus/subscriptions",
77
+ "organizations_url": "https://api.github.com/users/sindresorhus/orgs",
78
+ "repos_url": "https://api.github.com/users/sindresorhus/repos",
79
+ "events_url": "https://api.github.com/users/sindresorhus/events{/privacy}",
80
+ "received_events_url": "https://api.github.com/users/sindresorhus/received_events",
81
+ "type": "User"
82
+ },
83
+ "created_at": "2013-07-03T13:49:56Z",
84
+ "updated_at": "2013-07-03T13:49:56Z",
85
+ "body": "Has is ever done anything? It still has a purpose though; To warn users that they're using an outdated version."
86
+ }
87
+ },
88
+ "public": true,
89
+ "created_at": "2013-07-03T13:49:57Z",
90
+ "org": {
91
+ "id": 3709251,
92
+ "login": "bower",
93
+ "gravatar_id": "86d39e0cee6de67985ce671dbe6044d1",
94
+ "url": "https://api.github.com/orgs/bower",
95
+ "avatar_url": "https://secure.gravatar.com/avatar/86d39e0cee6de67985ce671dbe6044d1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png"
96
+ }
97
+ }
@@ -0,0 +1,70 @@
1
+ {"id":"1774941092",
2
+ "type":"IssuesEvent",
3
+ "actor":
4
+ {"id":262566,
5
+ "login":"jeffkaufman",
6
+ "gravatar_id":"1c43cb01fde39470cde8a1d7fd600a4f",
7
+ "url":"https://api.github.com/users/jeffkaufman",
8
+ "avatar_url":
9
+ "https://secure.gravatar.com/avatar/1c43cb01fde39470cde8a1d7fd600a4f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},
10
+ "repo":
11
+ {"id":4766638,
12
+ "name":"pagespeed/ngx_pagespeed",
13
+ "url":"https://api.github.com/repos/pagespeed/ngx_pagespeed"},
14
+ "payload":
15
+ {"action":"opened",
16
+ "issue":
17
+ {"url":"https://api.github.com/repos/pagespeed/ngx_pagespeed/issues/430",
18
+ "labels_url":
19
+ "https://api.github.com/repos/pagespeed/ngx_pagespeed/issues/430/labels{/name}",
20
+ "comments_url":
21
+ "https://api.github.com/repos/pagespeed/ngx_pagespeed/issues/430/comments",
22
+ "events_url":
23
+ "https://api.github.com/repos/pagespeed/ngx_pagespeed/issues/430/events",
24
+ "html_url":"https://github.com/pagespeed/ngx_pagespeed/issues/430",
25
+ "id":16495538,
26
+ "number":430,
27
+ "title":"mismatching hashes for css",
28
+ "user":
29
+ {"login":"jeffkaufman",
30
+ "id":262566,
31
+ "avatar_url":
32
+ "https://secure.gravatar.com/avatar/1c43cb01fde39470cde8a1d7fd600a4f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",
33
+ "gravatar_id":"1c43cb01fde39470cde8a1d7fd600a4f",
34
+ "url":"https://api.github.com/users/jeffkaufman",
35
+ "html_url":"https://github.com/jeffkaufman",
36
+ "followers_url":"https://api.github.com/users/jeffkaufman/followers",
37
+ "following_url":
38
+ "https://api.github.com/users/jeffkaufman/following{/other_user}",
39
+ "gists_url":"https://api.github.com/users/jeffkaufman/gists{/gist_id}",
40
+ "starred_url":
41
+ "https://api.github.com/users/jeffkaufman/starred{/owner}{/repo}",
42
+ "subscriptions_url":
43
+ "https://api.github.com/users/jeffkaufman/subscriptions",
44
+ "organizations_url":"https://api.github.com/users/jeffkaufman/orgs",
45
+ "repos_url":"https://api.github.com/users/jeffkaufman/repos",
46
+ "events_url":
47
+ "https://api.github.com/users/jeffkaufman/events{/privacy}",
48
+ "received_events_url":
49
+ "https://api.github.com/users/jeffkaufman/received_events",
50
+ "type":"User"},
51
+ "labels":[],
52
+ "state":"open",
53
+ "assignee":null,
54
+ "milestone":null,
55
+ "comments":0,
56
+ "created_at":"2013-07-08T21:35:45Z",
57
+ "updated_at":"2013-07-08T21:35:45Z",
58
+ "closed_at":null,
59
+ "pull_request":{"html_url":null, "diff_url":null, "patch_url":null},
60
+ "body":
61
+ "On pitchup.com the combined css is handled by another server and is getting served as `max-age=300,private`. Something is different about the css file as the two servers generate them.  When I load that css file I get a file whose md5 hash, in the format pagespeed uses, would be KNrKf13HsE instead of Ch9SgekcK0.  When I edit the url to have that hash I get a long cache lifetime:\r\n\r\n```\r\n$ headers 'http://media2.pitchup.com/static/pitchup,_css,_normalize.css+pitchup,_sass,_stylesheets,_screen.css+pitchup,_css,_pitchup.css+pitchup,_css,_screen,_maps.css+pitchup,_css,_jqModal.css+pitchup,_zocial,_zocial.css+pitchup,_css,_tipsy.css+pitchup,_css,_video.css+pitchup,_css,_sitemap.css+pitchup,_js,_jQRangeSlider-5.1,_css,_classic-min.css+tn3,_skins,_tn3,_tn3.css+datepicker,_css,_base.css+datepicker,_css,_pitchup.css+reviewcentre,_seo_badge.v3.css+pitchup,_css,_homepage.css.pagespeed.cc.KNrKf13HsE.css'\r\nHTTP/1.1 200 OK\r\nServer: nginx/1.4.1\r\nContent-Type: text/css\r\nTransfer-Encoding: chunked\r\nConnection: keep-alive\r\nVary: Accept-Encoding\r\nDate: Mon, 08 Jul 2013 19:55:41 GMT\r\nExpires: Tue, 08 Jul 2014 19:55:41 GMT\r\nCache-Control: max-age=31536000\r\nETag: W/\"0\"\r\nLast-Modified: Mon, 08 Jul 2013 19:55:41 GMT\r\nX-Page-Speed: 1.5.27.3-3005\r\n```\r\n\r\nSimilarly, if I request that original url from www.pitchup.com, I get a long cache lifetime:\r\n\r\n```\r\n$ headers 'http://www.pitchup.com/static/pitchup,_css,_normalize.css+pitchup,_sass,_stylesheets,_screen.css+pitchup,_css,_pitchup.css+pitchup,_css,_screen,_maps.css+pitchup,_css,_jqModal.css+pitchup,_zocial,_zocial.css+pitchup,_css,_tipsy.css+pitchup,_css,_video.css+pitchup,_css,_sitemap.css+pitchup,_js,_jQRangeSlider-5.1,_css,_classic-min.css+tn3,_skins,_tn3,_tn3.css+datepicker,_css,_base.css+datepicker,_css,_pitchup.css+reviewcentre,_seo_badge.v3.css+pitchup,_css,_homepage.css.pagespeed.cc.Ch9SgekcK0.css'\r\nHTTP/1.1 200 OK\r\nServer: nginx/1.4.1\r\nContent-Type: text/css\r\nTransfer-Encoding: chunked\r\nConnection: keep-alive\r\nVary: Accept-Encoding\r\nDate: Mon, 08 Jul 2013 21:23:44 GMT\r\nExpires: Tue, 08 Jul 2014 21:23:44 GMT\r\nCache-Control: max-age=31536000\r\nETag: W/\"0\"\r\nLast-Modified: Mon, 08 Jul 2013 21:23:44 GMT\r\nX-Page-Speed: 1.5.27.3-3005\r\n```\r\n\r\nSo what's different between those two files?  Downloading them both and diffing, there are a lot of differences, all in urls:\r\n\r\n```\r\ngenerated by media2:\r\n     background: url('pitchup/images2/homepage/pu_homepage_sprites.png') right -120px no-repeat,\r\n\r\ngenerated by www:\r\n     background: url('http://media1.pitchup.com/static/pitchup/images2/homepage/pu_homepage_sprites.png') right -120px no-repeat,\r\n```\r\n\r\nA relative url in css is interpreted against the location of that css file, which means that the version generated by media2 is correct and the one generated by www is too verbose.  But I'm not sure why www isn't able to generate the shortened url."}},
62
+ "public":true,
63
+ "created_at":"2013-07-08T21:35:45Z",
64
+ "org":
65
+ {"id":1880112,
66
+ "login":"pagespeed",
67
+ "gravatar_id":"0736e1c30e49c94fb04060488d6dae78",
68
+ "url":"https://api.github.com/orgs/pagespeed",
69
+ "avatar_url":
70
+ "https://secure.gravatar.com/avatar/0736e1c30e49c94fb04060488d6dae78?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png"}}
@@ -0,0 +1,39 @@
1
+ {"id":"1779419957",
2
+ "type":"MemberEvent",
3
+ "actor":
4
+ {"id":3474496,
5
+ "login":"hmurraydavis",
6
+ "gravatar_id":"3de0108fd8295f4784a79db7ac8e6ea6",
7
+ "url":"https://api.github.com/users/hmurraydavis",
8
+ "avatar_url":
9
+ "https://secure.gravatar.com/avatar/3de0108fd8295f4784a79db7ac8e6ea6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},
10
+ "repo":
11
+ {"id":9243870,
12
+ "name":"hmurraydavis/RWM-Final-Project",
13
+ "url":"https://api.github.com/repos/hmurraydavis/RWM-Final-Project"},
14
+ "payload":
15
+ {"member":
16
+ {"login":"jamiesarahg",
17
+ "id":3030755,
18
+ "avatar_url":
19
+ "https://secure.gravatar.com/avatar/270359d8fd05660fcf913f77c6368b16?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",
20
+ "gravatar_id":"270359d8fd05660fcf913f77c6368b16",
21
+ "url":"https://api.github.com/users/jamiesarahg",
22
+ "html_url":"https://github.com/jamiesarahg",
23
+ "followers_url":"https://api.github.com/users/jamiesarahg/followers",
24
+ "following_url":
25
+ "https://api.github.com/users/jamiesarahg/following{/other_user}",
26
+ "gists_url":"https://api.github.com/users/jamiesarahg/gists{/gist_id}",
27
+ "starred_url":
28
+ "https://api.github.com/users/jamiesarahg/starred{/owner}{/repo}",
29
+ "subscriptions_url":
30
+ "https://api.github.com/users/jamiesarahg/subscriptions",
31
+ "organizations_url":"https://api.github.com/users/jamiesarahg/orgs",
32
+ "repos_url":"https://api.github.com/users/jamiesarahg/repos",
33
+ "events_url":"https://api.github.com/users/jamiesarahg/events{/privacy}",
34
+ "received_events_url":
35
+ "https://api.github.com/users/jamiesarahg/received_events",
36
+ "type":"User"},
37
+ "action":"added"},
38
+ "public":true,
39
+ "created_at":"2013-07-14T08:11:09Z"}
@@ -0,0 +1,16 @@
1
+ {"id":"1779420697",
2
+ "type":"PublicEvent",
3
+ "actor":
4
+ {"id":686771,
5
+ "login":"JustinBeaudry",
6
+ "gravatar_id":"71f3ca223d326da37a4a335e2a15e071",
7
+ "url":"https://api.github.com/users/JustinBeaudry",
8
+ "avatar_url":
9
+ "https://secure.gravatar.com/avatar/71f3ca223d326da37a4a335e2a15e071?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},
10
+ "repo":
11
+ {"id":10676282,
12
+ "name":"JustinBeaudry/brudniakbook",
13
+ "url":"https://api.github.com/repos/JustinBeaudry/brudniakbook"},
14
+ "payload":{},
15
+ "public":true,
16
+ "created_at":"2013-07-14T08:14:40Z"}