fluent-plugin-github-activities 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,46 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file is part of fluent-plugin-github-activities.
4
+ #
5
+ # fluent-plugin-github-activities is free software: you can
6
+ # redistribute it and/or modify it under the terms of the GNU Lesser
7
+ # General Public License as published by the Free Software
8
+ # Foundation, either version 3 of the License, or (at your option)
9
+ # any later version.
10
+ #
11
+ # fluent-plugin-github-activities is distributed in the hope that
12
+ # it will be useful, but WITHOUT ANY WARRANTY; without even the
13
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14
+ # PURPOSE. See the GNU Lesser General Public License for more details.
15
+ #
16
+ # You should have received a copy of the GNU Lesser General Public
17
+ # License along with fluent-plugin-github-activities. If not, see
18
+ # <http://www.gnu.org/licenses/>.
19
+
20
+ require "pathname"
21
+ require "fileutils"
22
+ require "tempfile"
23
+
24
+ module Fluent
25
+ module GithubActivities
26
+ class SafeFileWriter
27
+ class << self
28
+ def write(path, contents=nil)
29
+ # Don't output the file directly to prevent loading of incomplete file!
30
+ path = Pathname(path).expand_path
31
+ FileUtils.mkdir_p(path.dirname.to_s)
32
+ Tempfile.open(path.basename.to_s, path.dirname.to_s) do |output|
33
+ if block_given?
34
+ yield(output, output.path)
35
+ else
36
+ output.write(contents)
37
+ end
38
+ output.flush
39
+ File.rename(output.path, path.to_s)
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+
@@ -0,0 +1,94 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file is part of fluent-plugin-github-activities.
4
+ #
5
+ # fluent-plugin-github-activities is free software: you can
6
+ # redistribute it and/or modify it under the terms of the GNU Lesser
7
+ # General Public License as published by the Free Software
8
+ # Foundation, either version 3 of the License, or (at your option)
9
+ # any later version.
10
+ #
11
+ # fluent-plugin-github-activities is distributed in the hope that
12
+ # it will be useful, but WITHOUT ANY WARRANTY; without even the
13
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14
+ # PURPOSE. See the GNU Lesser General Public License for more details.
15
+ #
16
+ # You should have received a copy of the GNU Lesser General Public
17
+ # License along with fluent-plugin-github-activities. If not, see
18
+ # <http://www.gnu.org/licenses/>.
19
+
20
+ module Fluent
21
+ class GithubActivitiesInput < Input
22
+ DEFAULT_BASE_TAG = "github-activity"
23
+
24
+ Plugin.register_input("github-activities", self)
25
+
26
+ config_param :basic_username, :string, :default => nil
27
+ config_param :basic_password, :string, :default => nil
28
+ config_param :users, :string, :default => nil
29
+ config_param :users_list, :string, :default => nil
30
+ config_param :include_commits_from_pull_request, :bool, :default => false
31
+ config_param :include_foreign_commits, :bool, :default => false
32
+ config_param :base_tag, :string, :default => DEFAULT_BASE_TAG
33
+ config_param :pos_file, :string, :default => nil
34
+ config_param :interval, :integer, :default => 1
35
+
36
+ def initialize
37
+ super
38
+
39
+ require "thread"
40
+ require "pathname"
41
+ require "fluent/plugin/github-activities"
42
+ end
43
+
44
+ def start
45
+ @base_tag = @base_tag.sub(/\.\z/, "")
46
+ @thread = Thread.new do
47
+ crawler_options = {
48
+ :username => @basic_username,
49
+ :password => @basic_password,
50
+ :watching_users => prepare_users_list,
51
+ :include_commits_from_pull_request => @include_commits_from_pull_request,
52
+ :include_foreign_commits => @include_foreign_commits,
53
+ :pos_file => @pos_file,
54
+ :default_interval => @interval,
55
+ }
56
+ @crawler = ::Fluent::GithubActivities::Crawler.new(crawler_options)
57
+ @crawler.on_emit = lambda do |tag, record|
58
+ Engine.emit("#{@base_tag}.#{tag}", Engine.now, record)
59
+ end
60
+
61
+ loop do
62
+ @crawler.process_request
63
+ sleep(@crawler.interval_for_next_request)
64
+ end
65
+ end
66
+ end
67
+
68
+ def shutdown
69
+ @thread.exit
70
+ end
71
+
72
+ private
73
+ def prepare_users_list
74
+ @users ||= ""
75
+ users = @users.split(",")
76
+
77
+ if @users_list
78
+ users_list = Pathname(@users_list)
79
+ if users_list.exist?
80
+ list = users_list.read
81
+ users += list.split("\n")
82
+ end
83
+ end
84
+
85
+ users = users.collect do |user|
86
+ user.strip
87
+ end.reject do |user|
88
+ user.empty?
89
+ end
90
+
91
+ users
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,32 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # This file is part of fluent-plugin-github-activities.
4
+ #
5
+ # fluent-plugin-github-activities is free software: you can
6
+ # redistribute it and/or modify it under the terms of the GNU Lesser
7
+ # General Public License as published by the Free Software
8
+ # Foundation, either version 3 of the License, or (at your option)
9
+ # any later version.
10
+ #
11
+ # fluent-plugin-github-activities is distributed in the hope that
12
+ # it will be useful, but WITHOUT ANY WARRANTY; without even the
13
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14
+ # PURPOSE. See the GNU Lesser General Public License for more details.
15
+ #
16
+ # You should have received a copy of the GNU Lesser General Public
17
+ # License along with fluent-plugin-github-activities. If not, see
18
+ # <http://www.gnu.org/licenses/>.
19
+
20
+ module Fixture
21
+ def fixture_directory
22
+ File.join(File.dirname(__FILE__), "fixture")
23
+ end
24
+
25
+ def fixture_path(*path_components)
26
+ File.join(fixture_directory, *path_components)
27
+ end
28
+
29
+ def fixture_data(*path_components)
30
+ File.read(fixture_path(*path_components))
31
+ end
32
+ end
@@ -0,0 +1,55 @@
1
+ {
2
+ "id": "2823106834",
3
+ "type": "PushEvent",
4
+ "actor": {
5
+ "id": 70062,
6
+ "login": "piroor",
7
+ "gravatar_id": "",
8
+ "url": "https://api.github.com/users/piroor",
9
+ "avatar_url": "https://avatars.githubusercontent.com/u/70062?"
10
+ },
11
+ "repo": {
12
+ "id": 35922279,
13
+ "name": "clear-code/fluent-plugin-github-activities",
14
+ "url": "https://api.github.com/repos/clear-code/fluent-plugin-github-activities"
15
+ },
16
+ "payload": {
17
+ "push_id": 670501578,
18
+ "size": 2,
19
+ "distinct_size": 2,
20
+ "ref": "refs/heads/master",
21
+ "head": "221ab225dc4e3f58985730c92b2823578ef445de",
22
+ "before": "6e88a89630650ec73fafc4e968e8d3c671043bc1",
23
+ "commits": [
24
+ {
25
+ "sha": "2e64fe40a729bb065805c78245f3eb17dc88f39d",
26
+ "author": {
27
+ "email": "piro.outsider.reflex@gmail.com",
28
+ "name": "YUKI \"Piro\" Hiroshi"
29
+ },
30
+ "message": "Add README",
31
+ "distinct": true,
32
+ "url": "https://api.github.com/repos/clear-code/fluent-plugin-github-activities/commits/2e64fe40a729bb065805c78245f3eb17dc88f39d"
33
+ },
34
+ {
35
+ "sha": "221ab225dc4e3f58985730c92b2823578ef445de",
36
+ "author": {
37
+ "email": "piro.outsider.reflex@gmail.com",
38
+ "name": "YUKI \"Piro\" Hiroshi"
39
+ },
40
+ "message": "Merge pull request #2 from piroor/master\n\nAdd README",
41
+ "distinct": true,
42
+ "url": "https://api.github.com/repos/clear-code/fluent-plugin-github-activities/commits/221ab225dc4e3f58985730c92b2823578ef445de"
43
+ }
44
+ ]
45
+ },
46
+ "public": true,
47
+ "created_at": "2015-05-21T06:19:12Z",
48
+ "org": {
49
+ "id": 176515,
50
+ "login": "clear-code",
51
+ "gravatar_id": "",
52
+ "url": "https://api.github.com/orgs/clear-code",
53
+ "avatar_url": "https://avatars.githubusercontent.com/u/176515?"
54
+ }
55
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "id": "2838478605",
3
+ "type": "CreateEvent",
4
+ "actor": {
5
+ "id": 70062,
6
+ "login": "piroor",
7
+ "gravatar_id": "",
8
+ "url": "https://api.github.com/users/piroor",
9
+ "avatar_url": "https://avatars.githubusercontent.com/u/70062?"
10
+ },
11
+ "repo": {
12
+ "id": 36351771,
13
+ "name": "piroor/sharetary",
14
+ "url": "https://api.github.com/repos/piroor/sharetary"
15
+ },
16
+ "payload": {
17
+ "ref": "test",
18
+ "ref_type": "branch",
19
+ "master_branch": "master",
20
+ "description": "Archives any topic about a technical conference and provides a cross-origin timeline view in real time.",
21
+ "pusher_type": "user"
22
+ },
23
+ "public": true,
24
+ "created_at": "2015-05-27T07:57:14Z"
25
+ }
@@ -0,0 +1,58 @@
1
+ {
2
+ "id": "2823071775",
3
+ "type": "CommitCommentEvent",
4
+ "actor": {
5
+ "id": 70062,
6
+ "login": "piroor",
7
+ "gravatar_id": "",
8
+ "url": "https://api.github.com/users/piroor",
9
+ "avatar_url": "https://avatars.githubusercontent.com/u/70062?"
10
+ },
11
+ "repo": {
12
+ "id": 35922279,
13
+ "name": "clear-code/fluent-plugin-github-activities",
14
+ "url": "https://api.github.com/repos/clear-code/fluent-plugin-github-activities"
15
+ },
16
+ "payload": {
17
+ "comment": {
18
+ "url": "https://api.github.com/repos/clear-code/fluent-plugin-github-activities/comments/11299069",
19
+ "html_url": "https://github.com/clear-code/fluent-plugin-github-activities/commit/83fa1eae306105a5d8b1d31bf54017a456d7416a#commitcomment-11299069",
20
+ "id": 11299069,
21
+ "user": {
22
+ "login": "piroor",
23
+ "id": 70062,
24
+ "avatar_url": "https://avatars.githubusercontent.com/u/70062?v=3",
25
+ "gravatar_id": "",
26
+ "url": "https://api.github.com/users/piroor",
27
+ "html_url": "https://github.com/piroor",
28
+ "followers_url": "https://api.github.com/users/piroor/followers",
29
+ "following_url": "https://api.github.com/users/piroor/following{/other_user}",
30
+ "gists_url": "https://api.github.com/users/piroor/gists{/gist_id}",
31
+ "starred_url": "https://api.github.com/users/piroor/starred{/owner}{/repo}",
32
+ "subscriptions_url": "https://api.github.com/users/piroor/subscriptions",
33
+ "organizations_url": "https://api.github.com/users/piroor/orgs",
34
+ "repos_url": "https://api.github.com/users/piroor/repos",
35
+ "events_url": "https://api.github.com/users/piroor/events{/privacy}",
36
+ "received_events_url": "https://api.github.com/users/piroor/received_events",
37
+ "type": "User",
38
+ "site_admin": false
39
+ },
40
+ "position": null,
41
+ "line": null,
42
+ "path": "",
43
+ "commit_id": "83fa1eae306105a5d8b1d31bf54017a456d7416a",
44
+ "created_at": "2015-05-21T05:57:14Z",
45
+ "updated_at": "2015-05-21T05:57:14Z",
46
+ "body": "test comment"
47
+ }
48
+ },
49
+ "public": true,
50
+ "created_at": "2015-05-21T05:57:14Z",
51
+ "org": {
52
+ "id": 176515,
53
+ "login": "clear-code",
54
+ "gravatar_id": "",
55
+ "url": "https://api.github.com/orgs/clear-code",
56
+ "avatar_url": "https://avatars.githubusercontent.com/u/176515?"
57
+ }
58
+ }
@@ -0,0 +1,89 @@
1
+ {
2
+ "sha": "8e90721ff5d89f52b5b3adf0b86db01f03dc5588",
3
+ "commit": {
4
+ "author": {
5
+ "name": "YUKI Hiroshi",
6
+ "email": "shimoda@clear-code.com",
7
+ "date": "2015-05-21T05:14:56Z"
8
+ },
9
+ "committer": {
10
+ "name": "YUKI Hiroshi",
11
+ "email": "shimoda@clear-code.com",
12
+ "date": "2015-05-21T05:14:56Z"
13
+ },
14
+ "message": "Add missing constant",
15
+ "tree": {
16
+ "sha": "ee67d534dd9d4baba9438f046220d7ea70bf9b0f",
17
+ "url": "https://api.github.com/repos/clear-code/fluent-plugin-github-activities/git/trees/ee67d534dd9d4baba9438f046220d7ea70bf9b0f"
18
+ },
19
+ "url": "https://api.github.com/repos/clear-code/fluent-plugin-github-activities/git/commits/8e90721ff5d89f52b5b3adf0b86db01f03dc5588",
20
+ "comment_count": 0
21
+ },
22
+ "url": "https://api.github.com/repos/clear-code/fluent-plugin-github-activities/commits/8e90721ff5d89f52b5b3adf0b86db01f03dc5588",
23
+ "html_url": "https://github.com/clear-code/fluent-plugin-github-activities/commit/8e90721ff5d89f52b5b3adf0b86db01f03dc5588",
24
+ "comments_url": "https://api.github.com/repos/clear-code/fluent-plugin-github-activities/commits/8e90721ff5d89f52b5b3adf0b86db01f03dc5588/comments",
25
+ "author": {
26
+ "login": "piroor",
27
+ "id": 70062,
28
+ "avatar_url": "https://avatars.githubusercontent.com/u/70062?v=3",
29
+ "gravatar_id": "",
30
+ "url": "https://api.github.com/users/piroor",
31
+ "html_url": "https://github.com/piroor",
32
+ "followers_url": "https://api.github.com/users/piroor/followers",
33
+ "following_url": "https://api.github.com/users/piroor/following{/other_user}",
34
+ "gists_url": "https://api.github.com/users/piroor/gists{/gist_id}",
35
+ "starred_url": "https://api.github.com/users/piroor/starred{/owner}{/repo}",
36
+ "subscriptions_url": "https://api.github.com/users/piroor/subscriptions",
37
+ "organizations_url": "https://api.github.com/users/piroor/orgs",
38
+ "repos_url": "https://api.github.com/users/piroor/repos",
39
+ "events_url": "https://api.github.com/users/piroor/events{/privacy}",
40
+ "received_events_url": "https://api.github.com/users/piroor/received_events",
41
+ "type": "User",
42
+ "site_admin": false
43
+ },
44
+ "committer": {
45
+ "login": "piroor",
46
+ "id": 70062,
47
+ "avatar_url": "https://avatars.githubusercontent.com/u/70062?v=3",
48
+ "gravatar_id": "",
49
+ "url": "https://api.github.com/users/piroor",
50
+ "html_url": "https://github.com/piroor",
51
+ "followers_url": "https://api.github.com/users/piroor/followers",
52
+ "following_url": "https://api.github.com/users/piroor/following{/other_user}",
53
+ "gists_url": "https://api.github.com/users/piroor/gists{/gist_id}",
54
+ "starred_url": "https://api.github.com/users/piroor/starred{/owner}{/repo}",
55
+ "subscriptions_url": "https://api.github.com/users/piroor/subscriptions",
56
+ "organizations_url": "https://api.github.com/users/piroor/orgs",
57
+ "repos_url": "https://api.github.com/users/piroor/repos",
58
+ "events_url": "https://api.github.com/users/piroor/events{/privacy}",
59
+ "received_events_url": "https://api.github.com/users/piroor/received_events",
60
+ "type": "User",
61
+ "site_admin": false
62
+ },
63
+ "parents": [
64
+ {
65
+ "sha": "e77acc068b5568f8ea55605db2e3a9005805c898",
66
+ "url": "https://api.github.com/repos/clear-code/fluent-plugin-github-activities/commits/e77acc068b5568f8ea55605db2e3a9005805c898",
67
+ "html_url": "https://github.com/clear-code/fluent-plugin-github-activities/commit/e77acc068b5568f8ea55605db2e3a9005805c898"
68
+ }
69
+ ],
70
+ "stats": {
71
+ "total": 2,
72
+ "additions": 2,
73
+ "deletions": 0
74
+ },
75
+ "files": [
76
+ {
77
+ "sha": "cf54be996c731d5a8223934eecaac9d7cba2687e",
78
+ "filename": "lib/fluent/plugin/github-activities.rb",
79
+ "status": "modified",
80
+ "additions": 2,
81
+ "deletions": 0,
82
+ "changes": 2,
83
+ "blob_url": "https://github.com/clear-code/fluent-plugin-github-activities/blob/8e90721ff5d89f52b5b3adf0b86db01f03dc5588/lib/fluent/plugin/github-activities.rb",
84
+ "raw_url": "https://github.com/clear-code/fluent-plugin-github-activities/raw/8e90721ff5d89f52b5b3adf0b86db01f03dc5588/lib/fluent/plugin/github-activities.rb",
85
+ "contents_url": "https://api.github.com/repos/clear-code/fluent-plugin-github-activities/contents/lib/fluent/plugin/github-activities.rb?ref=8e90721ff5d89f52b5b3adf0b86db01f03dc5588",
86
+ "patch": "@@ -21,6 +21,8 @@\n \n module Fluent\n module GithubActivities\n+ BASE_TAG = \"github-activity\"\n+\n TYPE_EVENTS = :events\n TYPE_COMMIT = :commit\n end"
87
+ }
88
+ ]
89
+ }
@@ -0,0 +1,115 @@
1
+ {
2
+ "id": "2823098048",
3
+ "type": "ForkEvent",
4
+ "actor": {
5
+ "id": 70062,
6
+ "login": "piroor",
7
+ "gravatar_id": "",
8
+ "url": "https://api.github.com/users/piroor",
9
+ "avatar_url": "https://avatars.githubusercontent.com/u/70062?"
10
+ },
11
+ "repo": {
12
+ "id": 35922279,
13
+ "name": "clear-code/fluent-plugin-github-activities",
14
+ "url": "https://api.github.com/repos/clear-code/fluent-plugin-github-activities"
15
+ },
16
+ "payload": {
17
+ "forkee": {
18
+ "id": 35994648,
19
+ "name": "fluent-plugin-github-activities",
20
+ "full_name": "piroor/fluent-plugin-github-activities",
21
+ "owner": {
22
+ "login": "piroor",
23
+ "id": 70062,
24
+ "avatar_url": "https://avatars.githubusercontent.com/u/70062?v=3",
25
+ "gravatar_id": "",
26
+ "url": "https://api.github.com/users/piroor",
27
+ "html_url": "https://github.com/piroor",
28
+ "followers_url": "https://api.github.com/users/piroor/followers",
29
+ "following_url": "https://api.github.com/users/piroor/following{/other_user}",
30
+ "gists_url": "https://api.github.com/users/piroor/gists{/gist_id}",
31
+ "starred_url": "https://api.github.com/users/piroor/starred{/owner}{/repo}",
32
+ "subscriptions_url": "https://api.github.com/users/piroor/subscriptions",
33
+ "organizations_url": "https://api.github.com/users/piroor/orgs",
34
+ "repos_url": "https://api.github.com/users/piroor/repos",
35
+ "events_url": "https://api.github.com/users/piroor/events{/privacy}",
36
+ "received_events_url": "https://api.github.com/users/piroor/received_events",
37
+ "type": "User",
38
+ "site_admin": false
39
+ },
40
+ "private": false,
41
+ "html_url": "https://github.com/piroor/fluent-plugin-github-activities",
42
+ "description": "Provides ability to watch activities on GitHub",
43
+ "fork": true,
44
+ "url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities",
45
+ "forks_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/forks",
46
+ "keys_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/keys{/key_id}",
47
+ "collaborators_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/collaborators{/collaborator}",
48
+ "teams_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/teams",
49
+ "hooks_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/hooks",
50
+ "issue_events_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/issues/events{/number}",
51
+ "events_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/events",
52
+ "assignees_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/assignees{/user}",
53
+ "branches_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/branches{/branch}",
54
+ "tags_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/tags",
55
+ "blobs_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/git/blobs{/sha}",
56
+ "git_tags_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/git/tags{/sha}",
57
+ "git_refs_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/git/refs{/sha}",
58
+ "trees_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/git/trees{/sha}",
59
+ "statuses_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/statuses/{sha}",
60
+ "languages_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/languages",
61
+ "stargazers_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/stargazers",
62
+ "contributors_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/contributors",
63
+ "subscribers_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/subscribers",
64
+ "subscription_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/subscription",
65
+ "commits_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/commits{/sha}",
66
+ "git_commits_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/git/commits{/sha}",
67
+ "comments_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/comments{/number}",
68
+ "issue_comment_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/issues/comments{/number}",
69
+ "contents_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/contents/{+path}",
70
+ "compare_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/compare/{base}...{head}",
71
+ "merges_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/merges",
72
+ "archive_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/{archive_format}{/ref}",
73
+ "downloads_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/downloads",
74
+ "issues_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/issues{/number}",
75
+ "pulls_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/pulls{/number}",
76
+ "milestones_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/milestones{/number}",
77
+ "notifications_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/notifications{?since,all,participating}",
78
+ "labels_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/labels{/name}",
79
+ "releases_url": "https://api.github.com/repos/piroor/fluent-plugin-github-activities/releases{/id}",
80
+ "created_at": "2015-05-21T06:13:39Z",
81
+ "updated_at": "2015-05-20T07:30:00Z",
82
+ "pushed_at": "2015-05-21T06:09:12Z",
83
+ "git_url": "git://github.com/piroor/fluent-plugin-github-activities.git",
84
+ "ssh_url": "git@github.com:piroor/fluent-plugin-github-activities.git",
85
+ "clone_url": "https://github.com/piroor/fluent-plugin-github-activities.git",
86
+ "svn_url": "https://github.com/piroor/fluent-plugin-github-activities",
87
+ "homepage": null,
88
+ "size": 0,
89
+ "stargazers_count": 0,
90
+ "watchers_count": 0,
91
+ "language": null,
92
+ "has_issues": false,
93
+ "has_downloads": true,
94
+ "has_wiki": true,
95
+ "has_pages": false,
96
+ "forks_count": 0,
97
+ "mirror_url": null,
98
+ "open_issues_count": 0,
99
+ "forks": 0,
100
+ "open_issues": 0,
101
+ "watchers": 0,
102
+ "default_branch": "master",
103
+ "public": true
104
+ }
105
+ },
106
+ "public": true,
107
+ "created_at": "2015-05-21T06:13:39Z",
108
+ "org": {
109
+ "id": 176515,
110
+ "login": "clear-code",
111
+ "gravatar_id": "",
112
+ "url": "https://api.github.com/orgs/clear-code",
113
+ "avatar_url": "https://avatars.githubusercontent.com/u/176515?"
114
+ }
115
+ }