GitHub PullRequestReviewCommentEvent at 2014-09-23 23:36:26
Repository: splunk-sdk-csharp-pcl
Actor: glennblock
Payload: {"action":"created","comment":{"url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/pulls/comments/17946356","id":17946356,"diff_hunk":"@@ -0,0 +1,206 @@\n+﻿using System;\n+using System.Collections.Generic;\n+using System.Threading.Tasks;\n+using Splunk.ModularInputs;\n+using System.IO;\n+using System.Linq;\n+using Octokit;\n+using System.Text.RegularExpressions;\n+\n+namespace GithubCommits\n+{\n+    public class Program : ModularInput\n+    {\n+        /// <summary>\n+        /// Main method which dispatches to ModularInput.Run&lt;T&gt;.\n+        /// </summary>\n+        /// <param name=\"args\">The command line arguments.</param>\n+        /// <returns>An exit code.</returns>\n+        public static int Main(string[] args)\n+        {\n+            return Run<Program>(args);\n+        }\n+\n+        /// <summary>\n+        /// Define a Scheme instance that describes this modular input's behavior. The scheme\n+        /// will be serialized to XML and printed to stdout when this program is invoked with\n+        /// the sole argument <tt>--scheme</tt>, which Splunk does when starting up and each time\n+        /// the app containing the modular input is enabled.\n+        /// </summary>\n+        /// <remarks>\n+        /// You must define a Title, Description, and a list of Arguments. Each argument\n+        /// you list here must also be specified in\n+        /// <tt>GithubCommits\\README\\inputs.conf.spec</tt>.\n+        /// </remarks>\n+        public override Scheme Scheme\n+        {\n+            get\n+            {\n+                return new Scheme\n+                {\n+                    Title = \"Github Commits\",\n+                    Description = \"Streams events of commits in the specified Github repository.\",\n+                    Arguments = new List<Argument>\n+                    {\n+                            new Argument\n+                            {\n+                                Name = \"Owner\",\n+                                Description = \"The owner of the repository to stream the commits from.\",\n+                                DataType = DataType.String,\n+                                RequiredOnCreate = true,\n+                                RequiredOnEdit = false\n+                            },\n+                            new Argument\n+                            {\n+                                Name = \"Repository\",\n+                                Description = \"The name of the public repository. (Private repositories are allowed with specific token)\",\n+                                DataType = DataType.String,\n+                                RequiredOnCreate = true,\n+                                RequiredOnEdit = false\n+                            },\n+                            new Argument\n+                            {\n+                                Name = \"Token\",\n+                                Description = \"(Optional) A Github API access token. Required for private repositories. More info found here https://github.com/blog/1509-personal-api-tokens\",\n+                                DataType = DataType.String,\n+                                RequiredOnCreate = false,\n+                                RequiredOnEdit = false\n+                            }\n+                    }\n+                };\n+            }\n+        }\n+\n+        /// <summary>\n+        /// Check that the values of arguments specified for a newly created or edited instance of\n+        /// this modular input are valid. If they are valid, set <tt>errorMessage</tt> to <tt>\"\"</tt>\n+        /// and return <tt>true</tt>. Otherwise, set <tt>errorMessage</tt> to an informative explanation \n+        /// of what makes the arguments invalid and return <tt>false</tt>.\n+        /// </summary>\n+        /// <param name=\"validation\">a Validation object specifying the new argument values.</param>\n+        /// <param name=\"errorMessage\">an output parameter to pass back an error message.</param>\n+        /// <returns><tt>true</tt> if the arguments are valid and <tt>false</tt> otherwise.</returns>\n+        public static async Task<Repository> GetRepository(GitHubClient client, String owner, String name)\n+        {\n+            return await client.Repository.Get(owner, name);\n+        }\n+\n+        public override bool Validate(Validation validation, out string errorMessage)\n+        {\n+            errorMessage = \"\";\n+            \n+            var client = new GitHubClient(new ProductHeaderValue(\"splunk-sdk-csharp-github-commits\"));\n+            var owner = ((SingleValueParameter)validation.Parameters[\"Owner\"]).ToString();\n+            var name = ((SingleValueParameter)validation.Parameters[\"Repository\"]).ToString();\n+\n+            if(((SingleValueParameter)validation.Parameters[\"Token\"]).Value != null){\n+                var token = ((SingleValueParameter)validation.Parameters[\"Token\"]).ToString();\n+                client.Credentials = new Credentials(token);\n+            }\n+\n+            try\n+            {\n+                GetRepository(client, owner, name).Wait();\n+                return true;\n+            }\n+            catch (Exception e)\n+            {\n+                errorMessage = \"The validation failed, error recieved: \" + e.Message;\n+                return false;\n+            }\n+        }\n+\n+        /// <summary>\n+        /// Write events to Splunk from this modular input.\n+        /// </summary>\n+        /// <remarks>\n+        /// This function will be invoked once for each instance of the modular input, though that invocation\n+        /// may or may not be in separate processes, depending on how the modular input is configured. It should\n+        /// extract the arguments it needs from <tt>inputDefinition</tt>, then write events to <tt>eventWriter</tt>\n+        /// (which is thread safe).\n+        /// </remarks>\n+        /// <param name=\"inputDefinition\">a specification of this instance of the modular input.</param>\n+        /// <param name=\"eventWriter\">an object that handles writing events to Splunk.</param>\n+        public override async Task StreamEventsAsync(InputDefinition inputDefinition, EventWriter eventWriter)\n+        {\n+            var owner = ((SingleValueParameter)inputDefinition.Parameters[\"Owner\"]).ToString();\n+            var name = ((SingleValueParameter)inputDefinition.Parameters[\"Repository\"]).ToString();\n+            var checkpointFilePath = System.IO.Path.Combine(inputDefinition.CheckpointDirectory, owner + \" \" + name + \".txt\");\n+            var client = new GitHubClient(new ProductHeaderValue(\"splunk-sdk-csharp-github-commits\"));\n+\n+            if (((SingleValueParameter)inputDefinition.Parameters[\"Token\"]).Value != null)\n+            {\n+                var token = ((SingleValueParameter)inputDefinition.Parameters[\"Token\"]).ToString();\n+                client.Credentials = new Credentials(token);\n+            }\n+\n+            HashSet<string> sha_keys = new HashSet<string>();\n+\n+            var commit_list = await client.Repository.Commits.GetAll(owner, name);\n+            try\n+            {\n+                System.IO.StreamReader file = new System.IO.StreamReader(checkpointFilePath);\n+                string line;\n+                while ((line = file.ReadLine()) != null)\n+                {\n+                    sha_keys.Add(line);\n+                }\n+                file.Close();\n+\n+            }\n+            catch\n+            {\n+                Directory.CreateDirectory(Path.GetDirectoryName(checkpointFilePath));\n+                FileStream file = System.IO.File.Create(checkpointFilePath);\n+                file.Close();\n+            }\n+\n+            string error_msg = \"\";\n+            try\n+            {\n+                System.IO.StreamWriter file_writer = new System.IO.StreamWriter(checkpointFilePath, true);\n+                for (var i = 0; i < commit_list.Count; i++)\n+                {\n+                    if (!sha_keys.Contains(commit_list[i].Sha))\n+                    {\n+                        sha_keys.Add(commit_list[i].Sha);\n+                        file_writer.WriteLine(commit_list[i].Sha);\n+\n+                        Event e = new Event();\n+                        e.Stanza = name;\n+                        e.SourceType = \"github_commits\";\n+                        e.Time = commit_list[i].Commit.Author.Date;\n+\n+                        Dictionary<string, string> json = new Dictionary<string, string>();\n+                        json.Add(\"sha\", commit_list[i].Sha);\n+                        json.Add(\"api_url\", commit_list[i].Url);\n+                        json.Add(\"url\", commit_list[i].HtmlUrl);\n+                        \n+                        \n+                        json.Add(\"message\", Regex.Replace(commit_list[i].Commit.Message, \"\\\\r|\\\\n\", \" \"));\n+                        json.Add(\"author\", commit_list[i].Commit.Author.Name);\n+                        json.Add(\"date\", commit_list[i].Commit.Author.Date.ToString());\n+\n+                        var jsonifyied = json.Select(d =>","path":"examples/GithubCommits/GithubCommits.cs","position":184,"original_position":184,"commit_id":"5ff03fa73e52839815ebebf5ed39db4bf52d1910","original_commit_id":"5ff03fa73e52839815ebebf5ed39db4bf52d1910","user":{"login":"glennblock","id":141124,"avatar_url":"https://avatars.githubusercontent.com/u/141124?v=2","gravatar_id":"","url":"https://api.github.com/users/glennblock","html_url":"https://github.com/glennblock","followers_url":"https://api.github.com/users/glennblock/followers","following_url":"https://api.github.com/users/glennblock/following{/other_user}","gists_url":"https://api.github.com/users/glennblock/gists{/gist_id}","starred_url":"https://api.github.com/users/glennblock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glennblock/subscriptions","organizations_url":"https://api.github.com/users/glennblock/orgs","repos_url":"https://api.github.com/users/glennblock/repos","events_url":"https://api.github.com/users/glennblock/events{/privacy}","received_events_url":"https://api.github.com/users/glennblock/received_events","type":"User","site_admin":false},"body":"For dictionaries it is more standard to set the fields rather than add.\r\n\r\njson[\"sha\"] = commit_list[i].Sha);","created_at":"2014-09-23T23:36:26Z","updated_at":"2014-09-23T23:36:26Z","html_url":"https://github.com/splunk/splunk-sdk-csharp-pcl/pull/19#discussion_r17946356","pull_request_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/pulls/19","_links":{"self":{"href":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/pulls/comments/17946356"},"html":{"href":"https://github.com/splunk/splunk-sdk-csharp-pcl/pull/19#discussion_r17946356"},"pull_request":{"href":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/pulls/19"}}},"pull_request":{"url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/pulls/19","id":21531011,"html_url":"https://github.com/splunk/splunk-sdk-csharp-pcl/pull/19","diff_url":"https://github.com/splunk/splunk-sdk-csharp-pcl/pull/19.diff","patch_url":"https://github.com/splunk/splunk-sdk-csharp-pcl/pull/19.patch","issue_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/issues/19","number":19,"state":"open","locked":false,"title":"Added github commits example.","user":{"login":"stelles","id":1278900,"avatar_url":"https://avatars.githubusercontent.com/u/1278900?v=2","gravatar_id":"","url":"https://api.github.com/users/stelles","html_url":"https://github.com/stelles","followers_url":"https://api.github.com/users/stelles/followers","following_url":"https://api.github.com/users/stelles/following{/other_user}","gists_url":"https://api.github.com/users/stelles/gists{/gist_id}","starred_url":"https://api.github.com/users/stelles/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stelles/subscriptions","organizations_url":"https://api.github.com/users/stelles/orgs","repos_url":"https://api.github.com/users/stelles/repos","events_url":"https://api.github.com/users/stelles/events{/privacy}","received_events_url":"https://api.github.com/users/stelles/received_events","type":"User","site_admin":false},"body":"Hey All, @glennblock, @shakeelmohamed, @madhadron, @davidfstr,\r\n\r\nToday is my last day but I would like to finish this example sometime soon.\r\n\r\nIf you guys would like to write your comments here, I'll update the example and then let you guys release it.\r\n\r\nThanks for all the help!\r\n\r\n","created_at":"2014-09-20T00:17:54Z","updated_at":"2014-09-23T23:36:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"40b112cc5b1d4226d7490f9e7daebbe304649eef","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/pulls/19/commits","review_comments_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/pulls/19/comments","review_comment_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/pulls/comments/{number}","comments_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/issues/19/comments","statuses_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/statuses/5ff03fa73e52839815ebebf5ed39db4bf52d1910","head":{"label":"splunk:example/github_commits","ref":"example/github_commits","sha":"5ff03fa73e52839815ebebf5ed39db4bf52d1910","user":{"login":"splunk","id":651467,"avatar_url":"https://avatars.githubusercontent.com/u/651467?v=2","gravatar_id":"","url":"https://api.github.com/users/splunk","html_url":"https://github.com/splunk","followers_url":"https://api.github.com/users/splunk/followers","following_url":"https://api.github.com/users/splunk/following{/other_user}","gists_url":"https://api.github.com/users/splunk/gists{/gist_id}","starred_url":"https://api.github.com/users/splunk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/splunk/subscriptions","organizations_url":"https://api.github.com/users/splunk/orgs","repos_url":"https://api.github.com/users/splunk/repos","events_url":"https://api.github.com/users/splunk/events{/privacy}","received_events_url":"https://api.github.com/users/splunk/received_events","type":"Organization","site_admin":false},"repo":{"id":16777291,"name":"splunk-sdk-csharp-pcl","full_name":"splunk/splunk-sdk-csharp-pcl","owner":{"login":"splunk","id":651467,"avatar_url":"https://avatars.githubusercontent.com/u/651467?v=2","gravatar_id":"","url":"https://api.github.com/users/splunk","html_url":"https://github.com/splunk","followers_url":"https://api.github.com/users/splunk/followers","following_url":"https://api.github.com/users/splunk/following{/other_user}","gists_url":"https://api.github.com/users/splunk/gists{/gist_id}","starred_url":"https://api.github.com/users/splunk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/splunk/subscriptions","organizations_url":"https://api.github.com/users/splunk/orgs","repos_url":"https://api.github.com/users/splunk/repos","events_url":"https://api.github.com/users/splunk/events{/privacy}","received_events_url":"https://api.github.com/users/splunk/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/splunk/splunk-sdk-csharp-pcl","description":"Splunk's next generation C# SDK","fork":false,"url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl","forks_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/forks","keys_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/teams","hooks_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/hooks","issue_events_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/issues/events{/number}","events_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/events","assignees_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/assignees{/user}","branches_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/branches{/branch}","tags_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/tags","blobs_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/git/refs{/sha}","trees_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/statuses/{sha}","languages_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/languages","stargazers_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/stargazers","contributors_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/contributors","subscribers_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/subscribers","subscription_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/subscription","commits_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/commits{/sha}","git_commits_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/git/commits{/sha}","comments_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/comments{/number}","issue_comment_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/issues/comments/{number}","contents_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/contents/{+path}","compare_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/merges","archive_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/downloads","issues_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/issues{/number}","pulls_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/pulls{/number}","milestones_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/milestones{/number}","notifications_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/labels{/name}","releases_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/releases{/id}","created_at":"2014-02-12T18:32:47Z","updated_at":"2014-09-02T02:54:31Z","pushed_at":"2014-09-19T22:55:33Z","git_url":"git://github.com/splunk/splunk-sdk-csharp-pcl.git","ssh_url":"git@github.com:splunk/splunk-sdk-csharp-pcl.git","clone_url":"https://github.com/splunk/splunk-sdk-csharp-pcl.git","svn_url":"https://github.com/splunk/splunk-sdk-csharp-pcl","homepage":"","size":64642,"stargazers_count":17,"watchers_count":17,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":8,"mirror_url":null,"open_issues_count":1,"forks":8,"open_issues":1,"watchers":17,"default_branch":"master"}},"base":{"label":"splunk:develop","ref":"develop","sha":"7a9eec43ebb81b7248aa326989afd766e85db526","user":{"login":"splunk","id":651467,"avatar_url":"https://avatars.githubusercontent.com/u/651467?v=2","gravatar_id":"","url":"https://api.github.com/users/splunk","html_url":"https://github.com/splunk","followers_url":"https://api.github.com/users/splunk/followers","following_url":"https://api.github.com/users/splunk/following{/other_user}","gists_url":"https://api.github.com/users/splunk/gists{/gist_id}","starred_url":"https://api.github.com/users/splunk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/splunk/subscriptions","organizations_url":"https://api.github.com/users/splunk/orgs","repos_url":"https://api.github.com/users/splunk/repos","events_url":"https://api.github.com/users/splunk/events{/privacy}","received_events_url":"https://api.github.com/users/splunk/received_events","type":"Organization","site_admin":false},"repo":{"id":16777291,"name":"splunk-sdk-csharp-pcl","full_name":"splunk/splunk-sdk-csharp-pcl","owner":{"login":"splunk","id":651467,"avatar_url":"https://avatars.githubusercontent.com/u/651467?v=2","gravatar_id":"","url":"https://api.github.com/users/splunk","html_url":"https://github.com/splunk","followers_url":"https://api.github.com/users/splunk/followers","following_url":"https://api.github.com/users/splunk/following{/other_user}","gists_url":"https://api.github.com/users/splunk/gists{/gist_id}","starred_url":"https://api.github.com/users/splunk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/splunk/subscriptions","organizations_url":"https://api.github.com/users/splunk/orgs","repos_url":"https://api.github.com/users/splunk/repos","events_url":"https://api.github.com/users/splunk/events{/privacy}","received_events_url":"https://api.github.com/users/splunk/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/splunk/splunk-sdk-csharp-pcl","description":"Splunk's next generation C# SDK","fork":false,"url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl","forks_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/forks","keys_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/teams","hooks_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/hooks","issue_events_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/issues/events{/number}","events_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/events","assignees_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/assignees{/user}","branches_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/branches{/branch}","tags_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/tags","blobs_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/git/refs{/sha}","trees_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/statuses/{sha}","languages_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/languages","stargazers_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/stargazers","contributors_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/contributors","subscribers_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/subscribers","subscription_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/subscription","commits_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/commits{/sha}","git_commits_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/git/commits{/sha}","comments_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/comments{/number}","issue_comment_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/issues/comments/{number}","contents_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/contents/{+path}","compare_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/merges","archive_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/downloads","issues_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/issues{/number}","pulls_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/pulls{/number}","milestones_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/milestones{/number}","notifications_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/labels{/name}","releases_url":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/releases{/id}","created_at":"2014-02-12T18:32:47Z","updated_at":"2014-09-02T02:54:31Z","pushed_at":"2014-09-19T22:55:33Z","git_url":"git://github.com/splunk/splunk-sdk-csharp-pcl.git","ssh_url":"git@github.com:splunk/splunk-sdk-csharp-pcl.git","clone_url":"https://github.com/splunk/splunk-sdk-csharp-pcl.git","svn_url":"https://github.com/splunk/splunk-sdk-csharp-pcl","homepage":"","size":64642,"stargazers_count":17,"watchers_count":17,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":8,"mirror_url":null,"open_issues_count":1,"forks":8,"open_issues":1,"watchers":17,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/pulls/19"},"html":{"href":"https://github.com/splunk/splunk-sdk-csharp-pcl/pull/19"},"issue":{"href":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/issues/19"},"comments":{"href":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/issues/19/comments"},"review_comments":{"href":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/pulls/19/comments"},"review_comment":{"href":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/pulls/19/commits"},"statuses":{"href":"https://api.github.com/repos/splunk/splunk-sdk-csharp-pcl/statuses/5ff03fa73e52839815ebebf5ed39db4bf52d1910"}}}}