{"action":"created","comment":{"url":"https://api.github.com/repos/oppia/oppia/pulls/comments/45542958","id":45542958,"diff_hunk":"@@ -139,163 +146,75 @@ def download_and_untar_files(\n             os.path.join(target_parent_dir, tar_root_name),\n             os.path.join(target_parent_dir, target_root_name))\n \n+def get_file_contents(filepath, mode='r'):\n+    \"\"\"Gets the contents of a file, given a relative filepath from oppia/.\"\"\"\n+    with open(filepath, mode) as f:\n+        return f.read().decode('utf-8')\n \n \n-# Download all the standalone files.\n-YUICOMPRESSOR_REV = '2.4.8'\n-YUICOMPRESSOR_FILENAME = 'yuicompressor-%s' % YUICOMPRESSOR_REV\n-YUICOMPRESSOR_URL = (\n-    'https://github.com/yui/yuicompressor/releases/download/v%s'\n-    % YUICOMPRESSOR_REV)\n-YUICOMPRESSOR_DST = os.path.join(TOOLS_DIR, YUICOMPRESSOR_FILENAME)\n-YUICOMPRESSOR_FILES = ['%s.jar' % YUICOMPRESSOR_FILENAME]\n-\n-UI_BOOTSTRAP_REV = '0.13.4'\n-UI_BOOTSTRAP_URL = (\n-    'https://raw.githubusercontent.com/angular-ui/bootstrap/gh-pages')\n-UI_BOOTSTRAP_DST = os.path.join(\n-    THIRD_PARTY_STATIC_DIR, 'ui-bootstrap-%s' % UI_BOOTSTRAP_REV)\n-UI_BOOTSTRAP_FILES = [\n-    'ui-bootstrap-tpls-%s.%s' % (UI_BOOTSTRAP_REV, suffix)\n-    for suffix in ['js', 'min.js']]\n-\n-# Note that Angular 1.3 requires a jQuery version that is >= 2.1.1.\n-JQUERY_REV = '2.1.1'\n-JQUERY_URL = 'https://ajax.googleapis.com/ajax/libs/jquery/%s' % JQUERY_REV\n-JQUERY_DST = os.path.join(THIRD_PARTY_STATIC_DIR, 'jquery-%s' % JQUERY_REV)\n-JQUERY_FILES = ['jquery.%s' % suffix for suffix in ['js', 'min.js', 'min.map']]\n-\n-JQUERYUI_REV = '1.10.3'\n-JQUERYUI_URL = (\n-    'https://ajax.googleapis.com/ajax/libs/jqueryui/%s' % JQUERYUI_REV)\n-JQUERYUI_DST = os.path.join(\n-    THIRD_PARTY_STATIC_DIR, 'jqueryui-%s' % JQUERYUI_REV)\n-JQUERYUI_FILES = ['jquery-ui.min.js']\n-\n-ANGULAR_REV = '1.4.7'\n-ANGULAR_URL = (\n-    'https://ajax.googleapis.com/ajax/libs/angularjs/%s' % ANGULAR_REV)\n-ANGULAR_TEST_URL = 'https://code.angularjs.org/%s' % ANGULAR_REV\n-ANGULAR_DST = os.path.join(\n-    THIRD_PARTY_STATIC_DIR, 'angularjs-%s' % ANGULAR_REV)\n-ANGULAR_FILES = [\n-    'angular%s.%s' % (part1, part2) for (part1, part2) in itertools.product(\n-        ['', '-animate', '-resource', '-route', '-sanitize', '-aria'],\n-        ['js', 'min.js', 'min.js.map'])]\n-ANGULAR_TEST_FILES = ['angular-mocks.js', 'angular-scenario.js']\n-\n-D3_REV = '3.4.11'\n-D3_URL = 'https://raw.github.com/mbostock/d3/v%s' % D3_REV\n-D3_DST = os.path.join(THIRD_PARTY_STATIC_DIR, 'd3js-%s' % D3_REV)\n-D3_FILES = ['d3.min.js']\n-\n-NG_INFINITE_SCROLL_REV = '1.0.0'\n-NG_INFINITE_SCROLL_URL = (\n-    'https://raw.github.com/BinaryMuse/ngInfiniteScroll/%s/build/'\n-    % NG_INFINITE_SCROLL_REV)\n-NG_INFINITE_SCROLL_DST = os.path.join(\n-    THIRD_PARTY_STATIC_DIR, 'nginfinitescroll-%s' % NG_INFINITE_SCROLL_REV)\n-NG_INFINITE_SCROLL_FILES = ['ng-infinite-scroll.min.js']\n-\n-download_files(YUICOMPRESSOR_URL, YUICOMPRESSOR_DST, YUICOMPRESSOR_FILES)\n-download_files(UI_BOOTSTRAP_URL, UI_BOOTSTRAP_DST, UI_BOOTSTRAP_FILES)\n-download_files(JQUERY_URL, JQUERY_DST, JQUERY_FILES)\n-download_files(JQUERYUI_URL, JQUERYUI_DST, JQUERYUI_FILES)\n-download_files(ANGULAR_URL, ANGULAR_DST, ANGULAR_FILES)\n-download_files(ANGULAR_TEST_URL, ANGULAR_DST, ANGULAR_TEST_FILES)\n-download_files(D3_URL, D3_DST, D3_FILES)\n-download_files(\n-    NG_INFINITE_SCROLL_URL, NG_INFINITE_SCROLL_DST, NG_INFINITE_SCROLL_FILES)\n-\n-# Download all the frontend library zip files.\n-BOWER_MATERIAL_REV = '0.6.0-rc1'\n-BOWER_MATERIAL_ROOT_NAME = 'bower-material-%s' % BOWER_MATERIAL_REV\n-BOWER_MATERIAL_ZIP_URL = (\n-    'https://github.com/angular/bower-material/archive/v%s.zip'\n-    % BOWER_MATERIAL_REV)\n-BOWER_MATERIAL_ZIP_ROOT_NAME = BOWER_MATERIAL_ROOT_NAME\n-BOWER_MATERIAL_TARGET_ROOT_NAME = BOWER_MATERIAL_ROOT_NAME\n-\n-HAMMER_JS_REV = '2.0.4'\n-HAMMER_JS_ROOT_NAME = 'hammer.js-%s' % HAMMER_JS_REV\n-HAMMER_JS_ZIP_URL = (\n-    'https://github.com/hammerjs/hammer.js/archive/%s.zip' % HAMMER_JS_REV)\n-HAMMER_JS_ZIP_ROOT_NAME = HAMMER_JS_ROOT_NAME\n-HAMMER_JS_TARGET_ROOT_NAME = 'hammer-js-%s' % HAMMER_JS_REV\n-\n-SELECT2_REV = '3.5.1'\n-SELECT2_ZIP_URL = (\n-    'https://github.com/ivaynberg/select2/archive/%s.zip' % SELECT2_REV)\n-SELECT2_ZIP_ROOT_NAME = 'select2-%s' % SELECT2_REV\n-SELECT2_TARGET_ROOT_NAME = 'select2-%s' % SELECT2_REV\n-\n-FONTAWESOME_REV = '4.4.0'\n-FONTAWESOME_ZIP_URL = (\n-    'https://github.com/FortAwesome/Font-Awesome/archive/v%s.zip' %\n-    FONTAWESOME_REV)\n-FONTAWESOME_ZIP_ROOT_NAME = 'Font-Awesome-%s' % FONTAWESOME_REV\n-FONTAWESOME_TARGET_ROOT_NAME = 'font-awesome-%s' % FONTAWESOME_REV\n-\n-TEXTANGULAR_REV = '1.3.7'\n-TEXTANGULAR_ZIP_URL = (\n-    'https://github.com/fraywing/textAngular/archive/v%s.zip' %\n-    TEXTANGULAR_REV)\n-TEXTANGULAR_ZIP_ROOT_NAME = 'textAngular-%s' % TEXTANGULAR_REV\n-TEXTANGULAR_TARGET_ROOT_NAME = 'textAngular-%s' % TEXTANGULAR_REV\n-\n-JQUERYUI_FILENAME = 'jquery-ui-themes-%s' % JQUERYUI_REV\n-JQUERYUI_THEMES_SRC = (\n-    'http://jqueryui.com/resources/download/%s.zip' % JQUERYUI_FILENAME)\n-JQUERYUI_THEMES_ZIP_ROOT_NAME = JQUERYUI_FILENAME\n-JQUERYUI_THEMES_TARGET_ROOT_NAME = JQUERYUI_FILENAME\n-\n-CODEMIRROR_REV = '3.19.0'\n-CODEMIRROR_ZIP_URL = 'https://github.com/marijnh/CodeMirror/archive/3.19.0.zip'\n-CODEMIRROR_ZIP_ROOT_NAME = 'CodeMirror-%s' % CODEMIRROR_REV\n-CODEMIRROR_TARGET_ROOT_NAME = 'code-mirror-%s' % CODEMIRROR_REV\n-\n-UI_CODEMIRROR_REV = '0.1.2'\n-UI_CODEMIRROR_ZIP_URL = (\n-    'https://github.com/angular-ui/ui-codemirror/archive/src%s.zip'\n-    % UI_CODEMIRROR_REV)\n-UI_CODEMIRROR_ZIP_ROOT_NAME = 'ui-codemirror-src%s' % UI_CODEMIRROR_REV\n-UI_CODEMIRROR_TARGET_ROOT_NAME = 'ui-codemirror-%s' % UI_CODEMIRROR_REV\n-\n-UI_MAP_REV = '0.5.0'\n-UI_MAP_ROOT_NAME = 'ui-map-%s' % UI_MAP_REV\n-UI_MAP_ZIP_URL = (\n-    'https://github.com/angular-ui/ui-map/archive/v%s.zip' % UI_MAP_REV)\n-UI_MAP_ZIP_ROOT_NAME = UI_MAP_ROOT_NAME\n-UI_MAP_TARGET_ROOT_NAME = UI_MAP_ROOT_NAME\n-\n-# ui-utils contains ui-event, which is needed for ui-map.\n-UI_UTILS_REV = '0.1.1'\n-UI_UTILS_ROOT_NAME = 'ui-utils-%s' % UI_UTILS_REV\n-UI_UTILS_ZIP_URL = (\n-    'https://github.com/angular-ui/ui-utils/archive/v%s.zip' % UI_UTILS_REV)\n-UI_UTILS_ZIP_ROOT_NAME = UI_UTILS_ROOT_NAME\n-UI_UTILS_TARGET_ROOT_NAME = UI_UTILS_ROOT_NAME\n-\n-UI_SORTABLE_REV = '0.12.6'\n-UI_SORTABLE_ZIP_URL = (\n-    'https://github.com/angular-ui/ui-sortable/archive/src%s.zip'\n-    % UI_SORTABLE_REV)\n-UI_SORTABLE_ZIP_ROOT_NAME = 'ui-sortable-src%s' % UI_SORTABLE_REV\n-UI_SORTABLE_TARGET_ROOT_NAME = 'ui-sortable-%s' % UI_SORTABLE_REV\n-\n-NG_JOYRIDE_REV = '0.1.11'\n-NG_JOYRIDE_ZIP_URL = (\n-    'https://github.com/abhikmitra/ng-joyride/archive/%s.zip' % NG_JOYRIDE_REV)\n-NG_JOYRIDE_ZIP_ROOT_NAME = 'ng-joyride-%s' % NG_JOYRIDE_REV\n-NG_JOYRIDE_TARGET_ROOT_NAME = 'ng-joyride-%s' % NG_JOYRIDE_REV\n-\n-BOOTSTRAP_REV = '3.3.4'\n-BOOTSTRAP_ROOT_NAME = 'bootstrap-%s-dist' % BOOTSTRAP_REV\n-BOOTSTRAP_ZIP_URL = (\n-    'https://github.com/twbs/bootstrap/releases/download/v3.3.4/%s.zip'\n-    % BOOTSTRAP_ROOT_NAME)\n-BOOTSTRAP_ZIP_ROOT_NAME = BOOTSTRAP_ROOT_NAME\n-BOOTSTRAP_TARGET_ROOT_NAME = 'bootstrap-%s' % BOOTSTRAP_REV\n+def return_json(source_url):\n+    \"\"\"Return json object when provided url\n+    Args:\n+        source_url: the URL of the json file.\n+    Return:\n+        a parsed json objects\n+    \"\"\"\n+    response = get_file_contents(source_url)\n+    return json.loads(response)\n+\n+def download_third_party(source_url):\n+    \"\"\"This download all files to the required folders\n+    Args:\n+      source_url: the URL fof the json file.\n+    \"\"\"\n+    manifest_data = return_json(source_url)\n+    dependencies = manifest_data['dependencies']\n+    for data in dependencies:\n+        dependency = dependencies[data]\n+        for dependency_id in dependency:\n+            dependency_contents = dependency[dependency_id]\n+            if 'srcUrl' in dependency_contents:\n+                DEPENDENCY_REV = dependency_contents['version']\n+                DEPENDENCY_URL = dependency_contents['srcUrl']\n+                DEPENDENCY_FILES = dependency_contents['files']\n+                FOLDER_NAME = (\n+                    dependency_contents['targetDirPrefix'] + DEPENDENCY_REV)\n+                DEPENDENCY_DST = os.path.join(\n+                        DOWNLOAD_DICT[data], FOLDER_NAME)","path":"scripts/install_third_party.py","position":221,"original_position":221,"commit_id":"7e5e85422fa0522134beca1b2343654b2375f129","original_commit_id":"7e5e85422fa0522134beca1b2343654b2375f129","user":{"login":"seanlip","id":10575562,"avatar_url":"https://avatars.githubusercontent.com/u/10575562?v=3","gravatar_id":"","url":"https://api.github.com/users/seanlip","html_url":"https://github.com/seanlip","followers_url":"https://api.github.com/users/seanlip/followers","following_url":"https://api.github.com/users/seanlip/following{/other_user}","gists_url":"https://api.github.com/users/seanlip/gists{/gist_id}","starred_url":"https://api.github.com/users/seanlip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seanlip/subscriptions","organizations_url":"https://api.github.com/users/seanlip/orgs","repos_url":"https://api.github.com/users/seanlip/repos","events_url":"https://api.github.com/users/seanlip/events{/privacy}","received_events_url":"https://api.github.com/users/seanlip/received_events","type":"User","site_admin":false},"body":"deindent by 4","created_at":"2015-11-21T07:39:58Z","updated_at":"2015-11-21T07:39:58Z","html_url":"https://github.com/oppia/oppia/pull/1127#discussion_r45542958","pull_request_url":"https://api.github.com/repos/oppia/oppia/pulls/1127","_links":{"self":{"href":"https://api.github.com/repos/oppia/oppia/pulls/comments/45542958"},"html":{"href":"https://github.com/oppia/oppia/pull/1127#discussion_r45542958"},"pull_request":{"href":"https://api.github.com/repos/oppia/oppia/pulls/1127"}}},"pull_request":{"url":"https://api.github.com/repos/oppia/oppia/pulls/1127","id":50552538,"html_url":"https://github.com/oppia/oppia/pull/1127","diff_url":"https://github.com/oppia/oppia/pull/1127.diff","patch_url":"https://github.com/oppia/oppia/pull/1127.patch","issue_url":"https://api.github.com/repos/oppia/oppia/issues/1127","number":1127,"state":"open","locked":false,"title":"Initial implementation of css optimizarion","user":{"login":"MAKOSCAFEE","id":6409210,"avatar_url":"https://avatars.githubusercontent.com/u/6409210?v=3","gravatar_id":"","url":"https://api.github.com/users/MAKOSCAFEE","html_url":"https://github.com/MAKOSCAFEE","followers_url":"https://api.github.com/users/MAKOSCAFEE/followers","following_url":"https://api.github.com/users/MAKOSCAFEE/following{/other_user}","gists_url":"https://api.github.com/users/MAKOSCAFEE/gists{/gist_id}","starred_url":"https://api.github.com/users/MAKOSCAFEE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MAKOSCAFEE/subscriptions","organizations_url":"https://api.github.com/users/MAKOSCAFEE/orgs","repos_url":"https://api.github.com/users/MAKOSCAFEE/repos","events_url":"https://api.github.com/users/MAKOSCAFEE/events{/privacy}","received_events_url":"https://api.github.com/users/MAKOSCAFEE/received_events","type":"User","site_admin":false},"body":"+ This commit minify all third party css\r\n+ copy all fonts into one folder\r\n+ created manifest.json which will be used in the future by install third_party\r\n+ started using gulp\r\n\r\n@seanlip I have one problem with creating URL for fonts as now the request for ```localhost:8181/font/*``` return 404. And thinking should also environment(whether``` dev``` or ```prod```) should be passed as arg so as to control if ```css``` should be minified in ```dev```.\r\n","created_at":"2015-11-12T19:02:13Z","updated_at":"2015-11-21T07:39:58Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6fa9852c484cda5446abeb74fd781cf52e75256f","assignee":{"login":"seanlip","id":10575562,"avatar_url":"https://avatars.githubusercontent.com/u/10575562?v=3","gravatar_id":"","url":"https://api.github.com/users/seanlip","html_url":"https://github.com/seanlip","followers_url":"https://api.github.com/users/seanlip/followers","following_url":"https://api.github.com/users/seanlip/following{/other_user}","gists_url":"https://api.github.com/users/seanlip/gists{/gist_id}","starred_url":"https://api.github.com/users/seanlip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seanlip/subscriptions","organizations_url":"https://api.github.com/users/seanlip/orgs","repos_url":"https://api.github.com/users/seanlip/repos","events_url":"https://api.github.com/users/seanlip/events{/privacy}","received_events_url":"https://api.github.com/users/seanlip/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/oppia/oppia/pulls/1127/commits","review_comments_url":"https://api.github.com/repos/oppia/oppia/pulls/1127/comments","review_comment_url":"https://api.github.com/repos/oppia/oppia/pulls/comments{/number}","comments_url":"https://api.github.com/repos/oppia/oppia/issues/1127/comments","statuses_url":"https://api.github.com/repos/oppia/oppia/statuses/7e5e85422fa0522134beca1b2343654b2375f129","head":{"label":"MAKOSCAFEE:oppia-css-optimization","ref":"oppia-css-optimization","sha":"7e5e85422fa0522134beca1b2343654b2375f129","user":{"login":"MAKOSCAFEE","id":6409210,"avatar_url":"https://avatars.githubusercontent.com/u/6409210?v=3","gravatar_id":"","url":"https://api.github.com/users/MAKOSCAFEE","html_url":"https://github.com/MAKOSCAFEE","followers_url":"https://api.github.com/users/MAKOSCAFEE/followers","following_url":"https://api.github.com/users/MAKOSCAFEE/following{/other_user}","gists_url":"https://api.github.com/users/MAKOSCAFEE/gists{/gist_id}","starred_url":"https://api.github.com/users/MAKOSCAFEE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MAKOSCAFEE/subscriptions","organizations_url":"https://api.github.com/users/MAKOSCAFEE/orgs","repos_url":"https://api.github.com/users/MAKOSCAFEE/repos","events_url":"https://api.github.com/users/MAKOSCAFEE/events{/privacy}","received_events_url":"https://api.github.com/users/MAKOSCAFEE/received_events","type":"User","site_admin":false},"repo":{"id":40843161,"name":"oppia","full_name":"MAKOSCAFEE/oppia","owner":{"login":"MAKOSCAFEE","id":6409210,"avatar_url":"https://avatars.githubusercontent.com/u/6409210?v=3","gravatar_id":"","url":"https://api.github.com/users/MAKOSCAFEE","html_url":"https://github.com/MAKOSCAFEE","followers_url":"https://api.github.com/users/MAKOSCAFEE/followers","following_url":"https://api.github.com/users/MAKOSCAFEE/following{/other_user}","gists_url":"https://api.github.com/users/MAKOSCAFEE/gists{/gist_id}","starred_url":"https://api.github.com/users/MAKOSCAFEE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MAKOSCAFEE/subscriptions","organizations_url":"https://api.github.com/users/MAKOSCAFEE/orgs","repos_url":"https://api.github.com/users/MAKOSCAFEE/repos","events_url":"https://api.github.com/users/MAKOSCAFEE/events{/privacy}","received_events_url":"https://api.github.com/users/MAKOSCAFEE/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/MAKOSCAFEE/oppia","description":"Tool for creating interactive tutors.","fork":true,"url":"https://api.github.com/repos/MAKOSCAFEE/oppia","forks_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/forks","keys_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/teams","hooks_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/hooks","issue_events_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/issues/events{/number}","events_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/events","assignees_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/assignees{/user}","branches_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/branches{/branch}","tags_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/tags","blobs_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/git/refs{/sha}","trees_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/statuses/{sha}","languages_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/languages","stargazers_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/stargazers","contributors_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/contributors","subscribers_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/subscribers","subscription_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/subscription","commits_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/commits{/sha}","git_commits_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/git/commits{/sha}","comments_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/comments{/number}","issue_comment_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/issues/comments{/number}","contents_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/contents/{+path}","compare_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/merges","archive_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/downloads","issues_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/issues{/number}","pulls_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/pulls{/number}","milestones_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/milestones{/number}","notifications_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/labels{/name}","releases_url":"https://api.github.com/repos/MAKOSCAFEE/oppia/releases{/id}","created_at":"2015-08-16T21:49:10Z","updated_at":"2015-08-16T21:49:11Z","pushed_at":"2015-11-21T04:35:01Z","git_url":"git://github.com/MAKOSCAFEE/oppia.git","ssh_url":"git@github.com:MAKOSCAFEE/oppia.git","clone_url":"https://github.com/MAKOSCAFEE/oppia.git","svn_url":"https://github.com/MAKOSCAFEE/oppia","homepage":"https://www.oppia.org","size":42616,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"oppia:develop","ref":"develop","sha":"cb18af1733ad89c1daf5a9824afc55ac57b007ca","user":{"login":"oppia","id":11620230,"avatar_url":"https://avatars.githubusercontent.com/u/11620230?v=3","gravatar_id":"","url":"https://api.github.com/users/oppia","html_url":"https://github.com/oppia","followers_url":"https://api.github.com/users/oppia/followers","following_url":"https://api.github.com/users/oppia/following{/other_user}","gists_url":"https://api.github.com/users/oppia/gists{/gist_id}","starred_url":"https://api.github.com/users/oppia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oppia/subscriptions","organizations_url":"https://api.github.com/users/oppia/orgs","repos_url":"https://api.github.com/users/oppia/repos","events_url":"https://api.github.com/users/oppia/events{/privacy}","received_events_url":"https://api.github.com/users/oppia/received_events","type":"Organization","site_admin":false},"repo":{"id":40687563,"name":"oppia","full_name":"oppia/oppia","owner":{"login":"oppia","id":11620230,"avatar_url":"https://avatars.githubusercontent.com/u/11620230?v=3","gravatar_id":"","url":"https://api.github.com/users/oppia","html_url":"https://github.com/oppia","followers_url":"https://api.github.com/users/oppia/followers","following_url":"https://api.github.com/users/oppia/following{/other_user}","gists_url":"https://api.github.com/users/oppia/gists{/gist_id}","starred_url":"https://api.github.com/users/oppia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oppia/subscriptions","organizations_url":"https://api.github.com/users/oppia/orgs","repos_url":"https://api.github.com/users/oppia/repos","events_url":"https://api.github.com/users/oppia/events{/privacy}","received_events_url":"https://api.github.com/users/oppia/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/oppia/oppia","description":"Tool for collaboratively building interactive tutors.","fork":false,"url":"https://api.github.com/repos/oppia/oppia","forks_url":"https://api.github.com/repos/oppia/oppia/forks","keys_url":"https://api.github.com/repos/oppia/oppia/keys{/key_id}","collaborators_url":"https://api.github.com/repos/oppia/oppia/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/oppia/oppia/teams","hooks_url":"https://api.github.com/repos/oppia/oppia/hooks","issue_events_url":"https://api.github.com/repos/oppia/oppia/issues/events{/number}","events_url":"https://api.github.com/repos/oppia/oppia/events","assignees_url":"https://api.github.com/repos/oppia/oppia/assignees{/user}","branches_url":"https://api.github.com/repos/oppia/oppia/branches{/branch}","tags_url":"https://api.github.com/repos/oppia/oppia/tags","blobs_url":"https://api.github.com/repos/oppia/oppia/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/oppia/oppia/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/oppia/oppia/git/refs{/sha}","trees_url":"https://api.github.com/repos/oppia/oppia/git/trees{/sha}","statuses_url":"https://api.github.com/repos/oppia/oppia/statuses/{sha}","languages_url":"https://api.github.com/repos/oppia/oppia/languages","stargazers_url":"https://api.github.com/repos/oppia/oppia/stargazers","contributors_url":"https://api.github.com/repos/oppia/oppia/contributors","subscribers_url":"https://api.github.com/repos/oppia/oppia/subscribers","subscription_url":"https://api.github.com/repos/oppia/oppia/subscription","commits_url":"https://api.github.com/repos/oppia/oppia/commits{/sha}","git_commits_url":"https://api.github.com/repos/oppia/oppia/git/commits{/sha}","comments_url":"https://api.github.com/repos/oppia/oppia/comments{/number}","issue_comment_url":"https://api.github.com/repos/oppia/oppia/issues/comments{/number}","contents_url":"https://api.github.com/repos/oppia/oppia/contents/{+path}","compare_url":"https://api.github.com/repos/oppia/oppia/compare/{base}...{head}","merges_url":"https://api.github.com/repos/oppia/oppia/merges","archive_url":"https://api.github.com/repos/oppia/oppia/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/oppia/oppia/downloads","issues_url":"https://api.github.com/repos/oppia/oppia/issues{/number}","pulls_url":"https://api.github.com/repos/oppia/oppia/pulls{/number}","milestones_url":"https://api.github.com/repos/oppia/oppia/milestones{/number}","notifications_url":"https://api.github.com/repos/oppia/oppia/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/oppia/oppia/labels{/name}","releases_url":"https://api.github.com/repos/oppia/oppia/releases{/id}","created_at":"2015-08-14T00:16:14Z","updated_at":"2015-11-20T13:29:21Z","pushed_at":"2015-11-21T04:35:02Z","git_url":"git://github.com/oppia/oppia.git","ssh_url":"git@github.com:oppia/oppia.git","clone_url":"https://github.com/oppia/oppia.git","svn_url":"https://github.com/oppia/oppia","homepage":"https://www.oppia.org","size":43660,"stargazers_count":57,"watchers_count":57,"language":"Python","has_issues":true,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":72,"mirror_url":null,"open_issues_count":221,"forks":72,"open_issues":221,"watchers":57,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/oppia/oppia/pulls/1127"},"html":{"href":"https://github.com/oppia/oppia/pull/1127"},"issue":{"href":"https://api.github.com/repos/oppia/oppia/issues/1127"},"comments":{"href":"https://api.github.com/repos/oppia/oppia/issues/1127/comments"},"review_comments":{"href":"https://api.github.com/repos/oppia/oppia/pulls/1127/comments"},"review_comment":{"href":"https://api.github.com/repos/oppia/oppia/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/oppia/oppia/pulls/1127/commits"},"statuses":{"href":"https://api.github.com/repos/oppia/oppia/statuses/7e5e85422fa0522134beca1b2343654b2375f129"}}}}