{"action":"created","comment":{"url":"https://api.github.com/repos/not-nexus/shelf-lib-js/pulls/comments/89863711","pull_request_review_id":10395176,"id":89863711,"diff_hunk":"@@ -0,0 +1,280 @@\n+\"use strict\";\n+\n+describe(\"lib/artifact\", () => {\n+    var Artifact, authTokenMock, bluebird, content, downloadLocation, fs, instance, logger, requestMock, requestOptionsMock, requestPromiseMock, responseHandlerMock, responseMock, uriMock;\n+\n+    authTokenMock = \"abcd1234\";\n+    bluebird = require(\"bluebird\");\n+    downloadLocation = \"example/download/path\";\n+    fs = require(\"fs\");\n+    logger = require(\"../../lib/logger\")();\n+\n+    /**\n+     * A mock Metadata class.\n+     */\n+    class MetadataMock {\n+        /**\n+         * @param {string} authToken\n+         * @param {string} uri\n+         */\n+        constructor(authToken, uri) {\n+            this.authToken = authToken;\n+            this.uri = uri;\n+        }\n+    }\n+    requestMock = require(\"../mock/request-mock\")();\n+    requestOptionsMock = require(\"../mock/request-options-mock\")();\n+    requestPromiseMock = require(\"../mock/request-promise-mock\")();\n+    responseHandlerMock = require(\"../mock/response-handler-mock\")();\n+    responseMock = require(\"../mock/response-mock\")();\n+    uriMock = \"http://www.example.com\";\n+    Artifact = require(\"../../lib/artifact\")(bluebird, fs, logger, requestMock, requestOptionsMock, requestPromiseMock, responseHandlerMock, MetadataMock);\n+\n+    beforeEach(() => {\n+        content = \"someContent\";\n+        instance = new Artifact(uriMock, authTokenMock);\n+    });\n+    describe(\".upload()\", () => {\n+        it(\"calls bluebird.fromCallback()\", () => {\n+            spyOn(bluebird, \"fromCallback\").andReturn(bluebird.resolve({\n+                headers: {\n+                    location: \"someLocation\"\n+                }\n+            }));\n+\n+            return instance.upload(content).then(() => {\n+                expect(bluebird.fromCallback).toHaveBeenCalled();\n+            });\n+        });\n+        it(\"calls requestOptions.createOptions()\", () => {\n+            requestMock.post.andCallFake((options, resolver) => {\n+                return {\n+                    form: () => {\n+                        return {\n+                            append: () => {\n+                                return resolver(null, {\n+                                    headers: {\n+                                        location: \"someLocation\"\n+                                    }\n+                                });\n+                            }\n+                        };\n+                    }\n+                };\n+            });\n+\n+            return instance.upload(content).then(() => {\n+                expect(requestOptionsMock.createOptions).toHaveBeenCalled();\n+            });\n+        });\n+        it(\"calls request.post()\", () => {\n+            requestMock.post.andCallFake((options, resolver) => {\n+                return {\n+                    form: () => {\n+                        return {\n+                            append: () => {\n+                                return resolver(null, {\n+                                    headers: {\n+                                        location: \"someLocation\"\n+                                    }\n+                                });\n+                            }\n+                        };\n+                    }\n+                };\n+            });\n+\n+            return instance.upload(content).then(() => {\n+                expect(requestMock.post).toHaveBeenCalled();\n+            });\n+        });\n+        it(\"calls responseHandler.handleErrorResponse on error\", () => {\n+            responseHandlerMock.isErrorCode.andReturn(true);\n+            spyOn(bluebird, \"fromCallback\").andReturn(bluebird.resolve({\n+                headers: {\n+                    location: \"someLocation\"\n+                }\n+            }));\n+\n+            return instance.upload(content).then(() => {\n+                expect(responseHandlerMock.handleErrorResponse).toHaveBeenCalled();\n+            });\n+        });\n+        it(\"calls responseHandler.resolveLink\", () => {\n+            spyOn(bluebird, \"fromCallback\").andReturn(bluebird.resolve({\n+                headers: {\n+                    location: \"someLocation\"\n+                }\n+            }));\n+\n+            return instance.upload(content).then(() => {\n+                expect(responseHandlerMock.resolveLink).toHaveBeenCalled();\n+            });\n+        });\n+    });\n+    describe(\".uploadFromFile()\", () => {\n+        beforeEach(() => {\n+            responseHandlerMock.isErrorCode.andReturn(true);\n+            spyOn(fs, \"createReadStream\");\n+            spyOn(bluebird, \"fromCallback\").andReturn(bluebird.resolve({\n+                headers: {\n+                    location: \"someLocation\"\n+                }\n+            }));\n+        });\n+        it(\"calls bluebird.fromCallback()\", () => {\n+            return instance.uploadFromFile(content).then(() => {\n+                expect(bluebird.fromCallback).toHaveBeenCalled();\n+            });\n+        });\n+        it(\"creates a read stream if the file is a string\", () => {\n+            bluebird.fromCallback.andCallThrough();\n+            requestMock.post.andCallFake((options, resolver) => {\n+                resolver(null, {\n+                    statusCode: \"exampleStatus\",\n+                    headers: {\n+                        location: \"exampleLocation\"\n+                    }\n+                });\n+            });\n+\n+            return instance.uploadFromFile(content).then(() => {\n+                expect(fs.createReadStream).toHaveBeenCalled();\n+                expect(requestOptionsMock.createOptions).toHaveBeenCalled();\n+                expect(requestMock.post).toHaveBeenCalled();\n+            });\n+        });\n+        it(\"doesn't create a read stream if the file isn't a string\", () => {\n+            requestMock.post.andCallFake((options, resolver) => {\n+                resolver(null, {\n+                    statusCode: \"exampleStatus\",\n+                    headers: {\n+                        location: \"exampleLocation\"\n+                    }\n+                });\n+            });\n+            content = {};\n+\n+            return instance.uploadFromFile(content).then(() => {\n+                expect(fs.createReadStream).not.toHaveBeenCalled();\n+                expect(requestOptionsMock.createOptions).toHaveBeenCalled();\n+                expect(requestMock.post).toHaveBeenCalled();\n+            });\n+        });\n+        it(\"calls responseHandler.handleErrorResponse on error\", () => {\n+            responseHandlerMock.isErrorCode.andReturn(false);\n+\n+            return instance.uploadFromFile(content).then(() => {\n+                expect(responseHandlerMock.handleErrorResponse).toHaveBeenCalled();\n+            });\n+        });\n+        it(\"calls responseHandler.resolveLink\", () => {\n+            return instance.uploadFromFile(content).then(() => {\n+                expect(responseHandlerMock.resolveLink).toHaveBeenCalled();\n+            });\n+        });\n+    });\n+    describe(\".download()\", () => {\n+        it(\"calls requestOptions.createOptions()\", () => {\n+            return instance.download().then(() => {\n+                expect(requestOptionsMock.createOptions).toHaveBeenCalled();\n+            });\n+        });\n+        it(\"calls requestPromise.get()\", () => {\n+            return instance.download().then(() => {\n+                expect(requestPromiseMock.get).toHaveBeenCalled();\n+            });\n+        });\n+        it(\"returns a response body\", () => {\n+            requestPromiseMock.get.andReturn(bluebird.resolve({\n+                body: \"responseBody\"\n+            }));\n+\n+            return instance.download().then((returnVal) => {\n+                expect(returnVal).toBe(\"responseBody\");\n+            });\n+        });\n+        it(\"calls responseHandler.handleErrorResponse on error\", () => {\n+            requestPromiseMock.get.andReturn(bluebird.reject());\n+\n+            return instance.download().then(() => {\n+                expect(responseHandlerMock.handleErrorResponse).toHaveBeenCalled();\n+            });\n+        });\n+    });\n+    describe(\".downloadToFile()\", () => {\n+        var promise;\n+\n+        beforeEach(() => {\n+            spyOn(fs, \"createWriteStream\");\n+            requestMock.get.andReturn(requestMock);\n+            responseHandlerMock.isErrorCode.andReturn(false);\n+            responseMock.pipe.andReturn(responseMock);\n+        });\n+        it(\"creates a write stream if the file is a string\", () => {\n+            promise = instance.downloadToFile(downloadLocation).then(() => {\n+                expect(fs.createWriteStream).toHaveBeenCalled();\n+            });\n+            setTimeout(() => {\n+                requestMock.emit(\"response\", responseMock);\n+                setTimeout(() => {\n+                    responseMock.emit(\"finish\");\n+                }, 500);","path":"spec/lib/artifact.spec.js","position":222,"original_position":222,"commit_id":"37ccd2edff92e15329a6993f9c3ecbb3ed9047cf","original_commit_id":"37ccd2edff92e15329a6993f9c3ecbb3ed9047cf","user":{"login":"lnagle93","id":13711016,"avatar_url":"https://avatars.githubusercontent.com/u/13711016?v=3","gravatar_id":"","url":"https://api.github.com/users/lnagle93","html_url":"https://github.com/lnagle93","followers_url":"https://api.github.com/users/lnagle93/followers","following_url":"https://api.github.com/users/lnagle93/following{/other_user}","gists_url":"https://api.github.com/users/lnagle93/gists{/gist_id}","starred_url":"https://api.github.com/users/lnagle93/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lnagle93/subscriptions","organizations_url":"https://api.github.com/users/lnagle93/orgs","repos_url":"https://api.github.com/users/lnagle93/repos","events_url":"https://api.github.com/users/lnagle93/events{/privacy}","received_events_url":"https://api.github.com/users/lnagle93/received_events","type":"User","site_admin":false},"body":"500 seemed like a safe bet.","created_at":"2016-11-28T19:35:15Z","updated_at":"2016-11-28T19:35:15Z","html_url":"https://github.com/not-nexus/shelf-lib-js/pull/7#discussion_r89863711","pull_request_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/pulls/7","_links":{"self":{"href":"https://api.github.com/repos/not-nexus/shelf-lib-js/pulls/comments/89863711"},"html":{"href":"https://github.com/not-nexus/shelf-lib-js/pull/7#discussion_r89863711"},"pull_request":{"href":"https://api.github.com/repos/not-nexus/shelf-lib-js/pulls/7"}}},"pull_request":{"url":"https://api.github.com/repos/not-nexus/shelf-lib-js/pulls/7","id":94677835,"html_url":"https://github.com/not-nexus/shelf-lib-js/pull/7","diff_url":"https://github.com/not-nexus/shelf-lib-js/pull/7.diff","patch_url":"https://github.com/not-nexus/shelf-lib-js/pull/7.patch","issue_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/issues/7","number":7,"state":"open","locked":false,"title":"Added tests and a couple other, relatively minor, changes.","user":{"login":"lnagle93","id":13711016,"avatar_url":"https://avatars.githubusercontent.com/u/13711016?v=3","gravatar_id":"","url":"https://api.github.com/users/lnagle93","html_url":"https://github.com/lnagle93","followers_url":"https://api.github.com/users/lnagle93/followers","following_url":"https://api.github.com/users/lnagle93/following{/other_user}","gists_url":"https://api.github.com/users/lnagle93/gists{/gist_id}","starred_url":"https://api.github.com/users/lnagle93/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lnagle93/subscriptions","organizations_url":"https://api.github.com/users/lnagle93/orgs","repos_url":"https://api.github.com/users/lnagle93/repos","events_url":"https://api.github.com/users/lnagle93/events{/privacy}","received_events_url":"https://api.github.com/users/lnagle93/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-11-21T19:15:34Z","updated_at":"2016-11-28T19:35:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7745f1485c66d9069916721015c6f30879125c64","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/pulls/7/commits","review_comments_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/pulls/7/comments","review_comment_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/pulls/comments{/number}","comments_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/issues/7/comments","statuses_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/statuses/37ccd2edff92e15329a6993f9c3ecbb3ed9047cf","head":{"label":"lnagle93:testing","ref":"testing","sha":"37ccd2edff92e15329a6993f9c3ecbb3ed9047cf","user":{"login":"lnagle93","id":13711016,"avatar_url":"https://avatars.githubusercontent.com/u/13711016?v=3","gravatar_id":"","url":"https://api.github.com/users/lnagle93","html_url":"https://github.com/lnagle93","followers_url":"https://api.github.com/users/lnagle93/followers","following_url":"https://api.github.com/users/lnagle93/following{/other_user}","gists_url":"https://api.github.com/users/lnagle93/gists{/gist_id}","starred_url":"https://api.github.com/users/lnagle93/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lnagle93/subscriptions","organizations_url":"https://api.github.com/users/lnagle93/orgs","repos_url":"https://api.github.com/users/lnagle93/repos","events_url":"https://api.github.com/users/lnagle93/events{/privacy}","received_events_url":"https://api.github.com/users/lnagle93/received_events","type":"User","site_admin":false},"repo":{"id":72005108,"name":"shelf-lib-js","full_name":"lnagle93/shelf-lib-js","owner":{"login":"lnagle93","id":13711016,"avatar_url":"https://avatars.githubusercontent.com/u/13711016?v=3","gravatar_id":"","url":"https://api.github.com/users/lnagle93","html_url":"https://github.com/lnagle93","followers_url":"https://api.github.com/users/lnagle93/followers","following_url":"https://api.github.com/users/lnagle93/following{/other_user}","gists_url":"https://api.github.com/users/lnagle93/gists{/gist_id}","starred_url":"https://api.github.com/users/lnagle93/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lnagle93/subscriptions","organizations_url":"https://api.github.com/users/lnagle93/orgs","repos_url":"https://api.github.com/users/lnagle93/repos","events_url":"https://api.github.com/users/lnagle93/events{/privacy}","received_events_url":"https://api.github.com/users/lnagle93/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/lnagle93/shelf-lib-js","description":null,"fork":true,"url":"https://api.github.com/repos/lnagle93/shelf-lib-js","forks_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/forks","keys_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/teams","hooks_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/hooks","issue_events_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/issues/events{/number}","events_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/events","assignees_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/assignees{/user}","branches_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/branches{/branch}","tags_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/tags","blobs_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/git/refs{/sha}","trees_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/statuses/{sha}","languages_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/languages","stargazers_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/stargazers","contributors_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/contributors","subscribers_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/subscribers","subscription_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/subscription","commits_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/commits{/sha}","git_commits_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/git/commits{/sha}","comments_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/comments{/number}","issue_comment_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/issues/comments{/number}","contents_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/contents/{+path}","compare_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/merges","archive_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/downloads","issues_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/issues{/number}","pulls_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/pulls{/number}","milestones_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/milestones{/number}","notifications_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/labels{/name}","releases_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/releases{/id}","deployments_url":"https://api.github.com/repos/lnagle93/shelf-lib-js/deployments","created_at":"2016-10-26T13:20:19Z","updated_at":"2016-10-13T13:20:09Z","pushed_at":"2016-11-22T21:12:31Z","git_url":"git://github.com/lnagle93/shelf-lib-js.git","ssh_url":"git@github.com:lnagle93/shelf-lib-js.git","clone_url":"https://github.com/lnagle93/shelf-lib-js.git","svn_url":"https://github.com/lnagle93/shelf-lib-js","homepage":null,"size":68,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"not-nexus:master","ref":"master","sha":"284d627022396c14e4dfe56d9e28fbc37ccc66fe","user":{"login":"not-nexus","id":23244957,"avatar_url":"https://avatars.githubusercontent.com/u/23244957?v=3","gravatar_id":"","url":"https://api.github.com/users/not-nexus","html_url":"https://github.com/not-nexus","followers_url":"https://api.github.com/users/not-nexus/followers","following_url":"https://api.github.com/users/not-nexus/following{/other_user}","gists_url":"https://api.github.com/users/not-nexus/gists{/gist_id}","starred_url":"https://api.github.com/users/not-nexus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/not-nexus/subscriptions","organizations_url":"https://api.github.com/users/not-nexus/orgs","repos_url":"https://api.github.com/users/not-nexus/repos","events_url":"https://api.github.com/users/not-nexus/events{/privacy}","received_events_url":"https://api.github.com/users/not-nexus/received_events","type":"Organization","site_admin":false},"repo":{"id":70175423,"name":"shelf-lib-js","full_name":"not-nexus/shelf-lib-js","owner":{"login":"not-nexus","id":23244957,"avatar_url":"https://avatars.githubusercontent.com/u/23244957?v=3","gravatar_id":"","url":"https://api.github.com/users/not-nexus","html_url":"https://github.com/not-nexus","followers_url":"https://api.github.com/users/not-nexus/followers","following_url":"https://api.github.com/users/not-nexus/following{/other_user}","gists_url":"https://api.github.com/users/not-nexus/gists{/gist_id}","starred_url":"https://api.github.com/users/not-nexus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/not-nexus/subscriptions","organizations_url":"https://api.github.com/users/not-nexus/orgs","repos_url":"https://api.github.com/users/not-nexus/repos","events_url":"https://api.github.com/users/not-nexus/events{/privacy}","received_events_url":"https://api.github.com/users/not-nexus/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/not-nexus/shelf-lib-js","description":null,"fork":false,"url":"https://api.github.com/repos/not-nexus/shelf-lib-js","forks_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/forks","keys_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/teams","hooks_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/hooks","issue_events_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/issues/events{/number}","events_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/events","assignees_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/assignees{/user}","branches_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/branches{/branch}","tags_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/tags","blobs_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/git/refs{/sha}","trees_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/statuses/{sha}","languages_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/languages","stargazers_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/stargazers","contributors_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/contributors","subscribers_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/subscribers","subscription_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/subscription","commits_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/commits{/sha}","git_commits_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/git/commits{/sha}","comments_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/comments{/number}","issue_comment_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/issues/comments{/number}","contents_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/contents/{+path}","compare_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/merges","archive_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/downloads","issues_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/issues{/number}","pulls_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/pulls{/number}","milestones_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/milestones{/number}","notifications_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/labels{/name}","releases_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/releases{/id}","deployments_url":"https://api.github.com/repos/not-nexus/shelf-lib-js/deployments","created_at":"2016-10-06T17:13:01Z","updated_at":"2016-11-10T17:37:03Z","pushed_at":"2016-11-22T21:12:31Z","git_url":"git://github.com/not-nexus/shelf-lib-js.git","ssh_url":"git@github.com:not-nexus/shelf-lib-js.git","clone_url":"https://github.com/not-nexus/shelf-lib-js.git","svn_url":"https://github.com/not-nexus/shelf-lib-js","homepage":null,"size":37,"stargazers_count":1,"watchers_count":1,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":2,"forks":1,"open_issues":2,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/not-nexus/shelf-lib-js/pulls/7"},"html":{"href":"https://github.com/not-nexus/shelf-lib-js/pull/7"},"issue":{"href":"https://api.github.com/repos/not-nexus/shelf-lib-js/issues/7"},"comments":{"href":"https://api.github.com/repos/not-nexus/shelf-lib-js/issues/7/comments"},"review_comments":{"href":"https://api.github.com/repos/not-nexus/shelf-lib-js/pulls/7/comments"},"review_comment":{"href":"https://api.github.com/repos/not-nexus/shelf-lib-js/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/not-nexus/shelf-lib-js/pulls/7/commits"},"statuses":{"href":"https://api.github.com/repos/not-nexus/shelf-lib-js/statuses/37ccd2edff92e15329a6993f9c3ecbb3ed9047cf"}}}}
{"actor":{"display_login":"lnagle93"}}