{"action":"created","comment":{"url":"https://api.github.com/repos/appsembler/edx-platform/pulls/comments/200327970","pull_request_review_id":134620467,"id":200327970,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwMDMyNzk3MA==","diff_hunk":"@@ -1049,64 +1102,120 @@ def settings_handler(request, course_key_string):\n                             'show_min_grade_warning': show_min_grade_warning,\n                         }\n                     )\n-\n+            perflog['checkpoints'].append({\n+                'time': time.time(),\n+                'name': 'returning response'})\n+            perflog['end'] = time.time()\n+            perflog['total_duration'] = perflog['end'] - perflog['start']\n+            log.info(\"PERFLOG %s\" % json.dumps(perflog))\n             return render_to_response('settings.html', settings_context)\n         elif 'application/json' in request.META.get('HTTP_ACCEPT', ''):\n+            perflog['branches']['application_json'] = True\n             if request.method == 'GET':\n+                perflog['branches']['GET'] = True\n                 course_details = CourseDetails.fetch(course_key)\n+                perflog['checkpoints'].append({\n+                    'time': time.time(),\n+                    'name': 'CourseDetails.fetch()'})\n+                perflog['end'] = time.time()\n+                perflog['total_duration'] = perflog['end'] - perflog['start']\n+                log.info(\"PERFLOG %s\" % json.dumps(perflog))\n                 return JsonResponse(\n                     course_details,\n                     # encoder serializes dates, old locations, and instances\n                     encoder=CourseSettingsEncoder\n                 )\n             # For every other possible method type submitted by the caller...\n             else:\n+                perflog['branches']['not_GET'] = True\n                 # if pre-requisite course feature is enabled set pre-requisite course\n                 if is_prerequisite_courses_enabled():\n+                    perflog['branches']['is_prerequisite_courses_enabled()'] = True\n+                    perflog['checkpoints'].append({\n+                        'time': time.time(),\n+                        'name': 'is_prerequisite_courses_enabled()'})\n                     prerequisite_course_keys = request.json.get('pre_requisite_courses', [])\n                     if prerequisite_course_keys:\n+                        perflog['branches']['prerequisite_course_keys'] = True\n                         if not all(is_valid_course_key(course_key) for course_key in prerequisite_course_keys):\n+                            perflog['branches']['invalid_course_key'] = True\n+                            perflog['end'] = time.time()\n+                            perflog['total_duration'] = perflog['end'] - perflog['start']\n+                            log.info(\"PERFLOG %s\" % json.dumps(perflog))\n                             return JsonResponseBadRequest({\"error\": _(\"Invalid prerequisite course key\")})\n                         set_prerequisite_courses(course_key, prerequisite_course_keys)\n+                        perflog['checkpoints'].append({\n+                            'time': time.time(),\n+                            'name': 'set_prerequisite_courses()'})\n                     else:\n                         # None is chosen, so remove the course prerequisites\n+                        perflog['branches']['remove_course_prerequisites'] = True\n                         course_milestones = milestones_api.get_course_milestones(course_key=course_key, relationship=\"requires\")\n+                        perflog['checkpoints'].append({\n+                            'time': time.time(),\n+                            'name': 'milestones_api.get_course_milestones()'})\n                         for milestone in course_milestones:\n                             remove_prerequisite_course(course_key, milestone)\n+                            perflog['checkpoints'].append({\n+                                'time': time.time(),\n+                                'name': 'remove_prerequisite_course()'})\n \n                 # If the entrance exams feature has been enabled, we'll need to check for some\n                 # feature-specific settings and handle them accordingly\n                 # We have to be careful that we're only executing the following logic if we actually\n                 # need to create or delete an entrance exam from the specified course\n                 if is_entrance_exams_enabled():\n+                    perflog['branches']['is_entrance_exams_enabled'] = True\n+                    perflog['checkpoints'].append({\n+                        'time': time.time(),\n+                        'name': 'is_entrance_exams_enabled()'})\n                     course_entrance_exam_present = course_module.entrance_exam_enabled\n                     entrance_exam_enabled = request.json.get('entrance_exam_enabled', '') == 'true'\n                     ee_min_score_pct = request.json.get('entrance_exam_minimum_score_pct', None)\n                     # If the entrance exam box on the settings screen has been checked...\n                     if entrance_exam_enabled:\n+                        perflog['branches']['entrance_exam_enabled'] = True\n                         # Load the default minimum score threshold from settings, then try to override it\n                         entrance_exam_minimum_score_pct = float(settings.ENTRANCE_EXAM_MIN_SCORE_PCT)\n                         if ee_min_score_pct:\n+                            perflog['branches']['ee_min_score_pct'] = True\n                             entrance_exam_minimum_score_pct = float(ee_min_score_pct)\n                         if entrance_exam_minimum_score_pct.is_integer():\n+                            perflog['branches']['entrance_exam_minimum_score_pct'] = True\n                             entrance_exam_minimum_score_pct = entrance_exam_minimum_score_pct / 100\n                         entrance_exam_minimum_score_pct = unicode(entrance_exam_minimum_score_pct)\n                         # If there's already an entrance exam defined, we'll update the existing one\n                         if course_entrance_exam_present:\n+                            perflog['branches']['course_entrance_exam_present'] = True\n                             exam_data = {\n                                 'entrance_exam_minimum_score_pct': entrance_exam_minimum_score_pct\n                             }\n                             update_entrance_exam(request, course_key, exam_data)\n+                            perflog['checkpoints'].append({\n+                                'time': time.time(),\n+                                'name': 'update_entrance_exam()'})\n+\n                         # If there's no entrance exam defined, we'll create a new one\n                         else:\n+                            perflog['branches']['create_new_entrance_exam'] = True\n                             create_entrance_exam(request, course_key, entrance_exam_minimum_score_pct)\n+                            perflog['checkpoints'].append({\n+                                'time': time.time(),\n+                                'name': 'create_entrance_exam()'})\n \n                     # If the entrance exam box on the settings screen has been unchecked,\n                     # and the course has an entrance exam attached...\n                     elif not entrance_exam_enabled and course_entrance_exam_present:\n+                        perflog['branches']['remove_entrance_exam'] = True\n                         delete_entrance_exam(request, course_key)\n+                        perflog['checkpoints'].append({\n+                            'time': time.time(),\n+                            'name': 'delete_entrance_exam()'})\n \n                 # Perform the normal update workflow for the CourseDetails model\n+                perflog['end'] = time.time()\n+                perflog['total_duration'] = perflog['end'] - perflog['start']\n+                log.info(\"PERFLOG %s\" % json.dumps(perflog))","path":"cms/djangoapps/contentstore/views/course.py","position":234,"original_position":234,"commit_id":"3a3f39f131ed59942832b0f2bf95d96563935c1d","original_commit_id":"3a3f39f131ed59942832b0f2bf95d96563935c1d","user":{"login":"melvinsoft","id":1225854,"node_id":"MDQ6VXNlcjEyMjU4NTQ=","avatar_url":"https://avatars0.githubusercontent.com/u/1225854?v=4","gravatar_id":"","url":"https://api.github.com/users/melvinsoft","html_url":"https://github.com/melvinsoft","followers_url":"https://api.github.com/users/melvinsoft/followers","following_url":"https://api.github.com/users/melvinsoft/following{/other_user}","gists_url":"https://api.github.com/users/melvinsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/melvinsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/melvinsoft/subscriptions","organizations_url":"https://api.github.com/users/melvinsoft/orgs","repos_url":"https://api.github.com/users/melvinsoft/repos","events_url":"https://api.github.com/users/melvinsoft/events{/privacy}","received_events_url":"https://api.github.com/users/melvinsoft/received_events","type":"User","site_admin":false},"body":"@thraxil Sorry about that! ","created_at":"2018-07-05T12:07:41Z","updated_at":"2018-07-05T12:07:42Z","html_url":"https://github.com/appsembler/edx-platform/pull/243#discussion_r200327970","pull_request_url":"https://api.github.com/repos/appsembler/edx-platform/pulls/243","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/appsembler/edx-platform/pulls/comments/200327970"},"html":{"href":"https://github.com/appsembler/edx-platform/pull/243#discussion_r200327970"},"pull_request":{"href":"https://api.github.com/repos/appsembler/edx-platform/pulls/243"}},"in_reply_to_id":200324311},"pull_request":{"url":"https://api.github.com/repos/appsembler/edx-platform/pulls/243","id":198710471,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk4NzEwNDcx","html_url":"https://github.com/appsembler/edx-platform/pull/243","diff_url":"https://github.com/appsembler/edx-platform/pull/243.diff","patch_url":"https://github.com/appsembler/edx-platform/pull/243.patch","issue_url":"https://api.github.com/repos/appsembler/edx-platform/issues/243","number":243,"state":"open","locked":false,"title":"instrument CMS course settings page","user":{"login":"thraxil","id":7821,"node_id":"MDQ6VXNlcjc4MjE=","avatar_url":"https://avatars0.githubusercontent.com/u/7821?v=4","gravatar_id":"","url":"https://api.github.com/users/thraxil","html_url":"https://github.com/thraxil","followers_url":"https://api.github.com/users/thraxil/followers","following_url":"https://api.github.com/users/thraxil/following{/other_user}","gists_url":"https://api.github.com/users/thraxil/gists{/gist_id}","starred_url":"https://api.github.com/users/thraxil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thraxil/subscriptions","organizations_url":"https://api.github.com/users/thraxil/orgs","repos_url":"https://api.github.com/users/thraxil/repos","events_url":"https://api.github.com/users/thraxil/events{/privacy}","received_events_url":"https://api.github.com/users/thraxil/received_events","type":"User","site_admin":false},"body":"quick and dirty profiling again on a view that we are having performance problems with in Tahoe. Same basic mechanism and approach as #242. See that PR for more details.","created_at":"2018-07-02T15:13:22Z","updated_at":"2018-07-05T12:07:42Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f8a6b6eac81c6075b111463c1b7b0181cb6ddcc8","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/appsembler/edx-platform/pulls/243/commits","review_comments_url":"https://api.github.com/repos/appsembler/edx-platform/pulls/243/comments","review_comment_url":"https://api.github.com/repos/appsembler/edx-platform/pulls/comments{/number}","comments_url":"https://api.github.com/repos/appsembler/edx-platform/issues/243/comments","statuses_url":"https://api.github.com/repos/appsembler/edx-platform/statuses/3a3f39f131ed59942832b0f2bf95d96563935c1d","head":{"label":"appsembler:instrument-cms-settings-view","ref":"instrument-cms-settings-view","sha":"3a3f39f131ed59942832b0f2bf95d96563935c1d","user":{"login":"appsembler","id":1369373,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNjkzNzM=","avatar_url":"https://avatars0.githubusercontent.com/u/1369373?v=4","gravatar_id":"","url":"https://api.github.com/users/appsembler","html_url":"https://github.com/appsembler","followers_url":"https://api.github.com/users/appsembler/followers","following_url":"https://api.github.com/users/appsembler/following{/other_user}","gists_url":"https://api.github.com/users/appsembler/gists{/gist_id}","starred_url":"https://api.github.com/users/appsembler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/appsembler/subscriptions","organizations_url":"https://api.github.com/users/appsembler/orgs","repos_url":"https://api.github.com/users/appsembler/repos","events_url":"https://api.github.com/users/appsembler/events{/privacy}","received_events_url":"https://api.github.com/users/appsembler/received_events","type":"Organization","site_admin":false},"repo":{"id":24888634,"node_id":"MDEwOlJlcG9zaXRvcnkyNDg4ODYzNA==","name":"edx-platform","full_name":"appsembler/edx-platform","owner":{"login":"appsembler","id":1369373,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNjkzNzM=","avatar_url":"https://avatars0.githubusercontent.com/u/1369373?v=4","gravatar_id":"","url":"https://api.github.com/users/appsembler","html_url":"https://github.com/appsembler","followers_url":"https://api.github.com/users/appsembler/followers","following_url":"https://api.github.com/users/appsembler/following{/other_user}","gists_url":"https://api.github.com/users/appsembler/gists{/gist_id}","starred_url":"https://api.github.com/users/appsembler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/appsembler/subscriptions","organizations_url":"https://api.github.com/users/appsembler/orgs","repos_url":"https://api.github.com/users/appsembler/repos","events_url":"https://api.github.com/users/appsembler/events{/privacy}","received_events_url":"https://api.github.com/users/appsembler/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/appsembler/edx-platform","description":"Open edX, the edX platform that powers http://edx.org","fork":true,"url":"https://api.github.com/repos/appsembler/edx-platform","forks_url":"https://api.github.com/repos/appsembler/edx-platform/forks","keys_url":"https://api.github.com/repos/appsembler/edx-platform/keys{/key_id}","collaborators_url":"https://api.github.com/repos/appsembler/edx-platform/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/appsembler/edx-platform/teams","hooks_url":"https://api.github.com/repos/appsembler/edx-platform/hooks","issue_events_url":"https://api.github.com/repos/appsembler/edx-platform/issues/events{/number}","events_url":"https://api.github.com/repos/appsembler/edx-platform/events","assignees_url":"https://api.github.com/repos/appsembler/edx-platform/assignees{/user}","branches_url":"https://api.github.com/repos/appsembler/edx-platform/branches{/branch}","tags_url":"https://api.github.com/repos/appsembler/edx-platform/tags","blobs_url":"https://api.github.com/repos/appsembler/edx-platform/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/appsembler/edx-platform/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/appsembler/edx-platform/git/refs{/sha}","trees_url":"https://api.github.com/repos/appsembler/edx-platform/git/trees{/sha}","statuses_url":"https://api.github.com/repos/appsembler/edx-platform/statuses/{sha}","languages_url":"https://api.github.com/repos/appsembler/edx-platform/languages","stargazers_url":"https://api.github.com/repos/appsembler/edx-platform/stargazers","contributors_url":"https://api.github.com/repos/appsembler/edx-platform/contributors","subscribers_url":"https://api.github.com/repos/appsembler/edx-platform/subscribers","subscription_url":"https://api.github.com/repos/appsembler/edx-platform/subscription","commits_url":"https://api.github.com/repos/appsembler/edx-platform/commits{/sha}","git_commits_url":"https://api.github.com/repos/appsembler/edx-platform/git/commits{/sha}","comments_url":"https://api.github.com/repos/appsembler/edx-platform/comments{/number}","issue_comment_url":"https://api.github.com/repos/appsembler/edx-platform/issues/comments{/number}","contents_url":"https://api.github.com/repos/appsembler/edx-platform/contents/{+path}","compare_url":"https://api.github.com/repos/appsembler/edx-platform/compare/{base}...{head}","merges_url":"https://api.github.com/repos/appsembler/edx-platform/merges","archive_url":"https://api.github.com/repos/appsembler/edx-platform/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/appsembler/edx-platform/downloads","issues_url":"https://api.github.com/repos/appsembler/edx-platform/issues{/number}","pulls_url":"https://api.github.com/repos/appsembler/edx-platform/pulls{/number}","milestones_url":"https://api.github.com/repos/appsembler/edx-platform/milestones{/number}","notifications_url":"https://api.github.com/repos/appsembler/edx-platform/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/appsembler/edx-platform/labels{/name}","releases_url":"https://api.github.com/repos/appsembler/edx-platform/releases{/id}","deployments_url":"https://api.github.com/repos/appsembler/edx-platform/deployments","created_at":"2014-10-07T12:09:06Z","updated_at":"2018-05-01T11:51:33Z","pushed_at":"2018-07-04T11:36:06Z","git_url":"git://github.com/appsembler/edx-platform.git","ssh_url":"git@github.com:appsembler/edx-platform.git","clone_url":"https://github.com/appsembler/edx-platform.git","svn_url":"https://github.com/appsembler/edx-platform","homepage":"http://openedx.org/","size":960887,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":17,"mirror_url":null,"archived":false,"open_issues_count":8,"license":{"key":"agpl-3.0","name":"GNU Affero General Public License v3.0","spdx_id":"AGPL-3.0","url":"https://api.github.com/licenses/agpl-3.0","node_id":"MDc6TGljZW5zZTE="},"forks":17,"open_issues":8,"watchers":1,"default_branch":"master"}},"base":{"label":"appsembler:appsembler/amc/develop","ref":"appsembler/amc/develop","sha":"5f0370c58843c028e8db084a59d59438a0010fd2","user":{"login":"appsembler","id":1369373,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNjkzNzM=","avatar_url":"https://avatars0.githubusercontent.com/u/1369373?v=4","gravatar_id":"","url":"https://api.github.com/users/appsembler","html_url":"https://github.com/appsembler","followers_url":"https://api.github.com/users/appsembler/followers","following_url":"https://api.github.com/users/appsembler/following{/other_user}","gists_url":"https://api.github.com/users/appsembler/gists{/gist_id}","starred_url":"https://api.github.com/users/appsembler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/appsembler/subscriptions","organizations_url":"https://api.github.com/users/appsembler/orgs","repos_url":"https://api.github.com/users/appsembler/repos","events_url":"https://api.github.com/users/appsembler/events{/privacy}","received_events_url":"https://api.github.com/users/appsembler/received_events","type":"Organization","site_admin":false},"repo":{"id":24888634,"node_id":"MDEwOlJlcG9zaXRvcnkyNDg4ODYzNA==","name":"edx-platform","full_name":"appsembler/edx-platform","owner":{"login":"appsembler","id":1369373,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNjkzNzM=","avatar_url":"https://avatars0.githubusercontent.com/u/1369373?v=4","gravatar_id":"","url":"https://api.github.com/users/appsembler","html_url":"https://github.com/appsembler","followers_url":"https://api.github.com/users/appsembler/followers","following_url":"https://api.github.com/users/appsembler/following{/other_user}","gists_url":"https://api.github.com/users/appsembler/gists{/gist_id}","starred_url":"https://api.github.com/users/appsembler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/appsembler/subscriptions","organizations_url":"https://api.github.com/users/appsembler/orgs","repos_url":"https://api.github.com/users/appsembler/repos","events_url":"https://api.github.com/users/appsembler/events{/privacy}","received_events_url":"https://api.github.com/users/appsembler/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/appsembler/edx-platform","description":"Open edX, the edX platform that powers http://edx.org","fork":true,"url":"https://api.github.com/repos/appsembler/edx-platform","forks_url":"https://api.github.com/repos/appsembler/edx-platform/forks","keys_url":"https://api.github.com/repos/appsembler/edx-platform/keys{/key_id}","collaborators_url":"https://api.github.com/repos/appsembler/edx-platform/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/appsembler/edx-platform/teams","hooks_url":"https://api.github.com/repos/appsembler/edx-platform/hooks","issue_events_url":"https://api.github.com/repos/appsembler/edx-platform/issues/events{/number}","events_url":"https://api.github.com/repos/appsembler/edx-platform/events","assignees_url":"https://api.github.com/repos/appsembler/edx-platform/assignees{/user}","branches_url":"https://api.github.com/repos/appsembler/edx-platform/branches{/branch}","tags_url":"https://api.github.com/repos/appsembler/edx-platform/tags","blobs_url":"https://api.github.com/repos/appsembler/edx-platform/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/appsembler/edx-platform/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/appsembler/edx-platform/git/refs{/sha}","trees_url":"https://api.github.com/repos/appsembler/edx-platform/git/trees{/sha}","statuses_url":"https://api.github.com/repos/appsembler/edx-platform/statuses/{sha}","languages_url":"https://api.github.com/repos/appsembler/edx-platform/languages","stargazers_url":"https://api.github.com/repos/appsembler/edx-platform/stargazers","contributors_url":"https://api.github.com/repos/appsembler/edx-platform/contributors","subscribers_url":"https://api.github.com/repos/appsembler/edx-platform/subscribers","subscription_url":"https://api.github.com/repos/appsembler/edx-platform/subscription","commits_url":"https://api.github.com/repos/appsembler/edx-platform/commits{/sha}","git_commits_url":"https://api.github.com/repos/appsembler/edx-platform/git/commits{/sha}","comments_url":"https://api.github.com/repos/appsembler/edx-platform/comments{/number}","issue_comment_url":"https://api.github.com/repos/appsembler/edx-platform/issues/comments{/number}","contents_url":"https://api.github.com/repos/appsembler/edx-platform/contents/{+path}","compare_url":"https://api.github.com/repos/appsembler/edx-platform/compare/{base}...{head}","merges_url":"https://api.github.com/repos/appsembler/edx-platform/merges","archive_url":"https://api.github.com/repos/appsembler/edx-platform/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/appsembler/edx-platform/downloads","issues_url":"https://api.github.com/repos/appsembler/edx-platform/issues{/number}","pulls_url":"https://api.github.com/repos/appsembler/edx-platform/pulls{/number}","milestones_url":"https://api.github.com/repos/appsembler/edx-platform/milestones{/number}","notifications_url":"https://api.github.com/repos/appsembler/edx-platform/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/appsembler/edx-platform/labels{/name}","releases_url":"https://api.github.com/repos/appsembler/edx-platform/releases{/id}","deployments_url":"https://api.github.com/repos/appsembler/edx-platform/deployments","created_at":"2014-10-07T12:09:06Z","updated_at":"2018-05-01T11:51:33Z","pushed_at":"2018-07-04T11:36:06Z","git_url":"git://github.com/appsembler/edx-platform.git","ssh_url":"git@github.com:appsembler/edx-platform.git","clone_url":"https://github.com/appsembler/edx-platform.git","svn_url":"https://github.com/appsembler/edx-platform","homepage":"http://openedx.org/","size":960887,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":17,"mirror_url":null,"archived":false,"open_issues_count":8,"license":{"key":"agpl-3.0","name":"GNU Affero General Public License v3.0","spdx_id":"AGPL-3.0","url":"https://api.github.com/licenses/agpl-3.0","node_id":"MDc6TGljZW5zZTE="},"forks":17,"open_issues":8,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/appsembler/edx-platform/pulls/243"},"html":{"href":"https://github.com/appsembler/edx-platform/pull/243"},"issue":{"href":"https://api.github.com/repos/appsembler/edx-platform/issues/243"},"comments":{"href":"https://api.github.com/repos/appsembler/edx-platform/issues/243/comments"},"review_comments":{"href":"https://api.github.com/repos/appsembler/edx-platform/pulls/243/comments"},"review_comment":{"href":"https://api.github.com/repos/appsembler/edx-platform/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/appsembler/edx-platform/pulls/243/commits"},"statuses":{"href":"https://api.github.com/repos/appsembler/edx-platform/statuses/3a3f39f131ed59942832b0f2bf95d96563935c1d"}},"author_association":"NONE"}}
{"actor":{"display_login":"melvinsoft"}}