{"action":"created","comment":{"url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/pulls/comments/185608658","pull_request_review_id":117032093,"id":185608658,"diff_hunk":"@@ -0,0 +1,1083 @@\n+// Copyright (c) Microsoft. All rights reserved.\n+// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n+\n+namespace Microsoft.Azure.Devices.Client\n+{\n+    using Common;\n+    using System;\n+    using System.Collections.Generic;\n+    using System.Diagnostics;\n+#if NETSTANDARD1_3\n+    using System.Net.Http;\n+#endif\n+    using System.Text.RegularExpressions;\n+    using System.Threading;\n+    using System.Threading.Tasks;\n+    using Microsoft.Azure.Devices.Client.Extensions;\n+    using Microsoft.Azure.Devices.Client.Transport;\n+    using Microsoft.Azure.Devices.Shared;\n+    using Microsoft.Azure.Devices.Client.Transport.Mqtt;\n+    using System.Security.Cryptography.X509Certificates;\n+\n+    /// <summary>\n+    /// Delegate for desired property update callbacks.  This will be called\n+    /// every time we receive a PATCH from the service.\n+    /// </summary>\n+    /// <param name=\"desiredProperties\">Properties that were contained in the update that was received from the service</param>\n+    /// <param name=\"userContext\">Context object passed in when the callback was registered</param>\n+    public delegate Task DesiredPropertyUpdateCallback(TwinCollection desiredProperties, object userContext);\n+\n+    /// <summary>\n+    ///      Delegate for method call. This will be called every time we receive a method call that was registered.\n+    /// </summary>\n+    /// <param name=\"methodRequest\">Class with details about method.</param>\n+    /// <param name=\"userContext\">Context object passed in when the callback was registered.</param>\n+    /// <returns>MethodResponse</returns>\n+    public delegate Task<MethodResponse> MethodCallback(MethodRequest methodRequest, object userContext);\n+\n+    /// <summary>\n+    /// Delegate for connection status changed.\n+    /// </summary>\n+    /// <param name=\"status\">The updated connection status</param>\n+    /// <param name=\"reason\">The reason for the connection status change</param>\n+    public delegate void ConnectionStatusChangesHandler(ConnectionStatus status, ConnectionStatusChangeReason reason);\n+\n+    /*\n+     * Class Diagram and Chain of Responsibility in Device Client \n+                                     +--------------------+\n+                                     | <<interface>>      |\n+                                     | IDelegatingHandler |\n+                                     |  * Open            |\n+                                     |  * Close           |\n+                                     |  * SendEvent       |\n+                                     |  * SendEvents      |\n+                                     |  * Receive         |\n+                                     |  * Complete        |\n+                                     |  * Abandon         |\n+                                     |  * Reject          |\n+                                     +-------+------------+\n+                                             |\n+                                             |implements\n+                                             |\n+                                             |\n+                                     +-------+-------+\n+                                     |  <<abstract>> |     \n+                                     |  Default      |\n+             +---+inherits----------->  Delegating   <------inherits-----------------+\n+             |                       |  Handler      |                               |\n+             |           +--inherits->               <--inherits----+                |\n+             |           |           +-------^-------+              |                |\n+             |           |                   |inherits              |                |\n+             |           |                   |                      |                |\n++------------+       +---+---------+      +--+----------+       +---+--------+       +--------------+\n+|            |       |             |      |             |       |            |       | <<abstract>> |\n+| GateKeeper |  use  | Retry       | use  |  Error      |  use  | Routing    |  use  | Transport    |\n+| Delegating +-------> Delegating  +------>  Delegating +-------> Delegating +-------> Delegating   |\n+| Handler    |       | Handler     |      |  Handler    |       | Handler    |       | Handler      |\n+|            |       |             |      |             |       |            |       |              |\n+| overrides: |       | overrides:  |      |  overrides  |       | overrides: |       | overrides:   |\n+|  Open      |       |  Open       |      |   Open      |       |  Open      |       |  Receive     |\n+|  Close     |       |  SendEvent  |      |   SendEvent |       |            |       |              |\n+|            |       |  SendEvents |      |   SendEvents|       +------------+       +--^--^---^----+\n++------------+       |  Receive    |      |   Receive   |                               |  |   |\n+                     |  Reject     |      |   Reject    |                               |  |   |\n+                     |  Abandon    |      |   Abandon   |                               |  |   |\n+                     |  Complete   |      |   Complete  |                               |  |   |\n+                     |             |      |             |                               |  |   |\n+                     +-------------+      +-------------+     +-------------+-+inherits-+  |   +---inherits-+-------------+\n+                                                              |             |              |                |             |\n+                                                              | AMQP        |              inherits         | HTTP        |\n+                                                              | Transport   |              |                | Transport   |\n+                                                              | Handler     |          +---+---------+      | Handler     |\n+                                                              |             |          |             |      |             |\n+                                                              | overrides:  |          | MQTT        |      | overrides:  |\n+                                                              |  everything |          | Transport   |      |  everything |\n+                                                              |             |          | Handler     |      |             |\n+                                                              +-------------+          |             |      +-------------+\n+                                                                                       | overrides:  |\n+                                                                                       |  everything |\n+                                                                                       |             |\n+                                                                                       +-------------+\n+TODO: revisit DefaultDelegatingHandler - it seems redundant as long as we have to many overloads in most of the classes.\n+*/\n+\n+    /// <summary>\n+    /// Contains methods that a device can use to send messages to and receive from the service.\n+    /// </summary>\n+    public class BaseClient : IDisposable","path":"iothub/device/src/BaseClient.cs","position":107,"original_position":107,"commit_id":"775cf0567d52fe1e1f0145931cc5e8a6a0eac4b5","original_commit_id":"775cf0567d52fe1e1f0145931cc5e8a6a0eac4b5","user":{"login":"varunpuranik","id":8727929,"avatar_url":"https://avatars1.githubusercontent.com/u/8727929?v=4","gravatar_id":"","url":"https://api.github.com/users/varunpuranik","html_url":"https://github.com/varunpuranik","followers_url":"https://api.github.com/users/varunpuranik/followers","following_url":"https://api.github.com/users/varunpuranik/following{/other_user}","gists_url":"https://api.github.com/users/varunpuranik/gists{/gist_id}","starred_url":"https://api.github.com/users/varunpuranik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/varunpuranik/subscriptions","organizations_url":"https://api.github.com/users/varunpuranik/orgs","repos_url":"https://api.github.com/users/varunpuranik/repos","events_url":"https://api.github.com/users/varunpuranik/events{/privacy}","received_events_url":"https://api.github.com/users/varunpuranik/received_events","type":"User","site_admin":false},"body":"Yeah, unfortunately a public class cannot derive from an internal class. ","created_at":"2018-05-02T19:16:27Z","updated_at":"2018-05-02T19:16:27Z","html_url":"https://github.com/Azure/azure-iot-sdk-csharp/pull/465#discussion_r185608658","pull_request_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/pulls/465","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/pulls/comments/185608658"},"html":{"href":"https://github.com/Azure/azure-iot-sdk-csharp/pull/465#discussion_r185608658"},"pull_request":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/pulls/465"}},"in_reply_to_id":185575360},"pull_request":{"url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/pulls/465","id":185364805,"html_url":"https://github.com/Azure/azure-iot-sdk-csharp/pull/465","diff_url":"https://github.com/Azure/azure-iot-sdk-csharp/pull/465.diff","patch_url":"https://github.com/Azure/azure-iot-sdk-csharp/pull/465.patch","issue_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/issues/465","number":465,"state":"open","locked":false,"title":"DeviceClient / ModuleClient split","user":{"login":"varunpuranik","id":8727929,"avatar_url":"https://avatars1.githubusercontent.com/u/8727929?v=4","gravatar_id":"","url":"https://api.github.com/users/varunpuranik","html_url":"https://github.com/varunpuranik","followers_url":"https://api.github.com/users/varunpuranik/followers","following_url":"https://api.github.com/users/varunpuranik/following{/other_user}","gists_url":"https://api.github.com/users/varunpuranik/gists{/gist_id}","starred_url":"https://api.github.com/users/varunpuranik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/varunpuranik/subscriptions","organizations_url":"https://api.github.com/users/varunpuranik/orgs","repos_url":"https://api.github.com/users/varunpuranik/repos","events_url":"https://api.github.com/users/varunpuranik/events{/privacy}","received_events_url":"https://api.github.com/users/varunpuranik/received_events","type":"User","site_admin":false},"body":"# Checklist\r\n- [x] I have read the [contribution guidelines](https://github.com/Azure/azure-iot-sdk-csharp/blob/master/.github/CONTRIBUTING.md).\r\n- [x] I added or modified the existing tests to cover the change (we do not allow our test coverage to go down).\r\n- [x] This pull-request is submitted against the `modules-preview` branch.\r\n\r\n# Description of the changes\r\nSplit DeviceClient API into DeviceClient (for devices) and ModuleClient (for modules). Refactored shared code into a common base class. \r\nAlso fixed the tests as necessary. ","created_at":"2018-05-02T08:14:20Z","updated_at":"2018-05-02T19:16:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f47b973bf9e9cdab9eee061ed4e9d1e6d1d8d704","assignee":null,"assignees":[],"requested_reviewers":[{"login":"pierreca","id":4979572,"avatar_url":"https://avatars2.githubusercontent.com/u/4979572?v=4","gravatar_id":"","url":"https://api.github.com/users/pierreca","html_url":"https://github.com/pierreca","followers_url":"https://api.github.com/users/pierreca/followers","following_url":"https://api.github.com/users/pierreca/following{/other_user}","gists_url":"https://api.github.com/users/pierreca/gists{/gist_id}","starred_url":"https://api.github.com/users/pierreca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pierreca/subscriptions","organizations_url":"https://api.github.com/users/pierreca/orgs","repos_url":"https://api.github.com/users/pierreca/repos","events_url":"https://api.github.com/users/pierreca/events{/privacy}","received_events_url":"https://api.github.com/users/pierreca/received_events","type":"User","site_admin":false},{"login":"zolvarga","id":13277830,"avatar_url":"https://avatars2.githubusercontent.com/u/13277830?v=4","gravatar_id":"","url":"https://api.github.com/users/zolvarga","html_url":"https://github.com/zolvarga","followers_url":"https://api.github.com/users/zolvarga/followers","following_url":"https://api.github.com/users/zolvarga/following{/other_user}","gists_url":"https://api.github.com/users/zolvarga/gists{/gist_id}","starred_url":"https://api.github.com/users/zolvarga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zolvarga/subscriptions","organizations_url":"https://api.github.com/users/zolvarga/orgs","repos_url":"https://api.github.com/users/zolvarga/repos","events_url":"https://api.github.com/users/zolvarga/events{/privacy}","received_events_url":"https://api.github.com/users/zolvarga/received_events","type":"User","site_admin":false},{"login":"jspaith","id":27444433,"avatar_url":"https://avatars1.githubusercontent.com/u/27444433?v=4","gravatar_id":"","url":"https://api.github.com/users/jspaith","html_url":"https://github.com/jspaith","followers_url":"https://api.github.com/users/jspaith/followers","following_url":"https://api.github.com/users/jspaith/following{/other_user}","gists_url":"https://api.github.com/users/jspaith/gists{/gist_id}","starred_url":"https://api.github.com/users/jspaith/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jspaith/subscriptions","organizations_url":"https://api.github.com/users/jspaith/orgs","repos_url":"https://api.github.com/users/jspaith/repos","events_url":"https://api.github.com/users/jspaith/events{/privacy}","received_events_url":"https://api.github.com/users/jspaith/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/pulls/465/commits","review_comments_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/pulls/465/comments","review_comment_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/issues/465/comments","statuses_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/statuses/775cf0567d52fe1e1f0145931cc5e8a6a0eac4b5","head":{"label":"varunpuranik:modules-preview","ref":"modules-preview","sha":"775cf0567d52fe1e1f0145931cc5e8a6a0eac4b5","user":{"login":"varunpuranik","id":8727929,"avatar_url":"https://avatars1.githubusercontent.com/u/8727929?v=4","gravatar_id":"","url":"https://api.github.com/users/varunpuranik","html_url":"https://github.com/varunpuranik","followers_url":"https://api.github.com/users/varunpuranik/followers","following_url":"https://api.github.com/users/varunpuranik/following{/other_user}","gists_url":"https://api.github.com/users/varunpuranik/gists{/gist_id}","starred_url":"https://api.github.com/users/varunpuranik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/varunpuranik/subscriptions","organizations_url":"https://api.github.com/users/varunpuranik/orgs","repos_url":"https://api.github.com/users/varunpuranik/repos","events_url":"https://api.github.com/users/varunpuranik/events{/privacy}","received_events_url":"https://api.github.com/users/varunpuranik/received_events","type":"User","site_admin":false},"repo":{"id":111614585,"name":"azure-iot-sdk-csharp","full_name":"varunpuranik/azure-iot-sdk-csharp","owner":{"login":"varunpuranik","id":8727929,"avatar_url":"https://avatars1.githubusercontent.com/u/8727929?v=4","gravatar_id":"","url":"https://api.github.com/users/varunpuranik","html_url":"https://github.com/varunpuranik","followers_url":"https://api.github.com/users/varunpuranik/followers","following_url":"https://api.github.com/users/varunpuranik/following{/other_user}","gists_url":"https://api.github.com/users/varunpuranik/gists{/gist_id}","starred_url":"https://api.github.com/users/varunpuranik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/varunpuranik/subscriptions","organizations_url":"https://api.github.com/users/varunpuranik/orgs","repos_url":"https://api.github.com/users/varunpuranik/repos","events_url":"https://api.github.com/users/varunpuranik/events{/privacy}","received_events_url":"https://api.github.com/users/varunpuranik/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/varunpuranik/azure-iot-sdk-csharp","description":"A C# SDK for connecting devices to Microsoft Azure IoT services","fork":true,"url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp","forks_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/forks","keys_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/teams","hooks_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/hooks","issue_events_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/issues/events{/number}","events_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/events","assignees_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/assignees{/user}","branches_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/branches{/branch}","tags_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/tags","blobs_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/git/refs{/sha}","trees_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/statuses/{sha}","languages_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/languages","stargazers_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/stargazers","contributors_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/contributors","subscribers_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/subscribers","subscription_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/subscription","commits_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/commits{/sha}","git_commits_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/git/commits{/sha}","comments_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/comments{/number}","issue_comment_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/issues/comments{/number}","contents_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/contents/{+path}","compare_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/merges","archive_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/downloads","issues_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/issues{/number}","pulls_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/pulls{/number}","milestones_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/milestones{/number}","notifications_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/labels{/name}","releases_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/releases{/id}","deployments_url":"https://api.github.com/repos/varunpuranik/azure-iot-sdk-csharp/deployments","created_at":"2017-11-21T23:51:08Z","updated_at":"2017-11-21T23:51:11Z","pushed_at":"2018-05-02T09:05:21Z","git_url":"git://github.com/varunpuranik/azure-iot-sdk-csharp.git","ssh_url":"git@github.com:varunpuranik/azure-iot-sdk-csharp.git","clone_url":"https://github.com/varunpuranik/azure-iot-sdk-csharp.git","svn_url":"https://github.com/varunpuranik/azure-iot-sdk-csharp","homepage":null,"size":43598,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Azure:modules-preview","ref":"modules-preview","sha":"2b84462152209abe1f49bc8a6c504e439c42a027","user":{"login":"Azure","id":6844498,"avatar_url":"https://avatars0.githubusercontent.com/u/6844498?v=4","gravatar_id":"","url":"https://api.github.com/users/Azure","html_url":"https://github.com/Azure","followers_url":"https://api.github.com/users/Azure/followers","following_url":"https://api.github.com/users/Azure/following{/other_user}","gists_url":"https://api.github.com/users/Azure/gists{/gist_id}","starred_url":"https://api.github.com/users/Azure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Azure/subscriptions","organizations_url":"https://api.github.com/users/Azure/orgs","repos_url":"https://api.github.com/users/Azure/repos","events_url":"https://api.github.com/users/Azure/events{/privacy}","received_events_url":"https://api.github.com/users/Azure/received_events","type":"Organization","site_admin":false},"repo":{"id":70936151,"name":"azure-iot-sdk-csharp","full_name":"Azure/azure-iot-sdk-csharp","owner":{"login":"Azure","id":6844498,"avatar_url":"https://avatars0.githubusercontent.com/u/6844498?v=4","gravatar_id":"","url":"https://api.github.com/users/Azure","html_url":"https://github.com/Azure","followers_url":"https://api.github.com/users/Azure/followers","following_url":"https://api.github.com/users/Azure/following{/other_user}","gists_url":"https://api.github.com/users/Azure/gists{/gist_id}","starred_url":"https://api.github.com/users/Azure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Azure/subscriptions","organizations_url":"https://api.github.com/users/Azure/orgs","repos_url":"https://api.github.com/users/Azure/repos","events_url":"https://api.github.com/users/Azure/events{/privacy}","received_events_url":"https://api.github.com/users/Azure/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Azure/azure-iot-sdk-csharp","description":"A C# SDK for connecting devices to Microsoft Azure IoT services","fork":false,"url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp","forks_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/forks","keys_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/teams","hooks_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/hooks","issue_events_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/issues/events{/number}","events_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/events","assignees_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/assignees{/user}","branches_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/branches{/branch}","tags_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/tags","blobs_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/git/refs{/sha}","trees_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/statuses/{sha}","languages_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/languages","stargazers_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/stargazers","contributors_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/contributors","subscribers_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/subscribers","subscription_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/subscription","commits_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/commits{/sha}","git_commits_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/git/commits{/sha}","comments_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/comments{/number}","issue_comment_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/issues/comments{/number}","contents_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/contents/{+path}","compare_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/merges","archive_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/downloads","issues_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/issues{/number}","pulls_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/pulls{/number}","milestones_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/milestones{/number}","notifications_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/labels{/name}","releases_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/releases{/id}","deployments_url":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/deployments","created_at":"2016-10-14T18:18:23Z","updated_at":"2018-04-24T20:22:09Z","pushed_at":"2018-05-02T09:05:23Z","git_url":"git://github.com/Azure/azure-iot-sdk-csharp.git","ssh_url":"git@github.com:Azure/azure-iot-sdk-csharp.git","clone_url":"https://github.com/Azure/azure-iot-sdk-csharp.git","svn_url":"https://github.com/Azure/azure-iot-sdk-csharp","homepage":null,"size":43569,"stargazers_count":147,"watchers_count":147,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":236,"mirror_url":null,"archived":false,"open_issues_count":75,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":236,"open_issues":75,"watchers":147,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/pulls/465"},"html":{"href":"https://github.com/Azure/azure-iot-sdk-csharp/pull/465"},"issue":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/issues/465"},"comments":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/issues/465/comments"},"review_comments":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/pulls/465/comments"},"review_comment":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/pulls/465/commits"},"statuses":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-csharp/statuses/775cf0567d52fe1e1f0145931cc5e8a6a0eac4b5"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"varunpuranik"}}