{"action":"created","comment":{"url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/pulls/comments/46360957","id":46360957,"diff_hunk":"@@ -0,0 +1,501 @@\n+###############################\n+LSST Stack Development Workflow\n+###############################\n+\n+This page describes a complete workflow for developing the LSST Stack.\n+\n+1. :ref:`lsstsw-workflow-obtaining-lsstsw-stack`\n+2. :ref:`lsstsw-workflow-working-ticket`\n+3. :ref:`lsstsw-workflow-jenkins`\n+4. :ref:`lsstsw-workflow-pr`\n+5. :ref:`lsstsw-workflow-rebuild`\n+6. :ref:`lsstsw-workflow-ext`\n+\n+.. TODO once more workflows are published, link to them here as well\n+\n+.. _lsstsw-workflow-prerequisites:\n+\n+Prerequisites\n+=============\n+\n+Before developing the Stack, ensure you have all software dependencies installed on your system.\n+These dependencies are listed in the :doc:`guide to installing the stack from source </install>`.\n+\n+Ensure that your git author information reflects your work email address.\n+\n+.. prompt:: bash\n+\n+   git config --global user.name\n+   git config --global user.email\n+\n+Set them if necessary:\n+\n+.. prompt:: bash\n+\n+   git config --global user.name  {{First Last}}\n+   git config --global user.email {{your official LSST email}}\n+\n+.. TODO include git lfs installation instructions? perhaps link this info to an in-depth git guide\n+\n+.. _lsstsw-workflow-obtaining-lsstsw-stack:\n+\n+Obtaining a Development Stack with lsstsw\n+=========================================\n+\n+Code for the LSST Stack is distributed across many git repositories (see `github.com/lsst <https://github.com/lsst>`_).\n+`lsstsw <https://github.com/lsst/lsstsw>`_ is a tool that helps you manage the codebase by automating the process of cloning all of these repositories and building that development Stack for testing.\n+\n+.. _lsstsw-workflow-obtaining-lsstw-stack-get:\n+\n+Step 1. Get lsstsw\n+------------------\n+\n+Begin by choosing a work directory, then clone ``lsstsw`` into it:\n+\n+.. prompt:: bash\n+\n+   git clone git@github.com:lsst/lsstsw.git\n+   cd lsstsw\n+\n+You may want to edit the file ``etc/repos.yaml`` to use SSH authentication so that pushing changes is easier.\n+This can be done with ``sed`` in the ``lsstw/`` directory:\n+\n+.. prompt:: bash\n+\n+   sed -i '' 's/https:\\/\\/github.com\\/lsst/git@github.com:lsst/g' etc/repos.yaml\n+\n+.. NOTE that this will break a future git-lfs based afwdata that relies on HTTPS transport.\n+   Solution could be to write a Python script to intelligently make replacements?\n+   Alternatively just encourage everyone to use HTTPS cred helpers. This is probably best.\n+\n+If you have a `git credential helper setup`_, this isn't necessary.\n+\n+.. _git credential helper setup: https://help.github.com/articles/caching-your-github-password-in-git/\n+\n+.. _lsstsw-workflow-obtaining-lsstw-stack-deploy:\n+\n+Step 2. Deploy lsstsw\n+---------------------\n+\n+Prepare the development environment by running two commands in the ``lsstw`` directory:\n+\n+.. prompt:: bash\n+\n+   ./bin/deploy\n+   . bin/setup.sh\n+\n+The ``deploy`` script automates several things for you:\n+\n+1. installs a ``miniconda`` Python environment specific to this lsstsw workspace,\n+2. installs EUPS in ``eups/current/``,\n+3. clones `lsst-build`_, which will run the build process for us,\n+4. clones `versiondb`_, a robot-made git repository of package dependency information, and\n+5. creates an empty Stack *installation* directory, ``stack/``.\n+\n+The ``setup.sh`` step enables `EUPS`_, the package manager used by LSST.\n+**Whenever you open a new terminal session, you need to run '. bin/setup.sh' to activate your lsstsw environment.**\n+\n+.. _lsst-build: https://github.com/lsst/lsst_build\n+\n+.. _versiondb: https://github.com/lsst/versiondb\n+\n+.. _EUPS: https://github.com/RobertLuptonTheGood/eups\n+\n+.. _lsstsw-workflow-obtaining-lsstw-stack-rebuild:\n+\n+Step 3. Download and Build the Stack\n+------------------------------------\n+\n+Run\n+\n+.. prompt:: bash\n+\n+   rebuild lsst_apps\n+\n+Initially this will ``git clone`` all of the Stack repositories.\n+A high-bandwidth connections is helpful since the stack contains a non-trivial amount of code and test data.\n+\n+.. TODO suggest keeping a separate clone of afwdata and linking it when necessary (put in git recipes page)\n+\n+Next, ``rebuild`` will run our Scons-based build process to compile C++, make Swig bindings, and ultimately create the ``lsst`` Python package.\n+The Stack is built and installed into the ``stack/`` directory inside your ``lsstsw`` work directory.\n+\n+Note that we ran ``rebuild lsst_apps`` since `lsst_apps`_ is a meta package that depends on the entire Stack, thus ensuring you have a complete Stack to develop on.\n+\n+.. _lsst_apps: https://github.com/lsst/lsst_apps\n+\n+.. _lsstsw-workflow-obtaining-lsstw-stack-current:\n+\n+Step 4. Tag the Current Build\n+-----------------------------\n+\n+Once the ``rebuild`` step finishes, take note of the build number printed on screen.\n+It is formatted as \"``bNNNN``.\"\n+Tell EUPS this is the current build by making a clone of the build's EUPS tag and calling it \"``current``:\"\n+\n+.. prompt:: bash\n+\n+   eups tags --clone bNNNN current\n+\n+*Note:* this command will print ``eups tags: local variable 'tagNames' referenced before assignment``; this is a known EUPS bug that doesn't affect functionality.\n+\n+You now have a working Stack, ready for development.\n+\n+.. _lsstsw-workflow-working-ticket:\n+\n+Working on a Ticket\n+===================\n+\n+At LSST Data Management, we use tickets on `JIRA`_ to track work.\n+You might be assigned an existing ticket, or you might create a new ticket to work on.\n+These tickets are named \"``DM-MMMMM``.\"\n+\n+.. _JIRA: https://jira.lsstcorp.org\n+\n+.. TODO link to in-depth guide on JIRA workflows\n+\n+When beginning any Stack development work, ensure lsstsw is setup in your terminal sessions.\n+From the ``lsstsw/`` directory:\n+\n+.. prompt:: bash\n+\n+   . bin/setup.sh  # from the lsstsw root\n+\n+.. _lsstsw-workflow-working-ticket-branch:\n+\n+Step 1. Create Ticket Branches for Repositories in Development\n+--------------------------------------------------------------\n+\n+First we need to create git branches to work on the ticket in.\n+The Stack's git repositories are cloned in ``lsstsw/build``.\n+\n+Make a *ticket branch* for each repository involved in your ticket work.\n+From a package's repository in ``lsstsw/build``:\n+\n+.. prompt:: bash\n+\n+   git checkout -b tickets/DM-MMMM\n+\n+*(repeat for other packages in development)*\n+\n+Note that you can do local work on arbitrarily-named branches, but all commits that you intend to make a pull request for must be in ``tickets/DM-MMMM`` branches.\n+If you want to push non-ticket work up an LSST repository on GitHub you can prefix your branch's name with ``u/{{username}}/`` (as in, your GitHub username).\n+\n+Next, create this branch on the GitHub remote.\n+From a package's repository in ``lsstsw/build``:\n+\n+.. prompt:: bash\n+\n+   git push -u\n+\n+*(repeat for other packages in development)*\n+\n+This initial push will create a remote branch ``origin/tickets/DM-MMMM`` and *track* it so that you can simply ``git push`` and ``git pull`` without arguments between the ticket branch on the ``origin`` remote and your local clone.\n+\n+.. _lsstsw-workflow-working-ticket-declare:\n+\n+Step 2. Declare these Repositories to EUPS\n+------------------------------------------\n+\n+We need to tell EUPS about these development repositories (with ``eups declare``) and set them up for building (with ``setup``).\n+From a package's repository in ``lsstsw/build``:\n+\n+.. prompt:: bash\n+\n+   eups declare -r . -t $USER {{package_name}} git\n+   setup -r . -t $USER","path":"development/workflow.rst","position":206,"original_position":206,"commit_id":"fbd879612ba9874877c416c4c083587a1ae66738","original_commit_id":"fbd879612ba9874877c416c4c083587a1ae66738","user":{"login":"ktlim","id":1054393,"avatar_url":"https://avatars.githubusercontent.com/u/1054393?v=3","gravatar_id":"","url":"https://api.github.com/users/ktlim","html_url":"https://github.com/ktlim","followers_url":"https://api.github.com/users/ktlim/followers","following_url":"https://api.github.com/users/ktlim/following{/other_user}","gists_url":"https://api.github.com/users/ktlim/gists{/gist_id}","starred_url":"https://api.github.com/users/ktlim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ktlim/subscriptions","organizations_url":"https://api.github.com/users/ktlim/orgs","repos_url":"https://api.github.com/users/ktlim/repos","events_url":"https://api.github.com/users/ktlim/events{/privacy}","received_events_url":"https://api.github.com/users/ktlim/received_events","type":"User","site_admin":false},"body":"I think you need \"-k\" here unless the setups are done in dependency order.","created_at":"2015-12-02T00:17:10Z","updated_at":"2015-12-02T00:17:10Z","html_url":"https://github.com/lsst-sqre/lsst_stack_docs/pull/2#discussion_r46360957","pull_request_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/pulls/2","_links":{"self":{"href":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/pulls/comments/46360957"},"html":{"href":"https://github.com/lsst-sqre/lsst_stack_docs/pull/2#discussion_r46360957"},"pull_request":{"href":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/pulls/2"}}},"pull_request":{"url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/pulls/2","id":48279249,"html_url":"https://github.com/lsst-sqre/lsst_stack_docs/pull/2","diff_url":"https://github.com/lsst-sqre/lsst_stack_docs/pull/2.diff","patch_url":"https://github.com/lsst-sqre/lsst_stack_docs/pull/2.patch","issue_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/issues/2","number":2,"state":"open","locked":false,"title":"DM-4016","user":{"login":"jonathansick","id":349384,"avatar_url":"https://avatars.githubusercontent.com/u/349384?v=3","gravatar_id":"","url":"https://api.github.com/users/jonathansick","html_url":"https://github.com/jonathansick","followers_url":"https://api.github.com/users/jonathansick/followers","following_url":"https://api.github.com/users/jonathansick/following{/other_user}","gists_url":"https://api.github.com/users/jonathansick/gists{/gist_id}","starred_url":"https://api.github.com/users/jonathansick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonathansick/subscriptions","organizations_url":"https://api.github.com/users/jonathansick/orgs","repos_url":"https://api.github.com/users/jonathansick/repos","events_url":"https://api.github.com/users/jonathansick/events{/privacy}","received_events_url":"https://api.github.com/users/jonathansick/received_events","type":"User","site_admin":false},"body":"See staged website at http://docs.lsst.codes/en/tickets-dm-4016/development/workflow.html\r\n\r\nThis guide is meant to be sufficient for a new hire to get started with the stack. It is intentionally light in details and special cases in many circumstances because I assume there will be additional in-depth guides written in the future that I can link to.\r\n\r\nThe guide focuses entirely on the lsstsw workflow since it was advocated as the best general workflow by the team.\r\nhttps://community.lsst.org/t/what-development-workflow-should-be-advocated-w-poll/297?u=jsick\r\n\r\nA separate guide should be written around using the shared stack on the NCSA cluster.\r\n\r\nFor DM-4016","created_at":"2015-10-21T01:37:34Z","updated_at":"2015-12-02T00:17:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"93fadd612459f01d350d144f18dbccd6a09e27fd","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/pulls/2/commits","review_comments_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/pulls/2/comments","review_comment_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/issues/2/comments","statuses_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/statuses/fbd879612ba9874877c416c4c083587a1ae66738","head":{"label":"lsst-sqre:tickets/DM-4016","ref":"tickets/DM-4016","sha":"fbd879612ba9874877c416c4c083587a1ae66738","user":{"login":"lsst-sqre","id":10158560,"avatar_url":"https://avatars.githubusercontent.com/u/10158560?v=3","gravatar_id":"","url":"https://api.github.com/users/lsst-sqre","html_url":"https://github.com/lsst-sqre","followers_url":"https://api.github.com/users/lsst-sqre/followers","following_url":"https://api.github.com/users/lsst-sqre/following{/other_user}","gists_url":"https://api.github.com/users/lsst-sqre/gists{/gist_id}","starred_url":"https://api.github.com/users/lsst-sqre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lsst-sqre/subscriptions","organizations_url":"https://api.github.com/users/lsst-sqre/orgs","repos_url":"https://api.github.com/users/lsst-sqre/repos","events_url":"https://api.github.com/users/lsst-sqre/events{/privacy}","received_events_url":"https://api.github.com/users/lsst-sqre/received_events","type":"Organization","site_admin":false},"repo":{"id":40620718,"name":"lsst_stack_docs","full_name":"lsst-sqre/lsst_stack_docs","owner":{"login":"lsst-sqre","id":10158560,"avatar_url":"https://avatars.githubusercontent.com/u/10158560?v=3","gravatar_id":"","url":"https://api.github.com/users/lsst-sqre","html_url":"https://github.com/lsst-sqre","followers_url":"https://api.github.com/users/lsst-sqre/followers","following_url":"https://api.github.com/users/lsst-sqre/following{/other_user}","gists_url":"https://api.github.com/users/lsst-sqre/gists{/gist_id}","starred_url":"https://api.github.com/users/lsst-sqre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lsst-sqre/subscriptions","organizations_url":"https://api.github.com/users/lsst-sqre/orgs","repos_url":"https://api.github.com/users/lsst-sqre/repos","events_url":"https://api.github.com/users/lsst-sqre/events{/privacy}","received_events_url":"https://api.github.com/users/lsst-sqre/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/lsst-sqre/lsst_stack_docs","description":"Documentation for the LSST Stack (pre-alpha)","fork":false,"url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs","forks_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/forks","keys_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/teams","hooks_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/hooks","issue_events_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/issues/events{/number}","events_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/events","assignees_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/assignees{/user}","branches_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/branches{/branch}","tags_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/tags","blobs_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/statuses/{sha}","languages_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/languages","stargazers_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/stargazers","contributors_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/contributors","subscribers_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/subscribers","subscription_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/subscription","commits_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/contents/{+path}","compare_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/merges","archive_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/downloads","issues_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/issues{/number}","pulls_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/pulls{/number}","milestones_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/milestones{/number}","notifications_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/labels{/name}","releases_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/releases{/id}","created_at":"2015-08-12T19:43:19Z","updated_at":"2015-08-12T21:08:24Z","pushed_at":"2015-12-01T19:19:21Z","git_url":"git://github.com/lsst-sqre/lsst_stack_docs.git","ssh_url":"git@github.com:lsst-sqre/lsst_stack_docs.git","clone_url":"https://github.com/lsst-sqre/lsst_stack_docs.git","svn_url":"https://github.com/lsst-sqre/lsst_stack_docs","homepage":"","size":88,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":3,"forks":0,"open_issues":3,"watchers":0,"default_branch":"master"}},"base":{"label":"lsst-sqre:master","ref":"master","sha":"1c42e766d1e9e274d8c7a2ce8fd8f0a8b26c92a3","user":{"login":"lsst-sqre","id":10158560,"avatar_url":"https://avatars.githubusercontent.com/u/10158560?v=3","gravatar_id":"","url":"https://api.github.com/users/lsst-sqre","html_url":"https://github.com/lsst-sqre","followers_url":"https://api.github.com/users/lsst-sqre/followers","following_url":"https://api.github.com/users/lsst-sqre/following{/other_user}","gists_url":"https://api.github.com/users/lsst-sqre/gists{/gist_id}","starred_url":"https://api.github.com/users/lsst-sqre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lsst-sqre/subscriptions","organizations_url":"https://api.github.com/users/lsst-sqre/orgs","repos_url":"https://api.github.com/users/lsst-sqre/repos","events_url":"https://api.github.com/users/lsst-sqre/events{/privacy}","received_events_url":"https://api.github.com/users/lsst-sqre/received_events","type":"Organization","site_admin":false},"repo":{"id":40620718,"name":"lsst_stack_docs","full_name":"lsst-sqre/lsst_stack_docs","owner":{"login":"lsst-sqre","id":10158560,"avatar_url":"https://avatars.githubusercontent.com/u/10158560?v=3","gravatar_id":"","url":"https://api.github.com/users/lsst-sqre","html_url":"https://github.com/lsst-sqre","followers_url":"https://api.github.com/users/lsst-sqre/followers","following_url":"https://api.github.com/users/lsst-sqre/following{/other_user}","gists_url":"https://api.github.com/users/lsst-sqre/gists{/gist_id}","starred_url":"https://api.github.com/users/lsst-sqre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lsst-sqre/subscriptions","organizations_url":"https://api.github.com/users/lsst-sqre/orgs","repos_url":"https://api.github.com/users/lsst-sqre/repos","events_url":"https://api.github.com/users/lsst-sqre/events{/privacy}","received_events_url":"https://api.github.com/users/lsst-sqre/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/lsst-sqre/lsst_stack_docs","description":"Documentation for the LSST Stack (pre-alpha)","fork":false,"url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs","forks_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/forks","keys_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/teams","hooks_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/hooks","issue_events_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/issues/events{/number}","events_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/events","assignees_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/assignees{/user}","branches_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/branches{/branch}","tags_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/tags","blobs_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/statuses/{sha}","languages_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/languages","stargazers_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/stargazers","contributors_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/contributors","subscribers_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/subscribers","subscription_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/subscription","commits_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/contents/{+path}","compare_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/merges","archive_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/downloads","issues_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/issues{/number}","pulls_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/pulls{/number}","milestones_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/milestones{/number}","notifications_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/labels{/name}","releases_url":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/releases{/id}","created_at":"2015-08-12T19:43:19Z","updated_at":"2015-08-12T21:08:24Z","pushed_at":"2015-12-01T19:19:21Z","git_url":"git://github.com/lsst-sqre/lsst_stack_docs.git","ssh_url":"git@github.com:lsst-sqre/lsst_stack_docs.git","clone_url":"https://github.com/lsst-sqre/lsst_stack_docs.git","svn_url":"https://github.com/lsst-sqre/lsst_stack_docs","homepage":"","size":88,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":3,"forks":0,"open_issues":3,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/pulls/2"},"html":{"href":"https://github.com/lsst-sqre/lsst_stack_docs/pull/2"},"issue":{"href":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/issues/2"},"comments":{"href":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/issues/2/comments"},"review_comments":{"href":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/pulls/2/comments"},"review_comment":{"href":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/pulls/2/commits"},"statuses":{"href":"https://api.github.com/repos/lsst-sqre/lsst_stack_docs/statuses/fbd879612ba9874877c416c4c083587a1ae66738"}}}}