{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/orleans/pulls/comments/201266407","pull_request_review_id":135731780,"id":201266407,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwMTI2NjQwNw==","diff_hunk":"@@ -21,9 +21,32 @@ public MessageFactory(SerializationManager serializationManager, ILogger<Message\n         public Message CreateMessage(InvokeMethodRequest request, InvokeMethodOptions options)\n         {\n             // clear transaction info if transaction operation requires new transaction.\n-            ITransactionInfo transactionInfo = (options & InvokeMethodOptions.TransactionRequiresNew) == 0 ? TransactionContext.GetTransactionInfo() : null;\n+            ITransactionInfo transactionInfo = TransactionContext.GetTransactionInfo();\n \n-            bool isTransactionRequired = (options & InvokeMethodOptions.TransactionRequiresNew) != 0 || (options & InvokeMethodOptions.TransactionRequired) != 0;\n+            // enforce mandatory transaction calls\n+            if((options & InvokeMethodOptions.TransactionMandatory) != 0 && transactionInfo == null)\n+            {\n+                throw new NotSupportedException(\"Call cannot be made outside of a transaction.\");\n+            }\n+\n+            // enforce never transaction calls\n+            if ((options & InvokeMethodOptions.TransactionNever) != 0 && transactionInfo != null)\n+            {\n+                throw new NotSupportedException(\"Call cannot be made within a transaction.\");\n+            }\n+\n+            // clear transaction context if creating a transaction or transaction is suppressed\n+            if ((options & InvokeMethodOptions.TransactionCreate) != 0 ||\n+                ((options & InvokeMethodOptions.TransactionCreateOrJoin) == 0 && \n+                 (options & InvokeMethodOptions.TransactionMandatory) == 0 &&\n+                 (options & InvokeMethodOptions.TransactionSupported) == 0))\n+            {\n+                transactionInfo = null;\n+            }\n+\n+            bool isTransactionRequired = (options & InvokeMethodOptions.TransactionCreate) != 0 ||\n+                                         (options & InvokeMethodOptions.TransactionCreateOrJoin) != 0 ||\n+                                         (options & InvokeMethodOptions.TransactionMandatory) != 0;","path":"src/Orleans.Core/Messaging/MessageFactory.cs","position":31,"original_position":31,"commit_id":"582e0d0b876cb92281039afdf707583627f57da2","original_commit_id":"49f08eba0e5d8aca588074067b0c0c0e1631f498","user":{"login":"ReubenBond","id":203839,"node_id":"MDQ6VXNlcjIwMzgzOQ==","avatar_url":"https://avatars1.githubusercontent.com/u/203839?v=4","gravatar_id":"","url":"https://api.github.com/users/ReubenBond","html_url":"https://github.com/ReubenBond","followers_url":"https://api.github.com/users/ReubenBond/followers","following_url":"https://api.github.com/users/ReubenBond/following{/other_user}","gists_url":"https://api.github.com/users/ReubenBond/gists{/gist_id}","starred_url":"https://api.github.com/users/ReubenBond/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReubenBond/subscriptions","organizations_url":"https://api.github.com/users/ReubenBond/orgs","repos_url":"https://api.github.com/users/ReubenBond/repos","events_url":"https://api.github.com/users/ReubenBond/events{/privacy}","received_events_url":"https://api.github.com/users/ReubenBond/received_events","type":"User","site_admin":false},"body":"We could probably arrange these so that it's just one bit that needs to be checked.","created_at":"2018-07-10T08:59:57Z","updated_at":"2018-07-10T08:59:57Z","html_url":"https://github.com/dotnet/orleans/pull/4739#discussion_r201266407","pull_request_url":"https://api.github.com/repos/dotnet/orleans/pulls/4739","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/dotnet/orleans/pulls/comments/201266407"},"html":{"href":"https://github.com/dotnet/orleans/pull/4739#discussion_r201266407"},"pull_request":{"href":"https://api.github.com/repos/dotnet/orleans/pulls/4739"}}},"pull_request":{"url":"https://api.github.com/repos/dotnet/orleans/pulls/4739","id":199100258,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk5MTAwMjU4","html_url":"https://github.com/dotnet/orleans/pull/4739","diff_url":"https://github.com/dotnet/orleans/pull/4739.diff","patch_url":"https://github.com/dotnet/orleans/pull/4739.patch","issue_url":"https://api.github.com/repos/dotnet/orleans/issues/4739","number":4739,"state":"open","locked":false,"title":"Transaction attribution test","user":{"login":"jason-bragg","id":10675494,"node_id":"MDQ6VXNlcjEwNjc1NDk0","avatar_url":"https://avatars2.githubusercontent.com/u/10675494?v=4","gravatar_id":"","url":"https://api.github.com/users/jason-bragg","html_url":"https://github.com/jason-bragg","followers_url":"https://api.github.com/users/jason-bragg/followers","following_url":"https://api.github.com/users/jason-bragg/following{/other_user}","gists_url":"https://api.github.com/users/jason-bragg/gists{/gist_id}","starred_url":"https://api.github.com/users/jason-bragg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jason-bragg/subscriptions","organizations_url":"https://api.github.com/users/jason-bragg/orgs","repos_url":"https://api.github.com/users/jason-bragg/repos","events_url":"https://api.github.com/users/jason-bragg/events{/privacy}","received_events_url":"https://api.github.com/users/jason-bragg/received_events","type":"User","site_admin":false},"body":"Added test cases to ensure transaction attribute options (NotSupported, Required, RequiredNew) properly maintain transaction context.","created_at":"2018-07-03T22:41:41Z","updated_at":"2018-07-10T08:59:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7051bc65131c546ee406c8d392abee9ddc0cc887","assignee":{"login":"xiazen","id":20803801,"node_id":"MDQ6VXNlcjIwODAzODAx","avatar_url":"https://avatars3.githubusercontent.com/u/20803801?v=4","gravatar_id":"","url":"https://api.github.com/users/xiazen","html_url":"https://github.com/xiazen","followers_url":"https://api.github.com/users/xiazen/followers","following_url":"https://api.github.com/users/xiazen/following{/other_user}","gists_url":"https://api.github.com/users/xiazen/gists{/gist_id}","starred_url":"https://api.github.com/users/xiazen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xiazen/subscriptions","organizations_url":"https://api.github.com/users/xiazen/orgs","repos_url":"https://api.github.com/users/xiazen/repos","events_url":"https://api.github.com/users/xiazen/events{/privacy}","received_events_url":"https://api.github.com/users/xiazen/received_events","type":"User","site_admin":false},"assignees":[{"login":"xiazen","id":20803801,"node_id":"MDQ6VXNlcjIwODAzODAx","avatar_url":"https://avatars3.githubusercontent.com/u/20803801?v=4","gravatar_id":"","url":"https://api.github.com/users/xiazen","html_url":"https://github.com/xiazen","followers_url":"https://api.github.com/users/xiazen/followers","following_url":"https://api.github.com/users/xiazen/following{/other_user}","gists_url":"https://api.github.com/users/xiazen/gists{/gist_id}","starred_url":"https://api.github.com/users/xiazen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xiazen/subscriptions","organizations_url":"https://api.github.com/users/xiazen/orgs","repos_url":"https://api.github.com/users/xiazen/repos","events_url":"https://api.github.com/users/xiazen/events{/privacy}","received_events_url":"https://api.github.com/users/xiazen/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"xiazen","id":20803801,"node_id":"MDQ6VXNlcjIwODAzODAx","avatar_url":"https://avatars3.githubusercontent.com/u/20803801?v=4","gravatar_id":"","url":"https://api.github.com/users/xiazen","html_url":"https://github.com/xiazen","followers_url":"https://api.github.com/users/xiazen/followers","following_url":"https://api.github.com/users/xiazen/following{/other_user}","gists_url":"https://api.github.com/users/xiazen/gists{/gist_id}","starred_url":"https://api.github.com/users/xiazen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xiazen/subscriptions","organizations_url":"https://api.github.com/users/xiazen/orgs","repos_url":"https://api.github.com/users/xiazen/repos","events_url":"https://api.github.com/users/xiazen/events{/privacy}","received_events_url":"https://api.github.com/users/xiazen/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":159047418,"node_id":"MDU6TGFiZWwxNTkwNDc0MTg=","url":"https://api.github.com/repos/dotnet/orleans/labels/bug","name":"bug","color":"fc2929","default":true},{"id":290887520,"node_id":"MDU6TGFiZWwyOTA4ODc1MjA=","url":"https://api.github.com/repos/dotnet/orleans/labels/testing","name":"testing","color":"5319e7","default":false}],"milestone":{"url":"https://api.github.com/repos/dotnet/orleans/milestones/25","html_url":"https://github.com/dotnet/orleans/milestone/25","labels_url":"https://api.github.com/repos/dotnet/orleans/milestones/25/labels","id":3231896,"node_id":"MDk6TWlsZXN0b25lMzIzMTg5Ng==","number":25,"title":"2.1.0","description":"","creator":{"login":"sergeybykov","id":8248806,"node_id":"MDQ6VXNlcjgyNDg4MDY=","avatar_url":"https://avatars1.githubusercontent.com/u/8248806?v=4","gravatar_id":"","url":"https://api.github.com/users/sergeybykov","html_url":"https://github.com/sergeybykov","followers_url":"https://api.github.com/users/sergeybykov/followers","following_url":"https://api.github.com/users/sergeybykov/following{/other_user}","gists_url":"https://api.github.com/users/sergeybykov/gists{/gist_id}","starred_url":"https://api.github.com/users/sergeybykov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sergeybykov/subscriptions","organizations_url":"https://api.github.com/users/sergeybykov/orgs","repos_url":"https://api.github.com/users/sergeybykov/repos","events_url":"https://api.github.com/users/sergeybykov/events{/privacy}","received_events_url":"https://api.github.com/users/sergeybykov/received_events","type":"User","site_admin":false},"open_issues":38,"closed_issues":14,"state":"open","created_at":"2018-03-30T20:28:19Z","updated_at":"2018-07-10T05:00:19Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/dotnet/orleans/pulls/4739/commits","review_comments_url":"https://api.github.com/repos/dotnet/orleans/pulls/4739/comments","review_comment_url":"https://api.github.com/repos/dotnet/orleans/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/orleans/issues/4739/comments","statuses_url":"https://api.github.com/repos/dotnet/orleans/statuses/582e0d0b876cb92281039afdf707583627f57da2","head":{"label":"jason-bragg:Transactions/TransactionAttributionTesting","ref":"Transactions/TransactionAttributionTesting","sha":"582e0d0b876cb92281039afdf707583627f57da2","user":{"login":"jason-bragg","id":10675494,"node_id":"MDQ6VXNlcjEwNjc1NDk0","avatar_url":"https://avatars2.githubusercontent.com/u/10675494?v=4","gravatar_id":"","url":"https://api.github.com/users/jason-bragg","html_url":"https://github.com/jason-bragg","followers_url":"https://api.github.com/users/jason-bragg/followers","following_url":"https://api.github.com/users/jason-bragg/following{/other_user}","gists_url":"https://api.github.com/users/jason-bragg/gists{/gist_id}","starred_url":"https://api.github.com/users/jason-bragg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jason-bragg/subscriptions","organizations_url":"https://api.github.com/users/jason-bragg/orgs","repos_url":"https://api.github.com/users/jason-bragg/repos","events_url":"https://api.github.com/users/jason-bragg/events{/privacy}","received_events_url":"https://api.github.com/users/jason-bragg/received_events","type":"User","site_admin":false},"repo":{"id":29758989,"node_id":"MDEwOlJlcG9zaXRvcnkyOTc1ODk4OQ==","name":"orleans","full_name":"jason-bragg/orleans","owner":{"login":"jason-bragg","id":10675494,"node_id":"MDQ6VXNlcjEwNjc1NDk0","avatar_url":"https://avatars2.githubusercontent.com/u/10675494?v=4","gravatar_id":"","url":"https://api.github.com/users/jason-bragg","html_url":"https://github.com/jason-bragg","followers_url":"https://api.github.com/users/jason-bragg/followers","following_url":"https://api.github.com/users/jason-bragg/following{/other_user}","gists_url":"https://api.github.com/users/jason-bragg/gists{/gist_id}","starred_url":"https://api.github.com/users/jason-bragg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jason-bragg/subscriptions","organizations_url":"https://api.github.com/users/jason-bragg/orgs","repos_url":"https://api.github.com/users/jason-bragg/repos","events_url":"https://api.github.com/users/jason-bragg/events{/privacy}","received_events_url":"https://api.github.com/users/jason-bragg/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jason-bragg/orleans","description":"Repo for Orleans - Distributed Actor Model","fork":true,"url":"https://api.github.com/repos/jason-bragg/orleans","forks_url":"https://api.github.com/repos/jason-bragg/orleans/forks","keys_url":"https://api.github.com/repos/jason-bragg/orleans/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jason-bragg/orleans/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jason-bragg/orleans/teams","hooks_url":"https://api.github.com/repos/jason-bragg/orleans/hooks","issue_events_url":"https://api.github.com/repos/jason-bragg/orleans/issues/events{/number}","events_url":"https://api.github.com/repos/jason-bragg/orleans/events","assignees_url":"https://api.github.com/repos/jason-bragg/orleans/assignees{/user}","branches_url":"https://api.github.com/repos/jason-bragg/orleans/branches{/branch}","tags_url":"https://api.github.com/repos/jason-bragg/orleans/tags","blobs_url":"https://api.github.com/repos/jason-bragg/orleans/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jason-bragg/orleans/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jason-bragg/orleans/git/refs{/sha}","trees_url":"https://api.github.com/repos/jason-bragg/orleans/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jason-bragg/orleans/statuses/{sha}","languages_url":"https://api.github.com/repos/jason-bragg/orleans/languages","stargazers_url":"https://api.github.com/repos/jason-bragg/orleans/stargazers","contributors_url":"https://api.github.com/repos/jason-bragg/orleans/contributors","subscribers_url":"https://api.github.com/repos/jason-bragg/orleans/subscribers","subscription_url":"https://api.github.com/repos/jason-bragg/orleans/subscription","commits_url":"https://api.github.com/repos/jason-bragg/orleans/commits{/sha}","git_commits_url":"https://api.github.com/repos/jason-bragg/orleans/git/commits{/sha}","comments_url":"https://api.github.com/repos/jason-bragg/orleans/comments{/number}","issue_comment_url":"https://api.github.com/repos/jason-bragg/orleans/issues/comments{/number}","contents_url":"https://api.github.com/repos/jason-bragg/orleans/contents/{+path}","compare_url":"https://api.github.com/repos/jason-bragg/orleans/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jason-bragg/orleans/merges","archive_url":"https://api.github.com/repos/jason-bragg/orleans/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jason-bragg/orleans/downloads","issues_url":"https://api.github.com/repos/jason-bragg/orleans/issues{/number}","pulls_url":"https://api.github.com/repos/jason-bragg/orleans/pulls{/number}","milestones_url":"https://api.github.com/repos/jason-bragg/orleans/milestones{/number}","notifications_url":"https://api.github.com/repos/jason-bragg/orleans/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jason-bragg/orleans/labels{/name}","releases_url":"https://api.github.com/repos/jason-bragg/orleans/releases{/id}","deployments_url":"https://api.github.com/repos/jason-bragg/orleans/deployments","created_at":"2015-01-23T23:54:23Z","updated_at":"2018-07-02T20:41:36Z","pushed_at":"2018-07-09T23:12:20Z","git_url":"git://github.com/jason-bragg/orleans.git","ssh_url":"git@github.com:jason-bragg/orleans.git","clone_url":"https://github.com/jason-bragg/orleans.git","svn_url":"https://github.com/jason-bragg/orleans","homepage":"","size":48928,"stargazers_count":1,"watchers_count":1,"language":"C#","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":3,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":3,"watchers":1,"default_branch":"master"}},"base":{"label":"dotnet:master","ref":"master","sha":"e271305a80b98daa3b7e188d2fcaf529abc2475c","user":{"login":"dotnet","id":9141961,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkxNDE5NjE=","avatar_url":"https://avatars0.githubusercontent.com/u/9141961?v=4","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"repo":{"id":28232663,"node_id":"MDEwOlJlcG9zaXRvcnkyODIzMjY2Mw==","name":"orleans","full_name":"dotnet/orleans","owner":{"login":"dotnet","id":9141961,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkxNDE5NjE=","avatar_url":"https://avatars0.githubusercontent.com/u/9141961?v=4","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dotnet/orleans","description":"Orleans - Distributed Virtual Actor Model","fork":false,"url":"https://api.github.com/repos/dotnet/orleans","forks_url":"https://api.github.com/repos/dotnet/orleans/forks","keys_url":"https://api.github.com/repos/dotnet/orleans/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/orleans/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/orleans/teams","hooks_url":"https://api.github.com/repos/dotnet/orleans/hooks","issue_events_url":"https://api.github.com/repos/dotnet/orleans/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/orleans/events","assignees_url":"https://api.github.com/repos/dotnet/orleans/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/orleans/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/orleans/tags","blobs_url":"https://api.github.com/repos/dotnet/orleans/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/orleans/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/orleans/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/orleans/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/orleans/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/orleans/languages","stargazers_url":"https://api.github.com/repos/dotnet/orleans/stargazers","contributors_url":"https://api.github.com/repos/dotnet/orleans/contributors","subscribers_url":"https://api.github.com/repos/dotnet/orleans/subscribers","subscription_url":"https://api.github.com/repos/dotnet/orleans/subscription","commits_url":"https://api.github.com/repos/dotnet/orleans/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/orleans/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/orleans/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/orleans/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/orleans/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/orleans/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/orleans/merges","archive_url":"https://api.github.com/repos/dotnet/orleans/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/orleans/downloads","issues_url":"https://api.github.com/repos/dotnet/orleans/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/orleans/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/orleans/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/orleans/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/orleans/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/orleans/releases{/id}","deployments_url":"https://api.github.com/repos/dotnet/orleans/deployments","created_at":"2014-12-19T14:32:50Z","updated_at":"2018-07-10T05:04:09Z","pushed_at":"2018-07-10T07:06:23Z","git_url":"git://github.com/dotnet/orleans.git","ssh_url":"git@github.com:dotnet/orleans.git","clone_url":"https://github.com/dotnet/orleans.git","svn_url":"https://github.com/dotnet/orleans","homepage":"http://dotnet.github.io/orleans","size":48676,"stargazers_count":4021,"watchers_count":4021,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1010,"mirror_url":null,"archived":false,"open_issues_count":414,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":1010,"open_issues":414,"watchers":4021,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/orleans/pulls/4739"},"html":{"href":"https://github.com/dotnet/orleans/pull/4739"},"issue":{"href":"https://api.github.com/repos/dotnet/orleans/issues/4739"},"comments":{"href":"https://api.github.com/repos/dotnet/orleans/issues/4739/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/orleans/pulls/4739/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/orleans/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/orleans/pulls/4739/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/orleans/statuses/582e0d0b876cb92281039afdf707583627f57da2"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"ReubenBond"}}