{"action":"created","comment":{"url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/pulls/comments/194575141","pull_request_review_id":127774257,"id":194575141,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5NDU3NTE0MQ==","diff_hunk":"@@ -642,6 +643,105 @@ export class InternalClient extends EventEmitter {\n     /*Codes_SRS_NODE_INTERNAL_CLIENT_16_091: [The `fromAuthenticationProvider` method shall return a `Client` object configured with a new instance of a transport created using the `transportCtor` argument.]*/\n     return new clientCtor(new transportCtor(authenticationProvider), null, new BlobUploadClient(authenticationProvider));\n   }\n+\n+  static validateEnvironment(): void {\n+    // Codes_SRS_NODE_INTERNAL_CLIENT_13_029: [ If environment variables EdgeHubConnectionString and IotHubConnectionString do not exist then the following environment variables must be defined: IOTEDGE_WORKLOADURI, IOTEDGE_DEVICEID, IOTEDGE_MODULEID, IOTEDGE_IOTHUBHOSTNAME, IOTEDGE_AUTHSCHEME and IOTEDGE_MODULEGENERATIONID. ]\n+\n+    const keys = [\n+      'IOTEDGE_WORKLOADURI',\n+      'IOTEDGE_DEVICEID',\n+      'IOTEDGE_MODULEID',\n+      'IOTEDGE_IOTHUBHOSTNAME',\n+      'IOTEDGE_AUTHSCHEME',\n+      'IOTEDGE_MODULEGENERATIONID'\n+    ];\n+\n+    keys.forEach((key) => {\n+      if (!process.env[key]) {\n+        throw new errors.PreconditionFailedError(\n+          `Envrionment variable ${key} was not provided.`\n+        );\n+      }\n+    });\n+\n+    // Codes_SRS_NODE_INTERNAL_CLIENT_13_030: [ The value for the environment variable IOTEDGE_AUTHSCHEME must be SasToken. ]\n+\n+    // we only support sas token auth scheme at this time\n+    if (process.env.IOTEDGE_AUTHSCHEME !== 'SasToken') {\n+      throw new errors.PreconditionFailedError(\n+        `Authentication scheme ${\n+          process.env.IOTEDGE_AUTHSCHEME\n+        } is not a supported scheme.`\n+      );\n+    }\n+  }\n+\n+    /**\n+     * @method            module:azure-iot-device.Client.fromEnvironment\n+     * @description       Creates an IoT Hub internal client by using configuration\n+     *                    information from the environment. If an environment\n+     *                    variable called `EdgeHubConnectionString` or `IotHubConnectionString`\n+     *                    exists, then that value is used and behavior is identical\n+     *                    to calling `fromConnectionString` passing that in. If\n+     *                    those environment variables do not exist then the following\n+     *                    variables MUST be defined:\n+     *                      IOTEDGE_WORKLOADURI        - URI for iotedged's workload API\n+     *                      IOTEDGE_DEVICEID           - Device identifier\n+     *                      IOTEDGE_MODULEID           - Module identifier\n+     *                      IOTEDGE_MODULEGENERATIONID - Module generation identifier\n+     *                      IOTEDGE_IOTHUBHOSTNAME     - IoT Hub host name\n+     *                      IOTEDGE_AUTHSCHEME         - Authentication scheme to use;\n+     *                                                   must be \"SasToken\"\n+     *\n+     * @param {Function}  transportCtor     A transport constructor.\n+     * @param {Function}  clientCtor        The client object constructor.\n+     */\n+  static fromEnvironment(transportCtor: any, clientCtor: any): any {\n+    // Codes_SRS_NODE_INTERNAL_CLIENT_13_026: [ The fromEnvironment method shall throw a ReferenceError if the transportCtor argument is falsy. ]\n+    if (!transportCtor) {\n+      throw new ReferenceError('transportCtor cannot be \\'' + transportCtor + '\\'');\n+    }\n+\n+    // Codes_SRS_NODE_INTERNAL_CLIENT_13_027: [ The fromEnvironment method shall throw a ReferenceError if the clientCtor argument is falsy. ]\n+    if (!clientCtor) {\n+      throw new ReferenceError('clientCtor cannot be \\'' + clientCtor + '\\'');\n+    }\n+\n+    // Codes_SRS_NODE_INTERNAL_CLIENT_13_028: [ The fromEnvironment method shall delegate to InternalClient.fromConnectionString if an environment variable called EdgeHubConnectionString or IotHubConnectionString exists. ]\n+\n+    // if the environment has a value for EdgeHubConnectionString then we use that\n+    const connectionString = process.env.EdgeHubConnectionString || process.env.IotHubConnectionString;\n+    if (connectionString) {\n+      return InternalClient.fromConnectionString(\n+        connectionString,\n+        transportCtor,\n+        clientCtor\n+      );\n+    }\n+\n+    // make sure all the environment variables we need have been provided\n+    InternalClient.validateEnvironment();\n+\n+    const authConfig = {\n+      workloadUri: process.env.IOTEDGE_WORKLOADURI,\n+      deviceId: process.env.IOTEDGE_DEVICEID,\n+      moduleId: process.env.IOTEDGE_MODULEID,\n+      iothubHostName: process.env.IOTEDGE_IOTHUBHOSTNAME,\n+      authScheme: process.env.IOTEDGE_AUTHSCHEME,\n+      gatewayHostName: process.env.IOTEDGE_GATEWAYHOSTNAME,\n+      generationId: process.env.IOTEDGE_MODULEGENERATIONID\n+    };\n+\n+    // Codes_SRS_NODE_INTERNAL_CLIENT_13_032: [ The fromEnvironment method shall create a new IotEdgeAuthenticationProvider object and pass this to the transport constructor. ]\n+    const authenticationProvider = new IotEdgeAuthenticationProvider(authConfig);\n+\n+    // Codes_SRS_NODE_INTERNAL_CLIENT_13_031: [ The fromEnvironment method shall return a new instance of the Client object. ]\n+    return new clientCtor(\n+      new transportCtor(authenticationProvider),\n+      null,\n+      new BlobUploadClient(authenticationProvider)\n+    );\n+  }\n }","path":"device/core/src/internal_client.ts","position":111,"original_position":111,"commit_id":"ce4fc33d7c722191a979c3af82933b80e13ea838","original_commit_id":"ce4fc33d7c722191a979c3af82933b80e13ea838","user":{"login":"avranju","id":628128,"node_id":"MDQ6VXNlcjYyODEyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/628128?v=4","gravatar_id":"","url":"https://api.github.com/users/avranju","html_url":"https://github.com/avranju","followers_url":"https://api.github.com/users/avranju/followers","following_url":"https://api.github.com/users/avranju/following{/other_user}","gists_url":"https://api.github.com/users/avranju/gists{/gist_id}","starred_url":"https://api.github.com/users/avranju/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/avranju/subscriptions","organizations_url":"https://api.github.com/users/avranju/orgs","repos_url":"https://api.github.com/users/avranju/repos","events_url":"https://api.github.com/users/avranju/events{/privacy}","received_events_url":"https://api.github.com/users/avranju/received_events","type":"User","site_admin":false},"body":"Sure. Will move.","created_at":"2018-06-11T23:15:01Z","updated_at":"2018-06-11T23:15:01Z","html_url":"https://github.com/Azure/azure-iot-sdk-node/pull/310#discussion_r194575141","pull_request_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/pulls/310","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-node/pulls/comments/194575141"},"html":{"href":"https://github.com/Azure/azure-iot-sdk-node/pull/310#discussion_r194575141"},"pull_request":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-node/pulls/310"}},"in_reply_to_id":194503797},"pull_request":{"url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/pulls/310","id":193745239,"node_id":"MDExOlB1bGxSZXF1ZXN0MTkzNzQ1MjM5","html_url":"https://github.com/Azure/azure-iot-sdk-node/pull/310","diff_url":"https://github.com/Azure/azure-iot-sdk-node/pull/310.diff","patch_url":"https://github.com/Azure/azure-iot-sdk-node/pull/310.patch","issue_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/issues/310","number":310,"state":"open","locked":false,"title":"Add fromEnvironment support for ModuleClient","user":{"login":"avranju","id":628128,"node_id":"MDQ6VXNlcjYyODEyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/628128?v=4","gravatar_id":"","url":"https://api.github.com/users/avranju","html_url":"https://github.com/avranju","followers_url":"https://api.github.com/users/avranju/followers","following_url":"https://api.github.com/users/avranju/following{/other_user}","gists_url":"https://api.github.com/users/avranju/gists{/gist_id}","starred_url":"https://api.github.com/users/avranju/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/avranju/subscriptions","organizations_url":"https://api.github.com/users/avranju/orgs","repos_url":"https://api.github.com/users/avranju/repos","events_url":"https://api.github.com/users/avranju/events{/privacy}","received_events_url":"https://api.github.com/users/avranju/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-06-08T23:45:29Z","updated_at":"2018-06-11T23:15:01Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6ac510a4dd43443cc405f6849287853ce73271ab","assignee":null,"assignees":[],"requested_reviewers":[{"login":"BertKleewein","id":8028738,"node_id":"MDQ6VXNlcjgwMjg3Mzg=","avatar_url":"https://avatars0.githubusercontent.com/u/8028738?v=4","gravatar_id":"","url":"https://api.github.com/users/BertKleewein","html_url":"https://github.com/BertKleewein","followers_url":"https://api.github.com/users/BertKleewein/followers","following_url":"https://api.github.com/users/BertKleewein/following{/other_user}","gists_url":"https://api.github.com/users/BertKleewein/gists{/gist_id}","starred_url":"https://api.github.com/users/BertKleewein/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BertKleewein/subscriptions","organizations_url":"https://api.github.com/users/BertKleewein/orgs","repos_url":"https://api.github.com/users/BertKleewein/repos","events_url":"https://api.github.com/users/BertKleewein/events{/privacy}","received_events_url":"https://api.github.com/users/BertKleewein/received_events","type":"User","site_admin":false},{"login":"anthonyvercolano","id":9854568,"node_id":"MDQ6VXNlcjk4NTQ1Njg=","avatar_url":"https://avatars0.githubusercontent.com/u/9854568?v=4","gravatar_id":"","url":"https://api.github.com/users/anthonyvercolano","html_url":"https://github.com/anthonyvercolano","followers_url":"https://api.github.com/users/anthonyvercolano/followers","following_url":"https://api.github.com/users/anthonyvercolano/following{/other_user}","gists_url":"https://api.github.com/users/anthonyvercolano/gists{/gist_id}","starred_url":"https://api.github.com/users/anthonyvercolano/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anthonyvercolano/subscriptions","organizations_url":"https://api.github.com/users/anthonyvercolano/orgs","repos_url":"https://api.github.com/users/anthonyvercolano/repos","events_url":"https://api.github.com/users/anthonyvercolano/events{/privacy}","received_events_url":"https://api.github.com/users/anthonyvercolano/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/pulls/310/commits","review_comments_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/pulls/310/comments","review_comment_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/issues/310/comments","statuses_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/statuses/ce4fc33d7c722191a979c3af82933b80e13ea838","head":{"label":"avranju:add-from-env2","ref":"add-from-env2","sha":"ce4fc33d7c722191a979c3af82933b80e13ea838","user":{"login":"avranju","id":628128,"node_id":"MDQ6VXNlcjYyODEyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/628128?v=4","gravatar_id":"","url":"https://api.github.com/users/avranju","html_url":"https://github.com/avranju","followers_url":"https://api.github.com/users/avranju/followers","following_url":"https://api.github.com/users/avranju/following{/other_user}","gists_url":"https://api.github.com/users/avranju/gists{/gist_id}","starred_url":"https://api.github.com/users/avranju/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/avranju/subscriptions","organizations_url":"https://api.github.com/users/avranju/orgs","repos_url":"https://api.github.com/users/avranju/repos","events_url":"https://api.github.com/users/avranju/events{/privacy}","received_events_url":"https://api.github.com/users/avranju/received_events","type":"User","site_admin":false},"repo":{"id":95059175,"node_id":"MDEwOlJlcG9zaXRvcnk5NTA1OTE3NQ==","name":"azure-iot-sdk-node","full_name":"avranju/azure-iot-sdk-node","owner":{"login":"avranju","id":628128,"node_id":"MDQ6VXNlcjYyODEyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/628128?v=4","gravatar_id":"","url":"https://api.github.com/users/avranju","html_url":"https://github.com/avranju","followers_url":"https://api.github.com/users/avranju/followers","following_url":"https://api.github.com/users/avranju/following{/other_user}","gists_url":"https://api.github.com/users/avranju/gists{/gist_id}","starred_url":"https://api.github.com/users/avranju/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/avranju/subscriptions","organizations_url":"https://api.github.com/users/avranju/orgs","repos_url":"https://api.github.com/users/avranju/repos","events_url":"https://api.github.com/users/avranju/events{/privacy}","received_events_url":"https://api.github.com/users/avranju/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/avranju/azure-iot-sdk-node","description":"A Node.js SDK for connecting devices to Microsoft Azure IoT services","fork":true,"url":"https://api.github.com/repos/avranju/azure-iot-sdk-node","forks_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/forks","keys_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/keys{/key_id}","collaborators_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/teams","hooks_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/hooks","issue_events_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/issues/events{/number}","events_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/events","assignees_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/assignees{/user}","branches_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/branches{/branch}","tags_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/tags","blobs_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/git/refs{/sha}","trees_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/git/trees{/sha}","statuses_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/statuses/{sha}","languages_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/languages","stargazers_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/stargazers","contributors_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/contributors","subscribers_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/subscribers","subscription_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/subscription","commits_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/commits{/sha}","git_commits_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/git/commits{/sha}","comments_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/comments{/number}","issue_comment_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/issues/comments{/number}","contents_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/contents/{+path}","compare_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/compare/{base}...{head}","merges_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/merges","archive_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/downloads","issues_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/issues{/number}","pulls_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/pulls{/number}","milestones_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/milestones{/number}","notifications_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/labels{/name}","releases_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/releases{/id}","deployments_url":"https://api.github.com/repos/avranju/azure-iot-sdk-node/deployments","created_at":"2017-06-22T00:49:09Z","updated_at":"2017-06-22T00:49:12Z","pushed_at":"2018-06-09T21:35:55Z","git_url":"git://github.com/avranju/azure-iot-sdk-node.git","ssh_url":"git@github.com:avranju/azure-iot-sdk-node.git","clone_url":"https://github.com/avranju/azure-iot-sdk-node.git","svn_url":"https://github.com/avranju/azure-iot-sdk-node","homepage":"https://azure.github.io/azure-iot-sdk-node/","size":43649,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","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,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Azure:modules-preview","ref":"modules-preview","sha":"24842319ab3d8ab7657435e4bbedb073531990e0","user":{"login":"Azure","id":6844498,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY4NDQ0OTg=","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":70935002,"node_id":"MDEwOlJlcG9zaXRvcnk3MDkzNTAwMg==","name":"azure-iot-sdk-node","full_name":"Azure/azure-iot-sdk-node","owner":{"login":"Azure","id":6844498,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY4NDQ0OTg=","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-node","description":"A Node.js SDK for connecting devices to Microsoft Azure IoT services","fork":false,"url":"https://api.github.com/repos/Azure/azure-iot-sdk-node","forks_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/forks","keys_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/teams","hooks_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/hooks","issue_events_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/issues/events{/number}","events_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/events","assignees_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/assignees{/user}","branches_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/branches{/branch}","tags_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/tags","blobs_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/git/refs{/sha}","trees_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/statuses/{sha}","languages_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/languages","stargazers_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/stargazers","contributors_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/contributors","subscribers_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/subscribers","subscription_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/subscription","commits_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/commits{/sha}","git_commits_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/git/commits{/sha}","comments_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/comments{/number}","issue_comment_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/issues/comments{/number}","contents_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/contents/{+path}","compare_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/merges","archive_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/downloads","issues_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/issues{/number}","pulls_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/pulls{/number}","milestones_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/milestones{/number}","notifications_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/labels{/name}","releases_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/releases{/id}","deployments_url":"https://api.github.com/repos/Azure/azure-iot-sdk-node/deployments","created_at":"2016-10-14T18:03:43Z","updated_at":"2018-06-08T00:15:26Z","pushed_at":"2018-06-11T19:38:33Z","git_url":"git://github.com/Azure/azure-iot-sdk-node.git","ssh_url":"git@github.com:Azure/azure-iot-sdk-node.git","clone_url":"https://github.com/Azure/azure-iot-sdk-node.git","svn_url":"https://github.com/Azure/azure-iot-sdk-node","homepage":"https://docs.microsoft.com/en-us/azure/iot-hub/","size":43746,"stargazers_count":101,"watchers_count":101,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":91,"mirror_url":null,"archived":false,"open_issues_count":11,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":91,"open_issues":11,"watchers":101,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-node/pulls/310"},"html":{"href":"https://github.com/Azure/azure-iot-sdk-node/pull/310"},"issue":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-node/issues/310"},"comments":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-node/issues/310/comments"},"review_comments":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-node/pulls/310/comments"},"review_comment":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-node/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-node/pulls/310/commits"},"statuses":{"href":"https://api.github.com/repos/Azure/azure-iot-sdk-node/statuses/ce4fc33d7c722191a979c3af82933b80e13ea838"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"avranju"}}