{"action":"created","comment":{"url":"https://api.github.com/repos/Remmeauth/remme-core/pulls/comments/189296517","pull_request_review_id":121453350,"id":189296517,"diff_hunk":"@@ -0,0 +1,121 @@\n+# Copyright 2018 REMME\n+#\n+# Licensed under the Apache License, Version 2.0 (the \"License\");\n+# you may not use this file except in compliance with the License.\n+# You may obtain a copy of the License at\n+#\n+#     http://www.apache.org/licenses/LICENSE-2.0\n+#\n+# Unless required by applicable law or agreed to in writing, software\n+# distributed under the License is distributed on an \"AS IS\" BASIS,\n+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+# See the License for the specific language governing permissions and\n+# limitations under the License.\n+# ------------------------------------------------------------------------\n+\n+import json\n+import datetime\n+\n+import logging\n+\n+from remme.atomic_swap_tp.handler import AtomicSwapHandler\n+from remme.protos.atomic_swap_pb2 import AtomicSwapInitPayload, AtomicSwapExpirePayload, AtomicSwapClosePayload, \\\n+    AtomicSwapMethod, AtomicSwapInfo, AtomicSwapSetSecretLockPayload, AtomicSwapApprovePayload\n+from remme.protos.certificate_pb2 import NewCertificatePayload, CertificateMethod\n+from remme.settings import GENESIS_ADDRESS, SETTINGS_SWAP_COMMISSION, ZERO_ADDRESS\n+from remme.settings.helper import _make_settings_key\n+from remme.shared.basic_client import BasicClient\n+from remme.certificate_tp.handler import CertificateHandler\n+from remme.shared.utils import attr_dict\n+from remme.token_tp.handler import TokenHandler\n+\n+LOGGER = logging.getLogger(__name__)\n+\n+\n+@attr_dict","path":"remme/atomic_swap_tp/client.py","position":35,"original_position":35,"commit_id":"b08f3fd29805cfbbdfca1a766e3a54af32ba9b31","original_commit_id":"bebcc3c837ec4c458ae3750aa4190da848fe3688","user":{"login":"eugene-babichenko","id":15912853,"avatar_url":"https://avatars1.githubusercontent.com/u/15912853?v=4","gravatar_id":"","url":"https://api.github.com/users/eugene-babichenko","html_url":"https://github.com/eugene-babichenko","followers_url":"https://api.github.com/users/eugene-babichenko/followers","following_url":"https://api.github.com/users/eugene-babichenko/following{/other_user}","gists_url":"https://api.github.com/users/eugene-babichenko/gists{/gist_id}","starred_url":"https://api.github.com/users/eugene-babichenko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eugene-babichenko/subscriptions","organizations_url":"https://api.github.com/users/eugene-babichenko/orgs","repos_url":"https://api.github.com/users/eugene-babichenko/repos","events_url":"https://api.github.com/users/eugene-babichenko/events{/privacy}","received_events_url":"https://api.github.com/users/eugene-babichenko/received_events","type":"User","site_admin":false},"body":"Why whouldn't you just use `**kwargs` or named arguments?","created_at":"2018-05-18T14:56:39Z","updated_at":"2018-05-18T14:56:39Z","html_url":"https://github.com/Remmeauth/remme-core/pull/25#discussion_r189296517","pull_request_url":"https://api.github.com/repos/Remmeauth/remme-core/pulls/25","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/Remmeauth/remme-core/pulls/comments/189296517"},"html":{"href":"https://github.com/Remmeauth/remme-core/pull/25#discussion_r189296517"},"pull_request":{"href":"https://api.github.com/repos/Remmeauth/remme-core/pulls/25"}},"in_reply_to_id":188933426},"pull_request":{"url":"https://api.github.com/repos/Remmeauth/remme-core/pulls/25","id":188169629,"html_url":"https://github.com/Remmeauth/remme-core/pull/25","diff_url":"https://github.com/Remmeauth/remme-core/pull/25.diff","patch_url":"https://github.com/Remmeauth/remme-core/pull/25.patch","issue_url":"https://api.github.com/repos/Remmeauth/remme-core/issues/25","number":25,"state":"open","locked":false,"title":"Atomic swap","user":{"login":"bogomazov","id":6625496,"avatar_url":"https://avatars2.githubusercontent.com/u/6625496?v=4","gravatar_id":"","url":"https://api.github.com/users/bogomazov","html_url":"https://github.com/bogomazov","followers_url":"https://api.github.com/users/bogomazov/followers","following_url":"https://api.github.com/users/bogomazov/following{/other_user}","gists_url":"https://api.github.com/users/bogomazov/gists{/gist_id}","starred_url":"https://api.github.com/users/bogomazov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bogomazov/subscriptions","organizations_url":"https://api.github.com/users/bogomazov/orgs","repos_url":"https://api.github.com/users/bogomazov/repos","events_url":"https://api.github.com/users/bogomazov/events{/privacy}","received_events_url":"https://api.github.com/users/bogomazov/received_events","type":"User","site_admin":false},"body":"Atomic swaps inplementation for REMChain <=> OTHER_CHAIN swaps:\r\n\r\n- _swap_init\r\n- _swap_approve\r\n- _swap_expire\r\n- _swap_set_lock\r\n- _swap_close\r\n\r\nIN THE PROCESS CHANGES MADE TO:\r\n- added Settings Handler \r\n- refactored hashlib to a single point of reference location\r\n- package naming for convenient tp lookup\r\n- work with proper address formation\r\n- refactoring special addresses: ZERO_ADDRESS, GENESIS_ADDRESS\r\n- unified testing suit and handlers actions for token_transfers\r\n- open api and payload for each method\r\n- minor bugs\r\n\r\nUNITTEST ISSUE:\r\nhttps://remmeio.atlassian.net/wiki/spaces/WikiREMME/pages/81952778/TEMPORARY+NOTES+FOR+ATOMIC+SWAPS\r\n\r\nCURRENT PROGRESS OF TEST COVERAGE:\r\n- Successful init ETH => REMchain (DONE) \r\n- Successful init REMchain => ETH \r\n- Successful close (DONE) \r\n- Fail to close \r\n- Fail to expire \r\n- Fail to set lock\r\n- Fail to approve \r\n\r\nTO BE ADDED:\r\n- input validation\r\n\r\nREST API UI:\r\nhttp://localhost:8080/api/v1/ui/\r\n\r\nTO GET THE LATEST TIMESTAMP FOR \"created_at\" FIELD\r\nhttps://www.unixtimestamp.com/\r\n\r\nMANUAL TESTING OF THE REST API\r\n1. ETH => REMchain (Bob Actions)\r\n```\r\n1. /init/\r\n{\r\n  \"amount\": 10000,\r\n  \"created_at\": 1526293647,\r\n  \"email_address_encrypted_optional_alice\": \"\",\r\n  \"is_initiator\": false,\r\n  \"receiver_address\": \"2265da5c1a648002310b7360b38d82e0b6357e42d49fb1d6b8b33b2fad7a659f2d4e44\",\r\n  \"secret_lock_optional_bob\": \"8bc9d977e4d5ef40f1a61fb60b687eb1924cd90ed4061f31923f36a057f54ce5\",\r\n  \"sender_address_non_local\": \"\",\r\n  \"swap_id\": \"033102e41346242476b15a3a7966eb5249271025fc7fb0b37ed3fdb4bcce482c\"\r\n}\r\n\r\n2. /expire/\r\nExpected behaviour: asked to wait 48 hours\r\n{\r\n  \"swap_id\": \"033102e41346242476b15a3a7966eb5249271025fc7fb0b37ed3fdb4bcce482c\"\r\n}\r\n3. /close/\r\n{\r\n  \"secret_key\": \"747f9238d844e6ae6239df18716bb3dc486e6a9dee7ed6630f8aa6f05946440b\",\r\n  \"swap_id\": \"033102e41346242476b15a3a7966eb5249271025fc7fb0b37ed3fdb4bcce482c\"\r\n}\r\n```\r\n2. REMchain => ETH (Alice Actions)\r\n```\r\n1. /init/\r\n{\r\n  \"amount\": 10000,\r\n  \"created_at\": 1526391085,\r\n  \"email_address_encrypted_optional_alice\": \"\",\r\n  \"is_initiator\": false,\r\n  \"receiver_address\": \"2265da5c1a648002310b7360b38d82e0b6357e42d49fb1d6b8b33b2fad7a659f2d4e44\",\r\n  \"sender_address_non_local\": \"\",\r\n  \"swap_id\": \"033102e41346242476b15a3a7966eb5249271025fc7fb0b37ed3fdb4bcce482c\"\r\n}\r\n\r\n2. /expire/\r\nExpected behaviour: wait for 24 hours\r\n{\r\n  \"swap_id\": \"033102e41346242476b15a3a7966eb5249271025fc7fb0b37ed3fdb4bcce482c\"\r\n}\r\n\r\n3. /set-secret-lock/\r\n{\r\n  \"secret_lock\": \"8bc9d977e4d5ef40f1a61fb60b687eb1924cd90ed4061f31923f36a057f54ce5\",\r\n  \"swap_id\": \"033102e41346242476b15a3a7966eb5249271025fc7fb0b37ed3fdb4bcce482c\"\r\n}\r\n\r\n4. /approve/\r\n{\r\n  \"swap_id\": \"033102e41346242476b15a3a7966eb5249271025fc7fb0b37ed3fdb4bcce482c\"\r\n}\r\n\r\n5. /close/\r\n{\r\n  \"secret_key\": \"747f9238d844e6ae6239df18716bb3dc486e6a9dee7ed6630f8aa6f05946440b\",\r\n  \"swap_id\": \"033102e41346242476b15a3a7966eb5249271025fc7fb0b37ed3fdb4bcce482c\"\r\n}\r\n```\r\n\r\n{\r\n  \"secret_key\": \"747f9238d844e6ae6239df18716bb3dc486e6a9dee7ed6630f8aa6f05946440b\",\r\n  \"swap_id\": \"033102e41346242476b15a3a7966eb5249271025fc7fb0b37ed3fdb4bcce482c\"\r\n}\r\n\r\n","created_at":"2018-05-15T15:34:10Z","updated_at":"2018-05-18T14:56:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"881f3c37b125305028c9c69412952356d78ef4eb","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/Remmeauth/remme-core/pulls/25/commits","review_comments_url":"https://api.github.com/repos/Remmeauth/remme-core/pulls/25/comments","review_comment_url":"https://api.github.com/repos/Remmeauth/remme-core/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Remmeauth/remme-core/issues/25/comments","statuses_url":"https://api.github.com/repos/Remmeauth/remme-core/statuses/b08f3fd29805cfbbdfca1a766e3a54af32ba9b31","head":{"label":"Remmeauth:f-atomic-swap","ref":"f-atomic-swap","sha":"b08f3fd29805cfbbdfca1a766e3a54af32ba9b31","user":{"login":"Remmeauth","id":29229038,"avatar_url":"https://avatars1.githubusercontent.com/u/29229038?v=4","gravatar_id":"","url":"https://api.github.com/users/Remmeauth","html_url":"https://github.com/Remmeauth","followers_url":"https://api.github.com/users/Remmeauth/followers","following_url":"https://api.github.com/users/Remmeauth/following{/other_user}","gists_url":"https://api.github.com/users/Remmeauth/gists{/gist_id}","starred_url":"https://api.github.com/users/Remmeauth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Remmeauth/subscriptions","organizations_url":"https://api.github.com/users/Remmeauth/orgs","repos_url":"https://api.github.com/users/Remmeauth/repos","events_url":"https://api.github.com/users/Remmeauth/events{/privacy}","received_events_url":"https://api.github.com/users/Remmeauth/received_events","type":"Organization","site_admin":false},"repo":{"id":121400220,"name":"remme-core","full_name":"Remmeauth/remme-core","owner":{"login":"Remmeauth","id":29229038,"avatar_url":"https://avatars1.githubusercontent.com/u/29229038?v=4","gravatar_id":"","url":"https://api.github.com/users/Remmeauth","html_url":"https://github.com/Remmeauth","followers_url":"https://api.github.com/users/Remmeauth/followers","following_url":"https://api.github.com/users/Remmeauth/following{/other_user}","gists_url":"https://api.github.com/users/Remmeauth/gists{/gist_id}","starred_url":"https://api.github.com/users/Remmeauth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Remmeauth/subscriptions","organizations_url":"https://api.github.com/users/Remmeauth/orgs","repos_url":"https://api.github.com/users/Remmeauth/repos","events_url":"https://api.github.com/users/Remmeauth/events{/privacy}","received_events_url":"https://api.github.com/users/Remmeauth/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Remmeauth/remme-core","description":"Distributed Public Key Infrastructure (PKI) protocol","fork":false,"url":"https://api.github.com/repos/Remmeauth/remme-core","forks_url":"https://api.github.com/repos/Remmeauth/remme-core/forks","keys_url":"https://api.github.com/repos/Remmeauth/remme-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Remmeauth/remme-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Remmeauth/remme-core/teams","hooks_url":"https://api.github.com/repos/Remmeauth/remme-core/hooks","issue_events_url":"https://api.github.com/repos/Remmeauth/remme-core/issues/events{/number}","events_url":"https://api.github.com/repos/Remmeauth/remme-core/events","assignees_url":"https://api.github.com/repos/Remmeauth/remme-core/assignees{/user}","branches_url":"https://api.github.com/repos/Remmeauth/remme-core/branches{/branch}","tags_url":"https://api.github.com/repos/Remmeauth/remme-core/tags","blobs_url":"https://api.github.com/repos/Remmeauth/remme-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Remmeauth/remme-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Remmeauth/remme-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/Remmeauth/remme-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Remmeauth/remme-core/statuses/{sha}","languages_url":"https://api.github.com/repos/Remmeauth/remme-core/languages","stargazers_url":"https://api.github.com/repos/Remmeauth/remme-core/stargazers","contributors_url":"https://api.github.com/repos/Remmeauth/remme-core/contributors","subscribers_url":"https://api.github.com/repos/Remmeauth/remme-core/subscribers","subscription_url":"https://api.github.com/repos/Remmeauth/remme-core/subscription","commits_url":"https://api.github.com/repos/Remmeauth/remme-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/Remmeauth/remme-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/Remmeauth/remme-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/Remmeauth/remme-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/Remmeauth/remme-core/contents/{+path}","compare_url":"https://api.github.com/repos/Remmeauth/remme-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Remmeauth/remme-core/merges","archive_url":"https://api.github.com/repos/Remmeauth/remme-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Remmeauth/remme-core/downloads","issues_url":"https://api.github.com/repos/Remmeauth/remme-core/issues{/number}","pulls_url":"https://api.github.com/repos/Remmeauth/remme-core/pulls{/number}","milestones_url":"https://api.github.com/repos/Remmeauth/remme-core/milestones{/number}","notifications_url":"https://api.github.com/repos/Remmeauth/remme-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Remmeauth/remme-core/labels{/name}","releases_url":"https://api.github.com/repos/Remmeauth/remme-core/releases{/id}","deployments_url":"https://api.github.com/repos/Remmeauth/remme-core/deployments","created_at":"2018-02-13T15:36:38Z","updated_at":"2018-05-15T05:56:45Z","pushed_at":"2018-05-18T12:48:15Z","git_url":"git://github.com/Remmeauth/remme-core.git","ssh_url":"git@github.com:Remmeauth/remme-core.git","clone_url":"https://github.com/Remmeauth/remme-core.git","svn_url":"https://github.com/Remmeauth/remme-core","homepage":"https://remme.io/","size":428,"stargazers_count":23,"watchers_count":23,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"archived":false,"open_issues_count":3,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":5,"open_issues":3,"watchers":23,"default_branch":"master"}},"base":{"label":"Remmeauth:dev","ref":"dev","sha":"cb9fbb0d743c1ca9c6fb50e7d557688c66ab3be3","user":{"login":"Remmeauth","id":29229038,"avatar_url":"https://avatars1.githubusercontent.com/u/29229038?v=4","gravatar_id":"","url":"https://api.github.com/users/Remmeauth","html_url":"https://github.com/Remmeauth","followers_url":"https://api.github.com/users/Remmeauth/followers","following_url":"https://api.github.com/users/Remmeauth/following{/other_user}","gists_url":"https://api.github.com/users/Remmeauth/gists{/gist_id}","starred_url":"https://api.github.com/users/Remmeauth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Remmeauth/subscriptions","organizations_url":"https://api.github.com/users/Remmeauth/orgs","repos_url":"https://api.github.com/users/Remmeauth/repos","events_url":"https://api.github.com/users/Remmeauth/events{/privacy}","received_events_url":"https://api.github.com/users/Remmeauth/received_events","type":"Organization","site_admin":false},"repo":{"id":121400220,"name":"remme-core","full_name":"Remmeauth/remme-core","owner":{"login":"Remmeauth","id":29229038,"avatar_url":"https://avatars1.githubusercontent.com/u/29229038?v=4","gravatar_id":"","url":"https://api.github.com/users/Remmeauth","html_url":"https://github.com/Remmeauth","followers_url":"https://api.github.com/users/Remmeauth/followers","following_url":"https://api.github.com/users/Remmeauth/following{/other_user}","gists_url":"https://api.github.com/users/Remmeauth/gists{/gist_id}","starred_url":"https://api.github.com/users/Remmeauth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Remmeauth/subscriptions","organizations_url":"https://api.github.com/users/Remmeauth/orgs","repos_url":"https://api.github.com/users/Remmeauth/repos","events_url":"https://api.github.com/users/Remmeauth/events{/privacy}","received_events_url":"https://api.github.com/users/Remmeauth/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Remmeauth/remme-core","description":"Distributed Public Key Infrastructure (PKI) protocol","fork":false,"url":"https://api.github.com/repos/Remmeauth/remme-core","forks_url":"https://api.github.com/repos/Remmeauth/remme-core/forks","keys_url":"https://api.github.com/repos/Remmeauth/remme-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Remmeauth/remme-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Remmeauth/remme-core/teams","hooks_url":"https://api.github.com/repos/Remmeauth/remme-core/hooks","issue_events_url":"https://api.github.com/repos/Remmeauth/remme-core/issues/events{/number}","events_url":"https://api.github.com/repos/Remmeauth/remme-core/events","assignees_url":"https://api.github.com/repos/Remmeauth/remme-core/assignees{/user}","branches_url":"https://api.github.com/repos/Remmeauth/remme-core/branches{/branch}","tags_url":"https://api.github.com/repos/Remmeauth/remme-core/tags","blobs_url":"https://api.github.com/repos/Remmeauth/remme-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Remmeauth/remme-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Remmeauth/remme-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/Remmeauth/remme-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Remmeauth/remme-core/statuses/{sha}","languages_url":"https://api.github.com/repos/Remmeauth/remme-core/languages","stargazers_url":"https://api.github.com/repos/Remmeauth/remme-core/stargazers","contributors_url":"https://api.github.com/repos/Remmeauth/remme-core/contributors","subscribers_url":"https://api.github.com/repos/Remmeauth/remme-core/subscribers","subscription_url":"https://api.github.com/repos/Remmeauth/remme-core/subscription","commits_url":"https://api.github.com/repos/Remmeauth/remme-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/Remmeauth/remme-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/Remmeauth/remme-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/Remmeauth/remme-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/Remmeauth/remme-core/contents/{+path}","compare_url":"https://api.github.com/repos/Remmeauth/remme-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Remmeauth/remme-core/merges","archive_url":"https://api.github.com/repos/Remmeauth/remme-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Remmeauth/remme-core/downloads","issues_url":"https://api.github.com/repos/Remmeauth/remme-core/issues{/number}","pulls_url":"https://api.github.com/repos/Remmeauth/remme-core/pulls{/number}","milestones_url":"https://api.github.com/repos/Remmeauth/remme-core/milestones{/number}","notifications_url":"https://api.github.com/repos/Remmeauth/remme-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Remmeauth/remme-core/labels{/name}","releases_url":"https://api.github.com/repos/Remmeauth/remme-core/releases{/id}","deployments_url":"https://api.github.com/repos/Remmeauth/remme-core/deployments","created_at":"2018-02-13T15:36:38Z","updated_at":"2018-05-15T05:56:45Z","pushed_at":"2018-05-18T12:48:15Z","git_url":"git://github.com/Remmeauth/remme-core.git","ssh_url":"git@github.com:Remmeauth/remme-core.git","clone_url":"https://github.com/Remmeauth/remme-core.git","svn_url":"https://github.com/Remmeauth/remme-core","homepage":"https://remme.io/","size":428,"stargazers_count":23,"watchers_count":23,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"archived":false,"open_issues_count":3,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":5,"open_issues":3,"watchers":23,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Remmeauth/remme-core/pulls/25"},"html":{"href":"https://github.com/Remmeauth/remme-core/pull/25"},"issue":{"href":"https://api.github.com/repos/Remmeauth/remme-core/issues/25"},"comments":{"href":"https://api.github.com/repos/Remmeauth/remme-core/issues/25/comments"},"review_comments":{"href":"https://api.github.com/repos/Remmeauth/remme-core/pulls/25/comments"},"review_comment":{"href":"https://api.github.com/repos/Remmeauth/remme-core/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Remmeauth/remme-core/pulls/25/commits"},"statuses":{"href":"https://api.github.com/repos/Remmeauth/remme-core/statuses/b08f3fd29805cfbbdfca1a766e3a54af32ba9b31"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"eugene-babichenko"}}