{"action":"created","comment":{"url":"https://api.github.com/repos/Adslot/trello-backup/pulls/comments/78137302","id":78137302,"diff_hunk":"@@ -1,127 +1,153 @@\n #!/usr/bin/env python -u\n-\n-import ConfigParser\n-import os, sys\n+from __future__ import unicode_literals\n+import os\n+import sys\n import json\n import requests\n import time\n import io\n-\n-configFile = 'trello-backup.config'\n-configFile = os.path.join(os.path.abspath(os.path.dirname(__file__)), configFile)\n-\n-API_KEY = TOKEN = API_URL = ''\n-\n-def main():\n-\tif os.path.isfile(configFile):\n-\t\tconfig = ConfigParser.RawConfigParser()\n-\t\tconfig.read(configFile)\n-\telse:\n-\t\tsys.exit('Config file \"{0}\" does not exist.'.format(configFile))\n-\n-\tglobal API_KEY, TOKEN, API_URL\n-\tAPI_KEY = config.get('Credentials', 'API_KEY')\n-\tTOKEN = config.get('Credentials', 'TOKEN')\n-\n-\tAPI_URL = config.get('Paths', 'API_URL')\n-\tOUTPUT_DIRECTORY = config.get('Paths', 'OUTPUT_DIRECTORY')\n-\n-\tTOKEN_EXPIRATION = config.get('Options', 'TOKEN_EXPIRATION')\n-\tAPP_NAME = config.get('Options', 'APP_NAME')\n-\tORGANIZATION_IDS = config.get('Options', 'ORGANIZATION_IDS')\n-\tORGANIZATION_NAMES = config.get('Options', 'ORGANIZATION_NAMES')\n-\tPRETTY_PRINT = config.get('Options', 'PRETTY_PRINT') == 'yes'\n-\n-\tif not API_KEY:\n-\t\tprint('You need an API key to run this app.')\n-\t\tprint('Visit this url: https://trello.com/1/appKey/generate')\n-\t\tAPI_KEY = raw_input('Then enter the API key here: ')\n-\t\tprint('\\n[IMPORTANT] Make sure to add the key to the config file.\\n')\n-\t\traw_input('Press enter to continue...\\n')\n-\n-\tif not TOKEN:\n-\t\tprint('You need a token to run this app.')\n-\t\tprint(\"Visit this url: {0}connect?key={1}&name={2}&response_type=token&expiration={3}\".format(API_URL, API_KEY, APP_NAME, TOKEN_EXPIRATION))\n-\t\tTOKEN = raw_input('Then enter the token here: ')\n-\t\tprint('\\n[IMPORTANT] Make sure to add the token to the config file.\\n')\n-\t\traw_input('Press enter to continue...\\n')\n-\n-\tif ORGANIZATION_NAMES and not ORGANIZATION_IDS:\n-\t\tORGANIZATION_IDS = get_organization_ids(ORGANIZATION_NAMES)\n-\n-\t# Parameters to get list of boards\n-\tboardsPayload = {\n-\t\t'key':API_KEY,\n-\t\t'token':TOKEN,\n-\t\t'filter':'open',\n-\t\t'lists':'open',\n-\t}\n-\t# Parameters to get board contents\n-\tboardPayload = {\n-\t\t'key':API_KEY,\n-\t\t'token':TOKEN,\n-\t\t'lists':'open',\n-\t\t'fields':'all',\n-\t\t'actions':'all',\n-\t\t'action_fields':'all',\n-\t\t'actions_limit':'1000',\n-\t\t'cards':'all',\n-\t\t'card_fields':'all',\n-\t\t'card_attachments':'true',\n-\t\t'lists':'all',\n-\t\t'list_fields':'all',\n-\t\t'members':'all',\n-\t\t'member_fields':'all',\n-\t\t'checklists':'all',\n-\t\t'checklist_fields':'all',\n-\t\t'organization':'false',\n-\t}\n-\tboards = requests.get(API_URL + \"members/my/boards\", data=boardsPayload)\n-\ttry:\n-\t\tif len(boards.json()) <= 0:\n-\t\t\tprint('No boards found.')\n-\t\t\treturn\n-\texcept ValueError:\n-\t\tprint('Unable to access your boards. Check your key and token.')\n-\t\treturn\n-\tif not os.path.exists(OUTPUT_DIRECTORY):\n-\t\tos.makedirs(OUTPUT_DIRECTORY)\n-\n-\tprint('Backing up boards:')\n-\tepoch_time = str(int(time.time()))\n-\n-\tfor board in boards.json():\n-\t\tif ORGANIZATION_IDS and (not board[\"idOrganization\"] or not board[\"idOrganization\"] in ORGANIZATION_IDS):\n-\t\t\tcontinue\n-\n-\t\tprint(u\"    - {0} ({1})\".format(board[\"name\"], board[\"id\"]))\n-\t\tboardContents = requests.get(API_URL + \"boards/\" + board[\"id\"], data=boardPayload)\n-\t\twith io.open(OUTPUT_DIRECTORY + u'/{0}_'.format(board[\"name\"].replace(\"/\",\"-\")) + epoch_time + '.json', 'w', encoding='utf8') as file:\n-\t\t\targs = dict( sort_keys=True, indent=4) if PRETTY_PRINT else dict()\n-\t\t\tdata = json.dumps(boardContents.json(), ensure_ascii=False, **args)\n-\t\t\tfile.write(unicode(data))\n-\n-def get_organization_ids(ORGANIZATION_NAMES):\n-\tselected_organizations = []\n-\tfor organization in ORGANIZATION_NAMES.split(','):\n-\t\tselected_organizations.append(organization.strip())\n-\torganization_ids = []\n-\n-\t# Parameters to get a list of organizations\n-\torganizationsPayload = {\n-\t\t'key':API_KEY,\n-\t\t'token':TOKEN,\n-\t}\n-\n-\torganizations = requests.get(API_URL + \"members/my/organizations\", data=organizationsPayload)\n-\tif len(organizations.json()) <= 0:\n-\t\tprint('No organizations found.')\n-\telse:\n-\t\tfor organization in organizations.json():\n-\t\t\tif organization[\"name\"] in selected_organizations:\n-\t\t\t\torganization_ids.append(organization[\"id\"])\n-\treturn organization_ids\n-\n-\n-if __name__ == '__main__':\n-\tmain()\n+import logging\n+import argparse\n+\n+API_URL = \"https://api.trello.com/1/\"\n+\n+\n+def get_organization_ids(ORGANIZATION_NAMES, API_KEY, TOKEN):\n+    \"\"\"\n+    Translates Org Name to ID\n+    \"\"\"\n+    selected_organizations = []\n+    for organization in ORGANIZATION_NAMES.split(','):\n+        selected_organizations.append(organization.strip())\n+    organization_ids = []\n+\n+    # Parameters to get a list of organizations\n+    organizationsPayload = {\n+        'key': '{}'.format(API_KEY),\n+        'token': '{}'.format(TOKEN),\n+    }\n+\n+    organizations = requests.get(API_URL + \"members/me/organizations\", params=organizationsPayload)\n+    if len(organizations.json()) <= 0:\n+        logger.error('No organizations found.')\n+    else:\n+        logger.info('Finding all Organizations.')\n+        for organization in organizations.json():\n+            if organization[\"name\"].lower() in selected_organizations:\n+                organization_ids.append(organization[\"id\"])\n+                logger.debug('Org Added: {}'.format(organization[\"id\"]))\n+    return organization_ids\n+\n+if __name__ == \"__main__\":\n+\n+    # parse args\n+    parser = argparse.ArgumentParser(description=\"Trello Backup\")\n+    parser.add_argument(\"-k\", \"--key\", help=\"Trello API Key\")\n+    parser.add_argument(\"-t\", \"--oauth-token\", help=\"Trello OAuth Token\")\n+    parser.add_argument(\"-d\", \"--directory\", required=True, help=\"Directory to save JSON files, created if non exist\")\n+    parser.add_argument(\"-l\", \"--log\", help=\"Logging level - info|INFO|WARNING|ERROR|CRITICAL\")\n+    parser.add_argument(\"-a\", \"--appname\", required=True, help=\"Trello App Name\")\n+    parser.add_argument(\"-o\", \"--orgid\", help=\"Organisation by ID to backup. \")\n+    parser.add_argument(\"-n\", \"--orgname\", help=\"Organisation by Name to backup\")\n+\n+    args = parser.parse_args()\n+\n+    API_KEY = args.key\n+    TOKEN = args.oauth_token\n+    OUTPUT_DIRECTORY = args.directory\n+    APP_NAME = args.appname\n+    ORGANIZATION_IDS = \"\"\n+    ORGANIZATION_NAMES = \"\"\n+    if args.orgid:\n+        ORGANIZATION_IDS = args.orgid.lower()\n+    if args.orgname:\n+        ORGANIZATION_NAMES = args.orgname.lower()\n+    PRETTY_PRINT = 'yes'","path":"trello-backup.py","position":187,"original_position":187,"commit_id":"f1f43187dffbf985b47918d219d3ed4558463a8c","original_commit_id":"f1f43187dffbf985b47918d219d3ed4558463a8c","user":{"login":"bchew","id":818316,"avatar_url":"https://avatars.githubusercontent.com/u/818316?v=3","gravatar_id":"","url":"https://api.github.com/users/bchew","html_url":"https://github.com/bchew","followers_url":"https://api.github.com/users/bchew/followers","following_url":"https://api.github.com/users/bchew/following{/other_user}","gists_url":"https://api.github.com/users/bchew/gists{/gist_id}","starred_url":"https://api.github.com/users/bchew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bchew/subscriptions","organizations_url":"https://api.github.com/users/bchew/orgs","repos_url":"https://api.github.com/users/bchew/repos","events_url":"https://api.github.com/users/bchew/events{/privacy}","received_events_url":"https://api.github.com/users/bchew/received_events","type":"User","site_admin":false},"body":"As above","created_at":"2016-09-09T07:10:20Z","updated_at":"2016-09-09T07:10:20Z","html_url":"https://github.com/Adslot/trello-backup/pull/1#discussion_r78137302","pull_request_url":"https://api.github.com/repos/Adslot/trello-backup/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/Adslot/trello-backup/pulls/comments/78137302"},"html":{"href":"https://github.com/Adslot/trello-backup/pull/1#discussion_r78137302"},"pull_request":{"href":"https://api.github.com/repos/Adslot/trello-backup/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/Adslot/trello-backup/pulls/1","id":84599126,"html_url":"https://github.com/Adslot/trello-backup/pull/1","diff_url":"https://github.com/Adslot/trello-backup/pull/1.diff","patch_url":"https://github.com/Adslot/trello-backup/pull/1.patch","issue_url":"https://api.github.com/repos/Adslot/trello-backup/issues/1","number":1,"state":"open","locked":false,"title":"Update to Python3, Argparse, and Fixing requests","user":{"login":"ticoombs","id":2687896,"avatar_url":"https://avatars.githubusercontent.com/u/2687896?v=3","gravatar_id":"","url":"https://api.github.com/users/ticoombs","html_url":"https://github.com/ticoombs","followers_url":"https://api.github.com/users/ticoombs/followers","following_url":"https://api.github.com/users/ticoombs/following{/other_user}","gists_url":"https://api.github.com/users/ticoombs/gists{/gist_id}","starred_url":"https://api.github.com/users/ticoombs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ticoombs/subscriptions","organizations_url":"https://api.github.com/users/ticoombs/orgs","repos_url":"https://api.github.com/users/ticoombs/repos","events_url":"https://api.github.com/users/ticoombs/events{/privacy}","received_events_url":"https://api.github.com/users/ticoombs/received_events","type":"User","site_admin":false},"body":"- Fix: use requests `params` instead of `data`\n- Feature: Backup all boards under Org, instead of boards user is on\n- Feature: Argparse instead of configparser\n- Feature: Output by logger, instead of print","created_at":"2016-09-09T06:18:38Z","updated_at":"2016-09-09T07:10:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6c98848b75c91b5a495e31359c442b89403badbb","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/Adslot/trello-backup/pulls/1/commits","review_comments_url":"https://api.github.com/repos/Adslot/trello-backup/pulls/1/comments","review_comment_url":"https://api.github.com/repos/Adslot/trello-backup/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Adslot/trello-backup/issues/1/comments","statuses_url":"https://api.github.com/repos/Adslot/trello-backup/statuses/f1f43187dffbf985b47918d219d3ed4558463a8c","head":{"label":"Adslot:fix-backup","ref":"fix-backup","sha":"f1f43187dffbf985b47918d219d3ed4558463a8c","user":{"login":"Adslot","id":767098,"avatar_url":"https://avatars.githubusercontent.com/u/767098?v=3","gravatar_id":"","url":"https://api.github.com/users/Adslot","html_url":"https://github.com/Adslot","followers_url":"https://api.github.com/users/Adslot/followers","following_url":"https://api.github.com/users/Adslot/following{/other_user}","gists_url":"https://api.github.com/users/Adslot/gists{/gist_id}","starred_url":"https://api.github.com/users/Adslot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Adslot/subscriptions","organizations_url":"https://api.github.com/users/Adslot/orgs","repos_url":"https://api.github.com/users/Adslot/repos","events_url":"https://api.github.com/users/Adslot/events{/privacy}","received_events_url":"https://api.github.com/users/Adslot/received_events","type":"Organization","site_admin":false},"repo":{"id":67086991,"name":"trello-backup","full_name":"Adslot/trello-backup","owner":{"login":"Adslot","id":767098,"avatar_url":"https://avatars.githubusercontent.com/u/767098?v=3","gravatar_id":"","url":"https://api.github.com/users/Adslot","html_url":"https://github.com/Adslot","followers_url":"https://api.github.com/users/Adslot/followers","following_url":"https://api.github.com/users/Adslot/following{/other_user}","gists_url":"https://api.github.com/users/Adslot/gists{/gist_id}","starred_url":"https://api.github.com/users/Adslot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Adslot/subscriptions","organizations_url":"https://api.github.com/users/Adslot/orgs","repos_url":"https://api.github.com/users/Adslot/repos","events_url":"https://api.github.com/users/Adslot/events{/privacy}","received_events_url":"https://api.github.com/users/Adslot/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Adslot/trello-backup","description":"A simple python script to enable JSON backups of all accessible Trello boards.","fork":true,"url":"https://api.github.com/repos/Adslot/trello-backup","forks_url":"https://api.github.com/repos/Adslot/trello-backup/forks","keys_url":"https://api.github.com/repos/Adslot/trello-backup/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Adslot/trello-backup/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Adslot/trello-backup/teams","hooks_url":"https://api.github.com/repos/Adslot/trello-backup/hooks","issue_events_url":"https://api.github.com/repos/Adslot/trello-backup/issues/events{/number}","events_url":"https://api.github.com/repos/Adslot/trello-backup/events","assignees_url":"https://api.github.com/repos/Adslot/trello-backup/assignees{/user}","branches_url":"https://api.github.com/repos/Adslot/trello-backup/branches{/branch}","tags_url":"https://api.github.com/repos/Adslot/trello-backup/tags","blobs_url":"https://api.github.com/repos/Adslot/trello-backup/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Adslot/trello-backup/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Adslot/trello-backup/git/refs{/sha}","trees_url":"https://api.github.com/repos/Adslot/trello-backup/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Adslot/trello-backup/statuses/{sha}","languages_url":"https://api.github.com/repos/Adslot/trello-backup/languages","stargazers_url":"https://api.github.com/repos/Adslot/trello-backup/stargazers","contributors_url":"https://api.github.com/repos/Adslot/trello-backup/contributors","subscribers_url":"https://api.github.com/repos/Adslot/trello-backup/subscribers","subscription_url":"https://api.github.com/repos/Adslot/trello-backup/subscription","commits_url":"https://api.github.com/repos/Adslot/trello-backup/commits{/sha}","git_commits_url":"https://api.github.com/repos/Adslot/trello-backup/git/commits{/sha}","comments_url":"https://api.github.com/repos/Adslot/trello-backup/comments{/number}","issue_comment_url":"https://api.github.com/repos/Adslot/trello-backup/issues/comments{/number}","contents_url":"https://api.github.com/repos/Adslot/trello-backup/contents/{+path}","compare_url":"https://api.github.com/repos/Adslot/trello-backup/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Adslot/trello-backup/merges","archive_url":"https://api.github.com/repos/Adslot/trello-backup/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Adslot/trello-backup/downloads","issues_url":"https://api.github.com/repos/Adslot/trello-backup/issues{/number}","pulls_url":"https://api.github.com/repos/Adslot/trello-backup/pulls{/number}","milestones_url":"https://api.github.com/repos/Adslot/trello-backup/milestones{/number}","notifications_url":"https://api.github.com/repos/Adslot/trello-backup/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Adslot/trello-backup/labels{/name}","releases_url":"https://api.github.com/repos/Adslot/trello-backup/releases{/id}","deployments_url":"https://api.github.com/repos/Adslot/trello-backup/deployments","created_at":"2016-09-01T01:27:32Z","updated_at":"2016-09-01T01:27:33Z","pushed_at":"2016-09-09T06:19:56Z","git_url":"git://github.com/Adslot/trello-backup.git","ssh_url":"git@github.com:Adslot/trello-backup.git","clone_url":"https://github.com/Adslot/trello-backup.git","svn_url":"https://github.com/Adslot/trello-backup","homepage":null,"size":8,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"Adslot:master","ref":"master","sha":"2ef98fa2c3718b21e0ef0c8d60916a5e73791d68","user":{"login":"Adslot","id":767098,"avatar_url":"https://avatars.githubusercontent.com/u/767098?v=3","gravatar_id":"","url":"https://api.github.com/users/Adslot","html_url":"https://github.com/Adslot","followers_url":"https://api.github.com/users/Adslot/followers","following_url":"https://api.github.com/users/Adslot/following{/other_user}","gists_url":"https://api.github.com/users/Adslot/gists{/gist_id}","starred_url":"https://api.github.com/users/Adslot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Adslot/subscriptions","organizations_url":"https://api.github.com/users/Adslot/orgs","repos_url":"https://api.github.com/users/Adslot/repos","events_url":"https://api.github.com/users/Adslot/events{/privacy}","received_events_url":"https://api.github.com/users/Adslot/received_events","type":"Organization","site_admin":false},"repo":{"id":67086991,"name":"trello-backup","full_name":"Adslot/trello-backup","owner":{"login":"Adslot","id":767098,"avatar_url":"https://avatars.githubusercontent.com/u/767098?v=3","gravatar_id":"","url":"https://api.github.com/users/Adslot","html_url":"https://github.com/Adslot","followers_url":"https://api.github.com/users/Adslot/followers","following_url":"https://api.github.com/users/Adslot/following{/other_user}","gists_url":"https://api.github.com/users/Adslot/gists{/gist_id}","starred_url":"https://api.github.com/users/Adslot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Adslot/subscriptions","organizations_url":"https://api.github.com/users/Adslot/orgs","repos_url":"https://api.github.com/users/Adslot/repos","events_url":"https://api.github.com/users/Adslot/events{/privacy}","received_events_url":"https://api.github.com/users/Adslot/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Adslot/trello-backup","description":"A simple python script to enable JSON backups of all accessible Trello boards.","fork":true,"url":"https://api.github.com/repos/Adslot/trello-backup","forks_url":"https://api.github.com/repos/Adslot/trello-backup/forks","keys_url":"https://api.github.com/repos/Adslot/trello-backup/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Adslot/trello-backup/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Adslot/trello-backup/teams","hooks_url":"https://api.github.com/repos/Adslot/trello-backup/hooks","issue_events_url":"https://api.github.com/repos/Adslot/trello-backup/issues/events{/number}","events_url":"https://api.github.com/repos/Adslot/trello-backup/events","assignees_url":"https://api.github.com/repos/Adslot/trello-backup/assignees{/user}","branches_url":"https://api.github.com/repos/Adslot/trello-backup/branches{/branch}","tags_url":"https://api.github.com/repos/Adslot/trello-backup/tags","blobs_url":"https://api.github.com/repos/Adslot/trello-backup/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Adslot/trello-backup/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Adslot/trello-backup/git/refs{/sha}","trees_url":"https://api.github.com/repos/Adslot/trello-backup/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Adslot/trello-backup/statuses/{sha}","languages_url":"https://api.github.com/repos/Adslot/trello-backup/languages","stargazers_url":"https://api.github.com/repos/Adslot/trello-backup/stargazers","contributors_url":"https://api.github.com/repos/Adslot/trello-backup/contributors","subscribers_url":"https://api.github.com/repos/Adslot/trello-backup/subscribers","subscription_url":"https://api.github.com/repos/Adslot/trello-backup/subscription","commits_url":"https://api.github.com/repos/Adslot/trello-backup/commits{/sha}","git_commits_url":"https://api.github.com/repos/Adslot/trello-backup/git/commits{/sha}","comments_url":"https://api.github.com/repos/Adslot/trello-backup/comments{/number}","issue_comment_url":"https://api.github.com/repos/Adslot/trello-backup/issues/comments{/number}","contents_url":"https://api.github.com/repos/Adslot/trello-backup/contents/{+path}","compare_url":"https://api.github.com/repos/Adslot/trello-backup/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Adslot/trello-backup/merges","archive_url":"https://api.github.com/repos/Adslot/trello-backup/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Adslot/trello-backup/downloads","issues_url":"https://api.github.com/repos/Adslot/trello-backup/issues{/number}","pulls_url":"https://api.github.com/repos/Adslot/trello-backup/pulls{/number}","milestones_url":"https://api.github.com/repos/Adslot/trello-backup/milestones{/number}","notifications_url":"https://api.github.com/repos/Adslot/trello-backup/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Adslot/trello-backup/labels{/name}","releases_url":"https://api.github.com/repos/Adslot/trello-backup/releases{/id}","deployments_url":"https://api.github.com/repos/Adslot/trello-backup/deployments","created_at":"2016-09-01T01:27:32Z","updated_at":"2016-09-01T01:27:33Z","pushed_at":"2016-09-09T06:19:56Z","git_url":"git://github.com/Adslot/trello-backup.git","ssh_url":"git@github.com:Adslot/trello-backup.git","clone_url":"https://github.com/Adslot/trello-backup.git","svn_url":"https://github.com/Adslot/trello-backup","homepage":null,"size":8,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Adslot/trello-backup/pulls/1"},"html":{"href":"https://github.com/Adslot/trello-backup/pull/1"},"issue":{"href":"https://api.github.com/repos/Adslot/trello-backup/issues/1"},"comments":{"href":"https://api.github.com/repos/Adslot/trello-backup/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/Adslot/trello-backup/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/Adslot/trello-backup/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Adslot/trello-backup/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/Adslot/trello-backup/statuses/f1f43187dffbf985b47918d219d3ed4558463a8c"}}}}
{"actor":{"display_login":"bchew"}}