{"action":"created","comment":{"url":"https://api.github.com/repos/edx/edx-documentation/pulls/comments/55287647","id":55287647,"diff_hunk":"@@ -0,0 +1,313 @@\n+.. _Test Ecommerce:\n+\n+###############\n+Test Ecommerce\n+###############\n+\n+To test new applications that you develop for Ecommerce, you must create and\n+run the tests common to all new applications for the Open edX platform as well\n+as tests that are specific to Ecommerce.\n+\n+For more information about tests for the Open edX platform, see\n+:ref:`Test Features`.\n+\n+********************\n+Tests for Ecommerce\n+********************\n+\n+When you develop Ecommerce applications, you must run unit tests, Python tests,\n+and Ecommerce acceptance tests.\n+\n+===========\n+Unit Tests\n+===========\n+\n+To run the unit test suite followed by quality checks, run the following\n+command.\n+\n+.. code-block:: bash\n+\n+    $ make validate\n+\n+.. note::\n+  The unit tests run database migrations by default. These migrations can take\n+  up to two minutes to run. To save time by disabling migrations when you run\n+  tests locally, use the following command.\n+\n+  .. code-block:: bash\n+\n+      $ DISABLE_MIGRATIONS=1 make validate\n+\n+To validate code quality independently, run the following command.\n+\n+.. code-block:: bash\n+\n+    $ make quality\n+\n+\n+Python Unit Tests\n+********************\n+\n+When you create Ecommerce tests, use the ``TestCase`` class in\n+``ecommerce/tests/testcases.py`` to ensure every test has ``Site`` and\n+``Partner`` objects configured. This will help you test any code that relies on\n+these models, which are used for multi-tenancy.\n+\n+JavaScript Unit Tests\n+**********************\n+\n+The Ecommerce project uses `Jasmine`_ for JavaScript unit testing. To create\n+these tests, place your tests in the ``ecommerce/static/js/test/specs``\n+directory, and add a ``_spec`` suffix. For example, your test name may be\n+``ecommerce/static/js/test/specs/course_list_view_spec.js``.\n+\n+All JavaScript code must adhere to the `edX JavaScript standards`_. These\n+standards are enforced using `JSHint`_ and `jscs`_.\n+\n+\n+==========================\n+Ecommerce Acceptance Tests\n+==========================\n+\n+In addition to the acceptance tests that you create for an Open edX platform\n+feature, you must create and run specific acceptance tests for the Ecommerce\n+service. To do this, you must configure the LMS, the Ecommerce service, and\n+several environment variables.\n+\n+Definitions\n+********************\n+\n+Definitions of commonly used terms:\n+\n+* LMS: The edX learning management system that contains course content.\n+* Ecommerce: The edX Ecommerce service, a Django application used to manage\n+  edX's product catalog and handle orders for those products.\n+* CAT: The Course Administration Tool, part of Ecommerce. The CAT provides a UI\n+  that you can use to configure and manage products associated with courses\n+  available on the LMS.\n+\n+Configure the LMS\n+********************\n+\n+To configure the LMS, follow these steps.\n+\n+#. Verify that the following settings in ``lms.env.json`` are correct.\n+\n+   .. code-block:: bash\n+\n+      \"ECOMMERCE_API_URL\": \"http://localhost:8002/api/v2/\"\n+      \"ECOMMERCE_PUBLIC_URL_ROOT\": \"http://localhost:8002/\"\n+      \"JWT_ISSUER\": \"http://127.0.0.1:8000/oauth2\" // Must match the Ecommerce JWT_ISSUER setting\n+      \"OAUTH_ENFORCE_SECURE\": false\n+      \"OAUTH_OIDC_ISSUER\": \"http://127.0.0.1:8000/oauth2\"\n+\n+#. Verify that the following settings in ``lms.auth.json`` are correct.\n+\n+   .. code-block:: bash\n+\n+      \"EDX_API_KEY\": \"replace-me\" // Must match the Ecommerce EDX_API_KEY setting\n+      \"ECOMMERCE_API_SIGNING_KEY\": \"insecure-secret-key\" // Must match the Ecommerce JWT_SECRET_KEY setting\n+\n+#. Verify that an LMS account with staff and superuser permissions exists.\n+\n+   By default, most LMS instances include a user account that has staff\n+   permissions. This account has the username ``staff``, the email address\n+   ``staff@example.com``, and the password ``edx``. Run the following commands\n+   to grant the account superuser permissions.\n+\n+   .. code-block:: bash\n+\n+       $ ``./manage.py lms shell --settings=devstack``\n+       >>> from django.contrib.auth.models import User\n+       >>> u = User.objects.get(username='staff')\n+       >>> u.is_superuser = True\n+       >>> u.save()\n+\n+#. In the Django administration panel, verify that an OAuth2 client with the\n+   following attributes exists. If one does not already exist, create a new\n+   one. The client ID and secret must match the values of the Ecommerce\n+   ``SOCIAL_AUTH_EDX_OIDC_KEY`` and ``SOCIAL_AUTH_EDX_OIDC_SECRET`` settings,\n+   respectively.\n+\n+   .. code-block:: bash\n+\n+      URL:  http://localhost:8002/\n+      Redirect URI: http://localhost:8002/complete/edx-oidc/\n+      Client ID: 'replace-me'\n+      Client Secret: 'replace-me'\n+      Client Type: Confidential\n+\n+#. In the Django administration panel, verify that the OAuth2 client referred\n+   to above is designated as a trusted client. If this isn't already the case,\n+   add the client created above as a new trusted client.\n+\n+#. In the Django administration panel, create a new access token for the\n+   superuser account. Set the client to the OAuth2 client referred to above.\n+   Make note of this token; it is required to run the acceptance tests.\n+\n+#. Make sure that the LMS instance that you will use for testing has at least\n+   two courses. By default, most LMS instances include the edX demonstration\n+   course. Use Studio to create a second course.\n+\n+Configure Ecommerce\n+********************\n+\n+#. Use the CAT to finish configuring the two courses in your LMS instance. You\n+   can find the CAT at ``http://localhost:8002/courses/``. Add both of the\n+   courses present on your LMS instance to Ecommerce. Configure one as a \"Free\n+   (Audit)\" course, and the second as a \"Verified\" course.\n+\n+#. So that you can test integration with external payment processors, update\n+   the contents of the ``PAYMENT_PROCESSOR_CONFIG`` dictionary found in the\n+   settings with valid credentials. To override the default values for\n+   development, create a private settings module, ``private.py``, and add set\n+   ``PAYMENT_PROCESSOR_CONFIG`` within.\n+\n+Configure Environment Variables\n+*********************************\n+\n+Configure the following environment variables.\n+\n+.. list-table::\n+ :widths: 30 60 10 30\n+ :header-rows: 1\n+\n+ * - Variable\n+   - Description\n+   - Required\n+   - Default Value\n+ * - ACCESS_TOKEN\n+   - The OAuth2 access token used to authenticate requests.\n+   - Yes\n+   - N/A\n+ * - ENABLE_OAUTH2_TESTS\n+   - Variable that specifies whether to run tests that verify that the LMS can\n+     be used to sign into Ecommerce\n+   - No\n+   - True\n+ * - AUDIT_COURSE_ID\n+   - The ID of a free (audit) course.\n+   - No\n+   - 'edX/DemoX/Demo_Course'\n+ * - VERIFIED_COURSE_ID\n+   - The ID of a verified course.\n+   - No\n+   - 'course-v1:BerkeleyX+ColWri.3.6x+3T2015'\n+ * - PROFESSIONAL_COURSE_ID\n+   - The ID of a professional education course.\n+   - No\n+   - 'course-v1:UBCx+Marketing5501x+2T2015'\n+ * - ECOMMERCE_URL_ROOT\n+   - The URL root for the Ecommerce service.\n+   - Yes\n+   - N/A\n+ * - ECOMMERCE_API_URL\n+   - The URL for the Ecommerce API, used to initialize an API client.\n+   - No\n+   - ECOMMERCE_URL_ROOT + '/api/v2'\n+ * - ECOMMERCE_API_TOKEN\n+   - The token used to authenticate against the Ecommerce API.\n+   - No\n+   - ACCESS_TOKEN\n+ * - MAX_COMPLETION_RETRIES\n+   - The number of times to retry checking for an order's completion.\n+   - No\n+   - 3\n+ * - PAYPAL_EMAIL\n+   - The email address used to sign in to PayPal during payment.","path":"en_us/install_operations/source/ecommerce/test_ecommerce.rst","position":217,"original_position":217,"commit_id":"b4bdf94519391d67861cd2e89bf5c03b8958a278","original_commit_id":"b4bdf94519391d67861cd2e89bf5c03b8958a278","user":{"login":"srpearce","id":3493253,"avatar_url":"https://avatars.githubusercontent.com/u/3493253?v=3","gravatar_id":"","url":"https://api.github.com/users/srpearce","html_url":"https://github.com/srpearce","followers_url":"https://api.github.com/users/srpearce/followers","following_url":"https://api.github.com/users/srpearce/following{/other_user}","gists_url":"https://api.github.com/users/srpearce/gists{/gist_id}","starred_url":"https://api.github.com/users/srpearce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/srpearce/subscriptions","organizations_url":"https://api.github.com/users/srpearce/orgs","repos_url":"https://api.github.com/users/srpearce/repos","events_url":"https://api.github.com/users/srpearce/events{/privacy}","received_events_url":"https://api.github.com/users/srpearce/received_events","type":"User","site_admin":false},"body":"[DOC-2776|https://openedx.atlassian.net/browse/DOC-2776] created.","created_at":"2016-03-07T22:52:39Z","updated_at":"2016-03-07T22:52:39Z","html_url":"https://github.com/edx/edx-documentation/pull/831#discussion_r55287647","pull_request_url":"https://api.github.com/repos/edx/edx-documentation/pulls/831","_links":{"self":{"href":"https://api.github.com/repos/edx/edx-documentation/pulls/comments/55287647"},"html":{"href":"https://github.com/edx/edx-documentation/pull/831#discussion_r55287647"},"pull_request":{"href":"https://api.github.com/repos/edx/edx-documentation/pulls/831"}}},"pull_request":{"url":"https://api.github.com/repos/edx/edx-documentation/pulls/831","id":58075698,"html_url":"https://github.com/edx/edx-documentation/pull/831","diff_url":"https://github.com/edx/edx-documentation/pull/831.diff","patch_url":"https://github.com/edx/edx-documentation/pull/831.patch","issue_url":"https://api.github.com/repos/edx/edx-documentation/issues/831","number":831,"state":"open","locked":false,"title":"WIP: Otto documentation for Dogwood","user":{"login":"srpearce","id":3493253,"avatar_url":"https://avatars.githubusercontent.com/u/3493253?v=3","gravatar_id":"","url":"https://api.github.com/users/srpearce","html_url":"https://github.com/srpearce","followers_url":"https://api.github.com/users/srpearce/followers","following_url":"https://api.github.com/users/srpearce/following{/other_user}","gists_url":"https://api.github.com/users/srpearce/gists{/gist_id}","starred_url":"https://api.github.com/users/srpearce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/srpearce/subscriptions","organizations_url":"https://api.github.com/users/srpearce/orgs","repos_url":"https://api.github.com/users/srpearce/repos","events_url":"https://api.github.com/users/srpearce/events{/privacy}","received_events_url":"https://api.github.com/users/srpearce/received_events","type":"User","site_admin":false},"body":"## [DOC-2590](https://openedx.atlassian.net/browse/DOC-2590)\r\n\r\nThis is the rough draft of the Otto docs that will be included in Dogwood, set to release the week of 8 February.\r\n\r\n### Date Needed \r\nASAP; Dogwood is scheduled to release the week of 8 February.\r\n\r\n### Built HTML Docs\r\nhttp://draft-ecom-dogwood-feb17.readthedocs.org/en/latest/ecommerce/index.html\r\n\r\n### Reviewers\r\n- [ ] Tech review: @rlucioni and/or @clintonb \r\n\r\n### Description\r\n\r\n#### TL; DR:\r\n\r\n1. Please let me know if the structure and organization works.\r\n2. Answer the inline questions and let me know if any other necessary information is missing.\r\n\r\n#### Detailed:\r\n\r\nTo be consistent with the rest of the guide that I'm adding this information to, I've set this section up as instructions for installing Otto. That means that I've focused on procedures, even in topics that were conceptual—the goal is instead of just giving users information about order fulfillment, for example, telling them how they can use the information we're providing.\r\n\r\nAs I organized the topics, I divided them into necessary and optional steps. Necessary steps are ordered; optional are unordered. To see what this looks like in context, view the built HTML version of these files at http://draft-otto-2feb.readthedocs.org/en/latest/otto/index.html.\r\n\r\nIf I understand correctly, the following are the steps a user has to follow to get Otto installed and working:\r\n\r\n1. Install Otto (file: install_otto.rst, formerly getting_started.rst)\r\n2. Configure a partner and site (file: config_partner_site)\r\n3. Create a course mode (file: create_course_mode)\r\n4. Set up the asset pipeline (file: asset_pipeline)\r\n5. Set up order fulfillment (file: fulfill_orders)\r\n6. Test Otto (file: test_otto)\r\n\r\nOnce Otto is set up, you can optionally configure Otto to complete additional tasks:\r\n\r\n* Send notifications (send_notifications)\r\n* Switch processors in case one or more of the usual processors stops working (change_processors)\r\n* Collect data using Segment (track_data)\r\n* Remain hidden behind a feature flag (gate_otto)\r\n* Delete unneeded baskets (maintain_otto)\r\n\r\nAlso, these docs have wildly varying degrees of specificity. In some places, we provide detailed step-by-step instructions; in others, we just say things like \"To add a custom email body, override ``block body``\". I'm not sure what the ideal level of specificity is, so any guidance in that area is welcome. As you're reviewing, please be cognizant of areas where information is missing. I have quite a few inline questions, but I don't know what I don't know.\r\n\r\nWe can also meet on Monday to go over these docs if that will help.\r\n\r\n### Testing\r\n- [ ] Ran ./run_tests.sh without warnings or errors\r\n \r\n\r\n### Post-review\r\n- [ ] Squash commits","created_at":"2016-02-03T00:53:23Z","updated_at":"2016-03-07T22:52:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"504ca0c74ef6570e2ae61f3814a3faa8305f12ca","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/edx/edx-documentation/pulls/831/commits","review_comments_url":"https://api.github.com/repos/edx/edx-documentation/pulls/831/comments","review_comment_url":"https://api.github.com/repos/edx/edx-documentation/pulls/comments{/number}","comments_url":"https://api.github.com/repos/edx/edx-documentation/issues/831/comments","statuses_url":"https://api.github.com/repos/edx/edx-documentation/statuses/b4bdf94519391d67861cd2e89bf5c03b8958a278","head":{"label":"edx:sylvia/DOC-2590","ref":"sylvia/DOC-2590","sha":"b4bdf94519391d67861cd2e89bf5c03b8958a278","user":{"login":"edx","id":3179841,"avatar_url":"https://avatars.githubusercontent.com/u/3179841?v=3","gravatar_id":"","url":"https://api.github.com/users/edx","html_url":"https://github.com/edx","followers_url":"https://api.github.com/users/edx/followers","following_url":"https://api.github.com/users/edx/following{/other_user}","gists_url":"https://api.github.com/users/edx/gists{/gist_id}","starred_url":"https://api.github.com/users/edx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edx/subscriptions","organizations_url":"https://api.github.com/users/edx/orgs","repos_url":"https://api.github.com/users/edx/repos","events_url":"https://api.github.com/users/edx/events{/privacy}","received_events_url":"https://api.github.com/users/edx/received_events","type":"Organization","site_admin":false},"repo":{"id":23839256,"name":"edx-documentation","full_name":"edx/edx-documentation","owner":{"login":"edx","id":3179841,"avatar_url":"https://avatars.githubusercontent.com/u/3179841?v=3","gravatar_id":"","url":"https://api.github.com/users/edx","html_url":"https://github.com/edx","followers_url":"https://api.github.com/users/edx/followers","following_url":"https://api.github.com/users/edx/following{/other_user}","gists_url":"https://api.github.com/users/edx/gists{/gist_id}","starred_url":"https://api.github.com/users/edx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edx/subscriptions","organizations_url":"https://api.github.com/users/edx/orgs","repos_url":"https://api.github.com/users/edx/repos","events_url":"https://api.github.com/users/edx/events{/privacy}","received_events_url":"https://api.github.com/users/edx/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/edx/edx-documentation","description":"For published versions of the edX documentation, visit:","fork":false,"url":"https://api.github.com/repos/edx/edx-documentation","forks_url":"https://api.github.com/repos/edx/edx-documentation/forks","keys_url":"https://api.github.com/repos/edx/edx-documentation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/edx/edx-documentation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/edx/edx-documentation/teams","hooks_url":"https://api.github.com/repos/edx/edx-documentation/hooks","issue_events_url":"https://api.github.com/repos/edx/edx-documentation/issues/events{/number}","events_url":"https://api.github.com/repos/edx/edx-documentation/events","assignees_url":"https://api.github.com/repos/edx/edx-documentation/assignees{/user}","branches_url":"https://api.github.com/repos/edx/edx-documentation/branches{/branch}","tags_url":"https://api.github.com/repos/edx/edx-documentation/tags","blobs_url":"https://api.github.com/repos/edx/edx-documentation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/edx/edx-documentation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/edx/edx-documentation/git/refs{/sha}","trees_url":"https://api.github.com/repos/edx/edx-documentation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/edx/edx-documentation/statuses/{sha}","languages_url":"https://api.github.com/repos/edx/edx-documentation/languages","stargazers_url":"https://api.github.com/repos/edx/edx-documentation/stargazers","contributors_url":"https://api.github.com/repos/edx/edx-documentation/contributors","subscribers_url":"https://api.github.com/repos/edx/edx-documentation/subscribers","subscription_url":"https://api.github.com/repos/edx/edx-documentation/subscription","commits_url":"https://api.github.com/repos/edx/edx-documentation/commits{/sha}","git_commits_url":"https://api.github.com/repos/edx/edx-documentation/git/commits{/sha}","comments_url":"https://api.github.com/repos/edx/edx-documentation/comments{/number}","issue_comment_url":"https://api.github.com/repos/edx/edx-documentation/issues/comments{/number}","contents_url":"https://api.github.com/repos/edx/edx-documentation/contents/{+path}","compare_url":"https://api.github.com/repos/edx/edx-documentation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/edx/edx-documentation/merges","archive_url":"https://api.github.com/repos/edx/edx-documentation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/edx/edx-documentation/downloads","issues_url":"https://api.github.com/repos/edx/edx-documentation/issues{/number}","pulls_url":"https://api.github.com/repos/edx/edx-documentation/pulls{/number}","milestones_url":"https://api.github.com/repos/edx/edx-documentation/milestones{/number}","notifications_url":"https://api.github.com/repos/edx/edx-documentation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/edx/edx-documentation/labels{/name}","releases_url":"https://api.github.com/repos/edx/edx-documentation/releases{/id}","deployments_url":"https://api.github.com/repos/edx/edx-documentation/deployments","created_at":"2014-09-09T15:29:04Z","updated_at":"2016-02-23T06:10:59Z","pushed_at":"2016-03-07T22:38:09Z","git_url":"git://github.com/edx/edx-documentation.git","ssh_url":"git@github.com:edx/edx-documentation.git","clone_url":"https://github.com/edx/edx-documentation.git","svn_url":"https://github.com/edx/edx-documentation","homepage":" http://docs.edx.org","size":95135,"stargazers_count":33,"watchers_count":33,"language":"Makefile","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":120,"mirror_url":null,"open_issues_count":18,"forks":120,"open_issues":18,"watchers":33,"default_branch":"master"}},"base":{"label":"edx:master","ref":"master","sha":"b785cc802c2c8fbb9fe28dcb676a9253fef00ea7","user":{"login":"edx","id":3179841,"avatar_url":"https://avatars.githubusercontent.com/u/3179841?v=3","gravatar_id":"","url":"https://api.github.com/users/edx","html_url":"https://github.com/edx","followers_url":"https://api.github.com/users/edx/followers","following_url":"https://api.github.com/users/edx/following{/other_user}","gists_url":"https://api.github.com/users/edx/gists{/gist_id}","starred_url":"https://api.github.com/users/edx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edx/subscriptions","organizations_url":"https://api.github.com/users/edx/orgs","repos_url":"https://api.github.com/users/edx/repos","events_url":"https://api.github.com/users/edx/events{/privacy}","received_events_url":"https://api.github.com/users/edx/received_events","type":"Organization","site_admin":false},"repo":{"id":23839256,"name":"edx-documentation","full_name":"edx/edx-documentation","owner":{"login":"edx","id":3179841,"avatar_url":"https://avatars.githubusercontent.com/u/3179841?v=3","gravatar_id":"","url":"https://api.github.com/users/edx","html_url":"https://github.com/edx","followers_url":"https://api.github.com/users/edx/followers","following_url":"https://api.github.com/users/edx/following{/other_user}","gists_url":"https://api.github.com/users/edx/gists{/gist_id}","starred_url":"https://api.github.com/users/edx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edx/subscriptions","organizations_url":"https://api.github.com/users/edx/orgs","repos_url":"https://api.github.com/users/edx/repos","events_url":"https://api.github.com/users/edx/events{/privacy}","received_events_url":"https://api.github.com/users/edx/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/edx/edx-documentation","description":"For published versions of the edX documentation, visit:","fork":false,"url":"https://api.github.com/repos/edx/edx-documentation","forks_url":"https://api.github.com/repos/edx/edx-documentation/forks","keys_url":"https://api.github.com/repos/edx/edx-documentation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/edx/edx-documentation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/edx/edx-documentation/teams","hooks_url":"https://api.github.com/repos/edx/edx-documentation/hooks","issue_events_url":"https://api.github.com/repos/edx/edx-documentation/issues/events{/number}","events_url":"https://api.github.com/repos/edx/edx-documentation/events","assignees_url":"https://api.github.com/repos/edx/edx-documentation/assignees{/user}","branches_url":"https://api.github.com/repos/edx/edx-documentation/branches{/branch}","tags_url":"https://api.github.com/repos/edx/edx-documentation/tags","blobs_url":"https://api.github.com/repos/edx/edx-documentation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/edx/edx-documentation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/edx/edx-documentation/git/refs{/sha}","trees_url":"https://api.github.com/repos/edx/edx-documentation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/edx/edx-documentation/statuses/{sha}","languages_url":"https://api.github.com/repos/edx/edx-documentation/languages","stargazers_url":"https://api.github.com/repos/edx/edx-documentation/stargazers","contributors_url":"https://api.github.com/repos/edx/edx-documentation/contributors","subscribers_url":"https://api.github.com/repos/edx/edx-documentation/subscribers","subscription_url":"https://api.github.com/repos/edx/edx-documentation/subscription","commits_url":"https://api.github.com/repos/edx/edx-documentation/commits{/sha}","git_commits_url":"https://api.github.com/repos/edx/edx-documentation/git/commits{/sha}","comments_url":"https://api.github.com/repos/edx/edx-documentation/comments{/number}","issue_comment_url":"https://api.github.com/repos/edx/edx-documentation/issues/comments{/number}","contents_url":"https://api.github.com/repos/edx/edx-documentation/contents/{+path}","compare_url":"https://api.github.com/repos/edx/edx-documentation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/edx/edx-documentation/merges","archive_url":"https://api.github.com/repos/edx/edx-documentation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/edx/edx-documentation/downloads","issues_url":"https://api.github.com/repos/edx/edx-documentation/issues{/number}","pulls_url":"https://api.github.com/repos/edx/edx-documentation/pulls{/number}","milestones_url":"https://api.github.com/repos/edx/edx-documentation/milestones{/number}","notifications_url":"https://api.github.com/repos/edx/edx-documentation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/edx/edx-documentation/labels{/name}","releases_url":"https://api.github.com/repos/edx/edx-documentation/releases{/id}","deployments_url":"https://api.github.com/repos/edx/edx-documentation/deployments","created_at":"2014-09-09T15:29:04Z","updated_at":"2016-02-23T06:10:59Z","pushed_at":"2016-03-07T22:38:09Z","git_url":"git://github.com/edx/edx-documentation.git","ssh_url":"git@github.com:edx/edx-documentation.git","clone_url":"https://github.com/edx/edx-documentation.git","svn_url":"https://github.com/edx/edx-documentation","homepage":" http://docs.edx.org","size":95135,"stargazers_count":33,"watchers_count":33,"language":"Makefile","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":120,"mirror_url":null,"open_issues_count":18,"forks":120,"open_issues":18,"watchers":33,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/edx/edx-documentation/pulls/831"},"html":{"href":"https://github.com/edx/edx-documentation/pull/831"},"issue":{"href":"https://api.github.com/repos/edx/edx-documentation/issues/831"},"comments":{"href":"https://api.github.com/repos/edx/edx-documentation/issues/831/comments"},"review_comments":{"href":"https://api.github.com/repos/edx/edx-documentation/pulls/831/comments"},"review_comment":{"href":"https://api.github.com/repos/edx/edx-documentation/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/edx/edx-documentation/pulls/831/commits"},"statuses":{"href":"https://api.github.com/repos/edx/edx-documentation/statuses/b4bdf94519391d67861cd2e89bf5c03b8958a278"}}}}