{"action":"created","comment":{"url":"https://api.github.com/repos/AzureAD/passport-azure-ad/pulls/comments/85030242","pull_request_review_id":5770347,"id":85030242,"diff_hunk":"@@ -12,69 +12,42 @@ issuance and validation.\n _passport-azure-ad_ has been tested to work with both [Microsoft Azure Active Directory](https://azure.microsoft.com/en-us/services/active-directory/) \n and with [Microsoft Active Directory Federation Services](http://en.wikipedia.org/wiki/Active_Directory_Federation_Services).\n \n-## Security Vulnerability in Versions < 1.4.6 and 2.0.0\n+## 1. Security Vulnerability in Versions < 1.4.6 and 2.0.0\n _passport-azure-ad_ has a known security vulnerability affecting versions <1.4.6 and 2.0.0. Please update to >=1.4.6 or >=2.0.1 immediately. For more details, see the [security notice](https://github.com/AzureAD/passport-azure-ad/blob/master/SECURITY-NOTICE.MD).\n \n-## Versions\n-Current version - 3.0.0  \n+## 2. Versions\n+Current version - 3.0.1  \n Minimum  recommended version - 1.4.6  \n You can find the changes for each version in the [change log](https://github.com/AzureAD/passport-azure-ad/blob/master/CHANGELOG.md).\n \n-## Contribution History\n+## 3. Contribution History\n \n [![Stories in Ready](https://badge.waffle.io/AzureAD/passport-azure-ad.png?label=ready&title=Ready)](https://waffle.io/AzureAD/passport-azure-ad)\n \n [![Throughput Graph](https://graphs.waffle.io/AzureAD/passport-azure-ad/throughput.svg)](https://waffle.io/AzureAD/passport-azure-ad/metrics)\n \n-## Installation\n+## 4. Installation\n \n     $ npm install passport-azure-ad\n \n-## Usage\n+## 5. Usage\n \n-### Configure strategy\n+This library contains two strategies: OIDCStrategy and BearerStrategy.\n \n-This sample uses the OAuth2Bearer Strategy:\n+OIDCStrategy uses OpenID Connect protocol for web application login purposes. It works in the following manner:\n+If a user is not logged in, passport sends an authentication request to AAD (Azure Active Directory), and AAD prompts the user for his or her sign-in credentials. On successful authentication, depending on the flow you choose, web application will eventually get an id_token back either directly from the AAD authorization endpoint or by redeeming a code at the AAD token endpoint. Passport then validates the id_token and propagates the claims in id_token back to the verify callback, and let the framework finish the remaining authentication procedure. If the whole process is successful, passport adds the user information to `req.user` and passes it to the next middleware. In case of error, passport either sends back an unauthorized response or redirects the user to the page you specified (such as homepage or login page).\n \n-```javascript\n+BearerStrategy uses Bearer Token protocol to protect web resource/api. It works in the following manner:\n+User sends a request to the protected web api which contains an access_token in either the authorization header or body. Passport extracts and validates the access_token, and propagates the claims in access_token to the verify callback and let the framework finish the remaining authentication procedure. On successful authentication, passport adds the user information to `req.user` and passes it to the next middleware, which is usually the business logic of the web resource/api. In case of error, passport sends back an unauthorized response.\n ","path":"README.md","position":40,"original_position":40,"commit_id":"91f514c892d483721b6c4167dde06c990ab33eea","original_commit_id":"48a9776aa67becc254c7ef2c9af33de909acc0b2","user":{"login":"lovemaths","id":6593843,"avatar_url":"https://avatars.githubusercontent.com/u/6593843?v=3","gravatar_id":"","url":"https://api.github.com/users/lovemaths","html_url":"https://github.com/lovemaths","followers_url":"https://api.github.com/users/lovemaths/followers","following_url":"https://api.github.com/users/lovemaths/following{/other_user}","gists_url":"https://api.github.com/users/lovemaths/gists{/gist_id}","starred_url":"https://api.github.com/users/lovemaths/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lovemaths/subscriptions","organizations_url":"https://api.github.com/users/lovemaths/orgs","repos_url":"https://api.github.com/users/lovemaths/repos","events_url":"https://api.github.com/users/lovemaths/events{/privacy}","received_events_url":"https://api.github.com/users/lovemaths/received_events","type":"User","site_admin":false},"body":"For bearer, if there is no token, passport.authenticate fails the authentication regardless of the session. passport.authenticate is not used to check if a user is in session or not. If user wants to use the user in session, they should check `req.user` before they call passport.authenticate. Look at how `ensureAuthenticate` function in the sample to see how it works.","created_at":"2016-10-26T00:28:39Z","updated_at":"2016-10-26T00:28:39Z","html_url":"https://github.com/AzureAD/passport-azure-ad/pull/237#discussion_r85030242","pull_request_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/pulls/237","_links":{"self":{"href":"https://api.github.com/repos/AzureAD/passport-azure-ad/pulls/comments/85030242"},"html":{"href":"https://github.com/AzureAD/passport-azure-ad/pull/237#discussion_r85030242"},"pull_request":{"href":"https://api.github.com/repos/AzureAD/passport-azure-ad/pulls/237"}}},"pull_request":{"url":"https://api.github.com/repos/AzureAD/passport-azure-ad/pulls/237","id":90309472,"html_url":"https://github.com/AzureAD/passport-azure-ad/pull/237","diff_url":"https://github.com/AzureAD/passport-azure-ad/pull/237.diff","patch_url":"https://github.com/AzureAD/passport-azure-ad/pull/237.patch","issue_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/issues/237","number":237,"state":"open","locked":false,"title":"Couple of issues","user":{"login":"lovemaths","id":6593843,"avatar_url":"https://avatars.githubusercontent.com/u/6593843?v=3","gravatar_id":"","url":"https://api.github.com/users/lovemaths","html_url":"https://github.com/lovemaths","followers_url":"https://api.github.com/users/lovemaths/followers","following_url":"https://api.github.com/users/lovemaths/following{/other_user}","gists_url":"https://api.github.com/users/lovemaths/gists{/gist_id}","starred_url":"https://api.github.com/users/lovemaths/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lovemaths/subscriptions","organizations_url":"https://api.github.com/users/lovemaths/orgs","repos_url":"https://api.github.com/users/lovemaths/repos","events_url":"https://api.github.com/users/lovemaths/events{/privacy}","received_events_url":"https://api.github.com/users/lovemaths/received_events","type":"User","site_admin":false},"body":"(1) Issue #229, use tenant id dynamically for each request\r\n\r\n(2) Issue #233, provide documentation with more details\r\n\r\n(3) Issue #123, Question: what is the difference between OIDCStrategy and BearerStrategy. Which one should I use?\r\n\r\n(4) now pass all the errors to async.waterfall and call self.fail at one place instead of everywhere\r\n\r\n(5) updated readme and changelog","created_at":"2016-10-21T01:29:29Z","updated_at":"2016-10-26T00:28:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4abe9b181827f6c9520fb7e974d2763bc3244432","assignee":{"login":"brentschmaltz","id":3172421,"avatar_url":"https://avatars.githubusercontent.com/u/3172421?v=3","gravatar_id":"","url":"https://api.github.com/users/brentschmaltz","html_url":"https://github.com/brentschmaltz","followers_url":"https://api.github.com/users/brentschmaltz/followers","following_url":"https://api.github.com/users/brentschmaltz/following{/other_user}","gists_url":"https://api.github.com/users/brentschmaltz/gists{/gist_id}","starred_url":"https://api.github.com/users/brentschmaltz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brentschmaltz/subscriptions","organizations_url":"https://api.github.com/users/brentschmaltz/orgs","repos_url":"https://api.github.com/users/brentschmaltz/repos","events_url":"https://api.github.com/users/brentschmaltz/events{/privacy}","received_events_url":"https://api.github.com/users/brentschmaltz/received_events","type":"User","site_admin":false},"assignees":[{"login":"brentschmaltz","id":3172421,"avatar_url":"https://avatars.githubusercontent.com/u/3172421?v=3","gravatar_id":"","url":"https://api.github.com/users/brentschmaltz","html_url":"https://github.com/brentschmaltz","followers_url":"https://api.github.com/users/brentschmaltz/followers","following_url":"https://api.github.com/users/brentschmaltz/following{/other_user}","gists_url":"https://api.github.com/users/brentschmaltz/gists{/gist_id}","starred_url":"https://api.github.com/users/brentschmaltz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brentschmaltz/subscriptions","organizations_url":"https://api.github.com/users/brentschmaltz/orgs","repos_url":"https://api.github.com/users/brentschmaltz/repos","events_url":"https://api.github.com/users/brentschmaltz/events{/privacy}","received_events_url":"https://api.github.com/users/brentschmaltz/received_events","type":"User","site_admin":false},{"login":"polita","id":7873171,"avatar_url":"https://avatars.githubusercontent.com/u/7873171?v=3","gravatar_id":"","url":"https://api.github.com/users/polita","html_url":"https://github.com/polita","followers_url":"https://api.github.com/users/polita/followers","following_url":"https://api.github.com/users/polita/following{/other_user}","gists_url":"https://api.github.com/users/polita/gists{/gist_id}","starred_url":"https://api.github.com/users/polita/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/polita/subscriptions","organizations_url":"https://api.github.com/users/polita/orgs","repos_url":"https://api.github.com/users/polita/repos","events_url":"https://api.github.com/users/polita/events{/privacy}","received_events_url":"https://api.github.com/users/polita/received_events","type":"User","site_admin":false},{"login":"SomkaPe","id":21348914,"avatar_url":"https://avatars.githubusercontent.com/u/21348914?v=3","gravatar_id":"","url":"https://api.github.com/users/SomkaPe","html_url":"https://github.com/SomkaPe","followers_url":"https://api.github.com/users/SomkaPe/followers","following_url":"https://api.github.com/users/SomkaPe/following{/other_user}","gists_url":"https://api.github.com/users/SomkaPe/gists{/gist_id}","starred_url":"https://api.github.com/users/SomkaPe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SomkaPe/subscriptions","organizations_url":"https://api.github.com/users/SomkaPe/orgs","repos_url":"https://api.github.com/users/SomkaPe/repos","events_url":"https://api.github.com/users/SomkaPe/events{/privacy}","received_events_url":"https://api.github.com/users/SomkaPe/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/pulls/237/commits","review_comments_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/pulls/237/comments","review_comment_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/pulls/comments{/number}","comments_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/issues/237/comments","statuses_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/statuses/91f514c892d483721b6c4167dde06c990ab33eea","head":{"label":"AzureAD:sijliu/3.0.1","ref":"sijliu/3.0.1","sha":"91f514c892d483721b6c4167dde06c990ab33eea","user":{"login":"AzureAD","id":2966316,"avatar_url":"https://avatars.githubusercontent.com/u/2966316?v=3","gravatar_id":"","url":"https://api.github.com/users/AzureAD","html_url":"https://github.com/AzureAD","followers_url":"https://api.github.com/users/AzureAD/followers","following_url":"https://api.github.com/users/AzureAD/following{/other_user}","gists_url":"https://api.github.com/users/AzureAD/gists{/gist_id}","starred_url":"https://api.github.com/users/AzureAD/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AzureAD/subscriptions","organizations_url":"https://api.github.com/users/AzureAD/orgs","repos_url":"https://api.github.com/users/AzureAD/repos","events_url":"https://api.github.com/users/AzureAD/events{/privacy}","received_events_url":"https://api.github.com/users/AzureAD/received_events","type":"Organization","site_admin":false},"repo":{"id":10182011,"name":"passport-azure-ad","full_name":"AzureAD/passport-azure-ad","owner":{"login":"AzureAD","id":2966316,"avatar_url":"https://avatars.githubusercontent.com/u/2966316?v=3","gravatar_id":"","url":"https://api.github.com/users/AzureAD","html_url":"https://github.com/AzureAD","followers_url":"https://api.github.com/users/AzureAD/followers","following_url":"https://api.github.com/users/AzureAD/following{/other_user}","gists_url":"https://api.github.com/users/AzureAD/gists{/gist_id}","starred_url":"https://api.github.com/users/AzureAD/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AzureAD/subscriptions","organizations_url":"https://api.github.com/users/AzureAD/orgs","repos_url":"https://api.github.com/users/AzureAD/repos","events_url":"https://api.github.com/users/AzureAD/events{/privacy}","received_events_url":"https://api.github.com/users/AzureAD/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/AzureAD/passport-azure-ad","description":"Azure Active Directory Authentication Strategies using Node and Passportjs","fork":false,"url":"https://api.github.com/repos/AzureAD/passport-azure-ad","forks_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/forks","keys_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/teams","hooks_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/hooks","issue_events_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/issues/events{/number}","events_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/events","assignees_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/assignees{/user}","branches_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/branches{/branch}","tags_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/tags","blobs_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/git/refs{/sha}","trees_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/statuses/{sha}","languages_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/languages","stargazers_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/stargazers","contributors_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/contributors","subscribers_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/subscribers","subscription_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/subscription","commits_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/commits{/sha}","git_commits_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/git/commits{/sha}","comments_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/comments{/number}","issue_comment_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/issues/comments{/number}","contents_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/contents/{+path}","compare_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/merges","archive_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/downloads","issues_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/issues{/number}","pulls_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/pulls{/number}","milestones_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/milestones{/number}","notifications_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/labels{/name}","releases_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/releases{/id}","deployments_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/deployments","created_at":"2013-05-20T21:08:54Z","updated_at":"2016-09-30T18:38:55Z","pushed_at":"2016-10-25T21:48:12Z","git_url":"git://github.com/AzureAD/passport-azure-ad.git","ssh_url":"git@github.com:AzureAD/passport-azure-ad.git","clone_url":"https://github.com/AzureAD/passport-azure-ad.git","svn_url":"https://github.com/AzureAD/passport-azure-ad","homepage":"","size":855,"stargazers_count":97,"watchers_count":97,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":64,"mirror_url":null,"open_issues_count":11,"forks":64,"open_issues":11,"watchers":97,"default_branch":"master"}},"base":{"label":"AzureAD:dev","ref":"dev","sha":"32065ff0e94a983c5f9fc3378cd69859176283da","user":{"login":"AzureAD","id":2966316,"avatar_url":"https://avatars.githubusercontent.com/u/2966316?v=3","gravatar_id":"","url":"https://api.github.com/users/AzureAD","html_url":"https://github.com/AzureAD","followers_url":"https://api.github.com/users/AzureAD/followers","following_url":"https://api.github.com/users/AzureAD/following{/other_user}","gists_url":"https://api.github.com/users/AzureAD/gists{/gist_id}","starred_url":"https://api.github.com/users/AzureAD/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AzureAD/subscriptions","organizations_url":"https://api.github.com/users/AzureAD/orgs","repos_url":"https://api.github.com/users/AzureAD/repos","events_url":"https://api.github.com/users/AzureAD/events{/privacy}","received_events_url":"https://api.github.com/users/AzureAD/received_events","type":"Organization","site_admin":false},"repo":{"id":10182011,"name":"passport-azure-ad","full_name":"AzureAD/passport-azure-ad","owner":{"login":"AzureAD","id":2966316,"avatar_url":"https://avatars.githubusercontent.com/u/2966316?v=3","gravatar_id":"","url":"https://api.github.com/users/AzureAD","html_url":"https://github.com/AzureAD","followers_url":"https://api.github.com/users/AzureAD/followers","following_url":"https://api.github.com/users/AzureAD/following{/other_user}","gists_url":"https://api.github.com/users/AzureAD/gists{/gist_id}","starred_url":"https://api.github.com/users/AzureAD/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AzureAD/subscriptions","organizations_url":"https://api.github.com/users/AzureAD/orgs","repos_url":"https://api.github.com/users/AzureAD/repos","events_url":"https://api.github.com/users/AzureAD/events{/privacy}","received_events_url":"https://api.github.com/users/AzureAD/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/AzureAD/passport-azure-ad","description":"Azure Active Directory Authentication Strategies using Node and Passportjs","fork":false,"url":"https://api.github.com/repos/AzureAD/passport-azure-ad","forks_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/forks","keys_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/teams","hooks_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/hooks","issue_events_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/issues/events{/number}","events_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/events","assignees_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/assignees{/user}","branches_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/branches{/branch}","tags_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/tags","blobs_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/git/refs{/sha}","trees_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/statuses/{sha}","languages_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/languages","stargazers_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/stargazers","contributors_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/contributors","subscribers_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/subscribers","subscription_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/subscription","commits_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/commits{/sha}","git_commits_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/git/commits{/sha}","comments_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/comments{/number}","issue_comment_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/issues/comments{/number}","contents_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/contents/{+path}","compare_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/merges","archive_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/downloads","issues_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/issues{/number}","pulls_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/pulls{/number}","milestones_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/milestones{/number}","notifications_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/labels{/name}","releases_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/releases{/id}","deployments_url":"https://api.github.com/repos/AzureAD/passport-azure-ad/deployments","created_at":"2013-05-20T21:08:54Z","updated_at":"2016-09-30T18:38:55Z","pushed_at":"2016-10-25T21:48:12Z","git_url":"git://github.com/AzureAD/passport-azure-ad.git","ssh_url":"git@github.com:AzureAD/passport-azure-ad.git","clone_url":"https://github.com/AzureAD/passport-azure-ad.git","svn_url":"https://github.com/AzureAD/passport-azure-ad","homepage":"","size":855,"stargazers_count":97,"watchers_count":97,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":64,"mirror_url":null,"open_issues_count":11,"forks":64,"open_issues":11,"watchers":97,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/AzureAD/passport-azure-ad/pulls/237"},"html":{"href":"https://github.com/AzureAD/passport-azure-ad/pull/237"},"issue":{"href":"https://api.github.com/repos/AzureAD/passport-azure-ad/issues/237"},"comments":{"href":"https://api.github.com/repos/AzureAD/passport-azure-ad/issues/237/comments"},"review_comments":{"href":"https://api.github.com/repos/AzureAD/passport-azure-ad/pulls/237/comments"},"review_comment":{"href":"https://api.github.com/repos/AzureAD/passport-azure-ad/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/AzureAD/passport-azure-ad/pulls/237/commits"},"statuses":{"href":"https://api.github.com/repos/AzureAD/passport-azure-ad/statuses/91f514c892d483721b6c4167dde06c990ab33eea"}}}}
{"actor":{"display_login":"lovemaths"}}