{"action":"created","comment":{"url":"https://api.github.com/repos/bcgov/GDX-Analytics/pulls/comments/308381532","pull_request_review_id":267970663,"id":308381532,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDMwODM4MTUzMg==","diff_hunk":"@@ -0,0 +1,164 @@\n+###################################################################\n+# Script Name       : elasticsearch_queuelength.py\n+#\n+# Description       : Queries elasticsearch and calculates the current\n+#                     number of citizens in line for a given Service BC\n+#                     field office\n+#\n+#                     Configuration file should contain line separated list of\n+#                     Service BC offices to query from Elasticsearch, index and\n+#                     endpoint specified.\n+#\n+#                     In order to query by office location (eg: Kelowna,\n+#                     Kamloops), it is necessary to include a JSON export\n+#                     of office names and id's. This json export can be\n+#                     created in the looker explore, here:\n+#                     https://analytics.gov.bc.ca/\n+#                       explore/cfms_poc/cfms_poc?toggle=fil&qid=DWe1cjJI5lYB084l8fjZ1M\n+#\n+#                     Name the json export into a file called\n+#                     serviceBCOfficeList.json and place it in the same\n+#                     directory as this script.\n+#\n+# Requirements      : Install the following python packages to allow\n+#                     querying the elasticsearch endpoint, credentials, and\n+#                     index for regular use:\n+#\n+#                   : elasticsearch-dsl>=6.0.0,<7.0.0\n+#                   : elasticsearch>=6.0.0,<7.0.0\n+#\n+# Recommendations   : It's recommended to set environment variables for\n+#                     the elastic search endpoint.\n+#\n+#                   : export ES_USER='<<ElasticSearch_Username>>'\n+#                   : export ES_PASS='<<ElasticSearch_Password>>'\n+#                   : export ES_ENDPOINT='<<ElasticSearch_Endpoint>>'\n+#                   : export ES_INDEX='<<ElasticSearch_Index>>'\n+#\n+# Usage             : To query a list of Service BC offices, run:\n+#\n+#                   : python3 elasticsearch_queuelength.py --config\n+#                   :   officelist.txt\n+#                   :   --username ES_USER --password ES_PASS\n+#                   :   --endpoint ES_ENDPOINT --index ES_INDEX\n+#\n+#                   : where 'officelist.txt' is a text file containing the\n+#                   : newline separated list of Service BC field offices you\n+#                   : wish to query.\n+\n+\n+from elasticsearch import Elasticsearch\n+from elasticsearch_dsl import Search, Q\n+import logging\n+from argparse import ArgumentParser\n+import json\n+import sys\n+import os\n+import signal\n+\n+# Arguments parsing\n+parser = ArgumentParser(\n+  description='Counts queue length  for given Service BC field offices\\\n+               using Elastisearch and Snowplow.')\n+parser.add_argument('-c', '--config', help='Config file listing the Service \\\n+                    BC field offies of interest.', required=True)\n+parser.add_argument('-u', '--username', help='Username.', required=True)\n+parser.add_argument('-p', '--password', help='Password.', required=True)\n+parser.add_argument('-d', '--debug', help='Debug', action=\"store_true\")\n+parser.add_argument('-i', '--index', help='Index', required=True)\n+parser.add_argument('-ep', '--endpoint', help='Endpoint', required=True)\n+args = parser.parse_args()\n+\n+\n+# Ctrl+C\n+def signal_handler(signal, frame):\n+    logger.debug('Ctrl+C pressed!')\n+    sys.exit(0)\n+\n+\n+# Ctrl+C handler\n+signal.signal(signal.SIGINT, signal_handler)\n+\n+# Create stream handler for logging\n+logger = logging.getLogger(__name__)\n+formatter = logging.Formatter(\"%(asctime)s:[%(levelname)s]: %(message)s\")\n+logger.setLevel(logging.INFO)\n+handler = logging.StreamHandler()\n+handler.setFormatter(formatter)\n+logger.addHandler(handler)\n+\n+# Validate config file\n+config = args.config\n+if os.path.isfile(config):\n+    with open(config) as f:\n+        offices = tuple(line.rstrip() for line in f)\n+else:\n+    logger.error(\"a config file listing Sewrvice BC field offices by line is required. \\\n+                 Use --config <file_path>\")\n+\n+# Assign credentials and collector information\n+http_user = args.username\n+http_pass = args.password\n+endpoint = args.endpoint\n+index = args.index\n+\n+client = Elasticsearch(endpoint, http_auth=(http_user, http_pass))\n+logger.debug('Elastic search object: ', client)\n+\n+with open('serviceBCOfficeList.json') as json_file:\n+    serviceCenters = json.load(json_file)\n+\n+for office in offices:\n+    office_id = ''\n+    for serviceCenter in serviceCenters:\n+        if serviceCenter[\"cfms_poc.office_name\"] == office:\n+            office_id = serviceCenter['cfms_poc.office_id']\n+\n+    # Query for number of addcitizen events. Note: The derived timestamp looks\n+    # weird but 'now/d+7h' is rounding down to the start of the day in UTC\n+    # which is 1700 which is 17h00 local on the previous day, so I am adding\n+    # 5 hours to get midnight.","path":"examples/query_elasticsearch/elasticsearch_queuelength.py","position":120,"original_position":120,"commit_id":"140bba583fd1dee2d60321f907362426de357fa3","original_commit_id":"140bba583fd1dee2d60321f907362426de357fa3","user":{"login":"mark-walle","id":3486204,"node_id":"MDQ6VXNlcjM0ODYyMDQ=","avatar_url":"https://avatars2.githubusercontent.com/u/3486204?v=4","gravatar_id":"","url":"https://api.github.com/users/mark-walle","html_url":"https://github.com/mark-walle","followers_url":"https://api.github.com/users/mark-walle/followers","following_url":"https://api.github.com/users/mark-walle/following{/other_user}","gists_url":"https://api.github.com/users/mark-walle/gists{/gist_id}","starred_url":"https://api.github.com/users/mark-walle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mark-walle/subscriptions","organizations_url":"https://api.github.com/users/mark-walle/orgs","repos_url":"https://api.github.com/users/mark-walle/repos","events_url":"https://api.github.com/users/mark-walle/events{/privacy}","received_events_url":"https://api.github.com/users/mark-walle/received_events","type":"User","site_admin":false},"body":"I you're adding 7 hours; not 5 hours. No need for opinion on syntax. I suggest something like:\r\n\r\n```\r\nThe values of the derived timestamp parameters are in Elasticsearch API date math syntax.\r\n'now/d+7h' rounds 'now' down to the nearest day: 00h00 UTC. The '+7h' adjusts that time to 00h00 PST.\r\nreference: https://www.elastic.co/guide/en/elasticsearch/reference/6.3/common-options.html#date-math\r\n```\r\nHave you tried the `time_zone` range query parameter documented here: https://www.elastic.co/guide/en/elasticsearch/reference/6.3/query-dsl-range-query.html#_time_zone_in_range_queries ? Using that would be more explicit and simplify your date math for `gte`.","created_at":"2019-07-29T18:46:23Z","updated_at":"2019-07-29T18:53:03Z","html_url":"https://github.com/bcgov/GDX-Analytics/pull/124#discussion_r308381532","pull_request_url":"https://api.github.com/repos/bcgov/GDX-Analytics/pulls/124","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/bcgov/GDX-Analytics/pulls/comments/308381532"},"html":{"href":"https://github.com/bcgov/GDX-Analytics/pull/124#discussion_r308381532"},"pull_request":{"href":"https://api.github.com/repos/bcgov/GDX-Analytics/pulls/124"}}},"pull_request":{"url":"https://api.github.com/repos/bcgov/GDX-Analytics/pulls/124","id":301688357,"node_id":"MDExOlB1bGxSZXF1ZXN0MzAxNjg4MzU3","html_url":"https://github.com/bcgov/GDX-Analytics/pull/124","diff_url":"https://github.com/bcgov/GDX-Analytics/pull/124.diff","patch_url":"https://github.com/bcgov/GDX-Analytics/pull/124.patch","issue_url":"https://api.github.com/repos/bcgov/GDX-Analytics/issues/124","number":124,"state":"open","locked":false,"title":"Elasticsearch queuelength","user":{"login":"BJenning","id":34524595,"node_id":"MDQ6VXNlcjM0NTI0NTk1","avatar_url":"https://avatars1.githubusercontent.com/u/34524595?v=4","gravatar_id":"","url":"https://api.github.com/users/BJenning","html_url":"https://github.com/BJenning","followers_url":"https://api.github.com/users/BJenning/followers","following_url":"https://api.github.com/users/BJenning/following{/other_user}","gists_url":"https://api.github.com/users/BJenning/gists{/gist_id}","starred_url":"https://api.github.com/users/BJenning/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BJenning/subscriptions","organizations_url":"https://api.github.com/users/BJenning/orgs","repos_url":"https://api.github.com/users/BJenning/repos","events_url":"https://api.github.com/users/BJenning/events{/privacy}","received_events_url":"https://api.github.com/users/BJenning/received_events","type":"User","site_admin":false},"body":"Ive linted the script, and updated the readme.","created_at":"2019-07-26T21:17:53Z","updated_at":"2019-07-29T18:53:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"767500d46e88b33b8621a1a9ce6faf36eab7bf61","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/bcgov/GDX-Analytics/pulls/124/commits","review_comments_url":"https://api.github.com/repos/bcgov/GDX-Analytics/pulls/124/comments","review_comment_url":"https://api.github.com/repos/bcgov/GDX-Analytics/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bcgov/GDX-Analytics/issues/124/comments","statuses_url":"https://api.github.com/repos/bcgov/GDX-Analytics/statuses/140bba583fd1dee2d60321f907362426de357fa3","head":{"label":"bcgov:elasticsearch_queuelength","ref":"elasticsearch_queuelength","sha":"140bba583fd1dee2d60321f907362426de357fa3","user":{"login":"bcgov","id":916280,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkxNjI4MA==","avatar_url":"https://avatars1.githubusercontent.com/u/916280?v=4","gravatar_id":"","url":"https://api.github.com/users/bcgov","html_url":"https://github.com/bcgov","followers_url":"https://api.github.com/users/bcgov/followers","following_url":"https://api.github.com/users/bcgov/following{/other_user}","gists_url":"https://api.github.com/users/bcgov/gists{/gist_id}","starred_url":"https://api.github.com/users/bcgov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bcgov/subscriptions","organizations_url":"https://api.github.com/users/bcgov/orgs","repos_url":"https://api.github.com/users/bcgov/repos","events_url":"https://api.github.com/users/bcgov/events{/privacy}","received_events_url":"https://api.github.com/users/bcgov/received_events","type":"Organization","site_admin":false},"repo":{"id":123018379,"node_id":"MDEwOlJlcG9zaXRvcnkxMjMwMTgzNzk=","name":"GDX-Analytics","full_name":"bcgov/GDX-Analytics","private":false,"owner":{"login":"bcgov","id":916280,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkxNjI4MA==","avatar_url":"https://avatars1.githubusercontent.com/u/916280?v=4","gravatar_id":"","url":"https://api.github.com/users/bcgov","html_url":"https://github.com/bcgov","followers_url":"https://api.github.com/users/bcgov/followers","following_url":"https://api.github.com/users/bcgov/following{/other_user}","gists_url":"https://api.github.com/users/bcgov/gists{/gist_id}","starred_url":"https://api.github.com/users/bcgov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bcgov/subscriptions","organizations_url":"https://api.github.com/users/bcgov/orgs","repos_url":"https://api.github.com/users/bcgov/repos","events_url":"https://api.github.com/users/bcgov/events{/privacy}","received_events_url":"https://api.github.com/users/bcgov/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/bcgov/GDX-Analytics","description":"GDX-Analytics working space: microservices, tests, POCs, and other scripts","fork":false,"url":"https://api.github.com/repos/bcgov/GDX-Analytics","forks_url":"https://api.github.com/repos/bcgov/GDX-Analytics/forks","keys_url":"https://api.github.com/repos/bcgov/GDX-Analytics/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bcgov/GDX-Analytics/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bcgov/GDX-Analytics/teams","hooks_url":"https://api.github.com/repos/bcgov/GDX-Analytics/hooks","issue_events_url":"https://api.github.com/repos/bcgov/GDX-Analytics/issues/events{/number}","events_url":"https://api.github.com/repos/bcgov/GDX-Analytics/events","assignees_url":"https://api.github.com/repos/bcgov/GDX-Analytics/assignees{/user}","branches_url":"https://api.github.com/repos/bcgov/GDX-Analytics/branches{/branch}","tags_url":"https://api.github.com/repos/bcgov/GDX-Analytics/tags","blobs_url":"https://api.github.com/repos/bcgov/GDX-Analytics/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bcgov/GDX-Analytics/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bcgov/GDX-Analytics/git/refs{/sha}","trees_url":"https://api.github.com/repos/bcgov/GDX-Analytics/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bcgov/GDX-Analytics/statuses/{sha}","languages_url":"https://api.github.com/repos/bcgov/GDX-Analytics/languages","stargazers_url":"https://api.github.com/repos/bcgov/GDX-Analytics/stargazers","contributors_url":"https://api.github.com/repos/bcgov/GDX-Analytics/contributors","subscribers_url":"https://api.github.com/repos/bcgov/GDX-Analytics/subscribers","subscription_url":"https://api.github.com/repos/bcgov/GDX-Analytics/subscription","commits_url":"https://api.github.com/repos/bcgov/GDX-Analytics/commits{/sha}","git_commits_url":"https://api.github.com/repos/bcgov/GDX-Analytics/git/commits{/sha}","comments_url":"https://api.github.com/repos/bcgov/GDX-Analytics/comments{/number}","issue_comment_url":"https://api.github.com/repos/bcgov/GDX-Analytics/issues/comments{/number}","contents_url":"https://api.github.com/repos/bcgov/GDX-Analytics/contents/{+path}","compare_url":"https://api.github.com/repos/bcgov/GDX-Analytics/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bcgov/GDX-Analytics/merges","archive_url":"https://api.github.com/repos/bcgov/GDX-Analytics/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bcgov/GDX-Analytics/downloads","issues_url":"https://api.github.com/repos/bcgov/GDX-Analytics/issues{/number}","pulls_url":"https://api.github.com/repos/bcgov/GDX-Analytics/pulls{/number}","milestones_url":"https://api.github.com/repos/bcgov/GDX-Analytics/milestones{/number}","notifications_url":"https://api.github.com/repos/bcgov/GDX-Analytics/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bcgov/GDX-Analytics/labels{/name}","releases_url":"https://api.github.com/repos/bcgov/GDX-Analytics/releases{/id}","deployments_url":"https://api.github.com/repos/bcgov/GDX-Analytics/deployments","created_at":"2018-02-26T19:18:40Z","updated_at":"2019-07-26T02:14:32Z","pushed_at":"2019-07-26T21:17:53Z","git_url":"git://github.com/bcgov/GDX-Analytics.git","ssh_url":"git@github.com:bcgov/GDX-Analytics.git","clone_url":"https://github.com/bcgov/GDX-Analytics.git","svn_url":"https://github.com/bcgov/GDX-Analytics","homepage":"","size":562,"stargazers_count":3,"watchers_count":3,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"archived":false,"disabled":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","node_id":"MDc6TGljZW5zZTI="},"forks":2,"open_issues":3,"watchers":3,"default_branch":"master"}},"base":{"label":"bcgov:master","ref":"master","sha":"d2d95c05766fd3231f4afa742f3741a43bb159eb","user":{"login":"bcgov","id":916280,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkxNjI4MA==","avatar_url":"https://avatars1.githubusercontent.com/u/916280?v=4","gravatar_id":"","url":"https://api.github.com/users/bcgov","html_url":"https://github.com/bcgov","followers_url":"https://api.github.com/users/bcgov/followers","following_url":"https://api.github.com/users/bcgov/following{/other_user}","gists_url":"https://api.github.com/users/bcgov/gists{/gist_id}","starred_url":"https://api.github.com/users/bcgov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bcgov/subscriptions","organizations_url":"https://api.github.com/users/bcgov/orgs","repos_url":"https://api.github.com/users/bcgov/repos","events_url":"https://api.github.com/users/bcgov/events{/privacy}","received_events_url":"https://api.github.com/users/bcgov/received_events","type":"Organization","site_admin":false},"repo":{"id":123018379,"node_id":"MDEwOlJlcG9zaXRvcnkxMjMwMTgzNzk=","name":"GDX-Analytics","full_name":"bcgov/GDX-Analytics","private":false,"owner":{"login":"bcgov","id":916280,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkxNjI4MA==","avatar_url":"https://avatars1.githubusercontent.com/u/916280?v=4","gravatar_id":"","url":"https://api.github.com/users/bcgov","html_url":"https://github.com/bcgov","followers_url":"https://api.github.com/users/bcgov/followers","following_url":"https://api.github.com/users/bcgov/following{/other_user}","gists_url":"https://api.github.com/users/bcgov/gists{/gist_id}","starred_url":"https://api.github.com/users/bcgov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bcgov/subscriptions","organizations_url":"https://api.github.com/users/bcgov/orgs","repos_url":"https://api.github.com/users/bcgov/repos","events_url":"https://api.github.com/users/bcgov/events{/privacy}","received_events_url":"https://api.github.com/users/bcgov/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/bcgov/GDX-Analytics","description":"GDX-Analytics working space: microservices, tests, POCs, and other scripts","fork":false,"url":"https://api.github.com/repos/bcgov/GDX-Analytics","forks_url":"https://api.github.com/repos/bcgov/GDX-Analytics/forks","keys_url":"https://api.github.com/repos/bcgov/GDX-Analytics/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bcgov/GDX-Analytics/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bcgov/GDX-Analytics/teams","hooks_url":"https://api.github.com/repos/bcgov/GDX-Analytics/hooks","issue_events_url":"https://api.github.com/repos/bcgov/GDX-Analytics/issues/events{/number}","events_url":"https://api.github.com/repos/bcgov/GDX-Analytics/events","assignees_url":"https://api.github.com/repos/bcgov/GDX-Analytics/assignees{/user}","branches_url":"https://api.github.com/repos/bcgov/GDX-Analytics/branches{/branch}","tags_url":"https://api.github.com/repos/bcgov/GDX-Analytics/tags","blobs_url":"https://api.github.com/repos/bcgov/GDX-Analytics/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bcgov/GDX-Analytics/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bcgov/GDX-Analytics/git/refs{/sha}","trees_url":"https://api.github.com/repos/bcgov/GDX-Analytics/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bcgov/GDX-Analytics/statuses/{sha}","languages_url":"https://api.github.com/repos/bcgov/GDX-Analytics/languages","stargazers_url":"https://api.github.com/repos/bcgov/GDX-Analytics/stargazers","contributors_url":"https://api.github.com/repos/bcgov/GDX-Analytics/contributors","subscribers_url":"https://api.github.com/repos/bcgov/GDX-Analytics/subscribers","subscription_url":"https://api.github.com/repos/bcgov/GDX-Analytics/subscription","commits_url":"https://api.github.com/repos/bcgov/GDX-Analytics/commits{/sha}","git_commits_url":"https://api.github.com/repos/bcgov/GDX-Analytics/git/commits{/sha}","comments_url":"https://api.github.com/repos/bcgov/GDX-Analytics/comments{/number}","issue_comment_url":"https://api.github.com/repos/bcgov/GDX-Analytics/issues/comments{/number}","contents_url":"https://api.github.com/repos/bcgov/GDX-Analytics/contents/{+path}","compare_url":"https://api.github.com/repos/bcgov/GDX-Analytics/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bcgov/GDX-Analytics/merges","archive_url":"https://api.github.com/repos/bcgov/GDX-Analytics/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bcgov/GDX-Analytics/downloads","issues_url":"https://api.github.com/repos/bcgov/GDX-Analytics/issues{/number}","pulls_url":"https://api.github.com/repos/bcgov/GDX-Analytics/pulls{/number}","milestones_url":"https://api.github.com/repos/bcgov/GDX-Analytics/milestones{/number}","notifications_url":"https://api.github.com/repos/bcgov/GDX-Analytics/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bcgov/GDX-Analytics/labels{/name}","releases_url":"https://api.github.com/repos/bcgov/GDX-Analytics/releases{/id}","deployments_url":"https://api.github.com/repos/bcgov/GDX-Analytics/deployments","created_at":"2018-02-26T19:18:40Z","updated_at":"2019-07-26T02:14:32Z","pushed_at":"2019-07-26T21:17:53Z","git_url":"git://github.com/bcgov/GDX-Analytics.git","ssh_url":"git@github.com:bcgov/GDX-Analytics.git","clone_url":"https://github.com/bcgov/GDX-Analytics.git","svn_url":"https://github.com/bcgov/GDX-Analytics","homepage":"","size":562,"stargazers_count":3,"watchers_count":3,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"archived":false,"disabled":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","node_id":"MDc6TGljZW5zZTI="},"forks":2,"open_issues":3,"watchers":3,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bcgov/GDX-Analytics/pulls/124"},"html":{"href":"https://github.com/bcgov/GDX-Analytics/pull/124"},"issue":{"href":"https://api.github.com/repos/bcgov/GDX-Analytics/issues/124"},"comments":{"href":"https://api.github.com/repos/bcgov/GDX-Analytics/issues/124/comments"},"review_comments":{"href":"https://api.github.com/repos/bcgov/GDX-Analytics/pulls/124/comments"},"review_comment":{"href":"https://api.github.com/repos/bcgov/GDX-Analytics/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bcgov/GDX-Analytics/pulls/124/commits"},"statuses":{"href":"https://api.github.com/repos/bcgov/GDX-Analytics/statuses/140bba583fd1dee2d60321f907362426de357fa3"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"mark-walle"}}