{"action":"created","comment":{"url":"https://api.github.com/repos/deis/workflow/pulls/comments/48295895","id":48295895,"diff_hunk":"@@ -1,280 +1,278 @@\n # Development Environment\n \n-[DigitalOcean][] is the recommended development environment for Deis project contributors. [Provision a new DO cluster](../installing-deis/digitalocean.md) and then continue to follow the instructions below to get started hacking.\n+This document is for developers who are interested in working directly on the Deis codebase. In this guide, we walk you through the process of setting up a development environment that is suitable for hacking on most Deis components.\n \n-!!! important\n-    Are you a new contributor to Deis? Your first [Pull Request][pr] could earn you credit at [DigitalOcean][]! Submit your changes and then email <deis@engineyard.com>. When your PR is merged, the maintainer team will send you a DigitalOcean credit based on the value of your contribution.\n-\n-This document is for developers who are interested in working directly on the Deis codebase. In this guide, we walk you through the process of setting up a local development environment. While there are many ways to set up your Deis environment, this document covers a specific setup:\n+We try to make it simple to hack on Deis components. However, there are necessarily several moving pieces and some setup required. We welcome any suggestions for automating or simplifying this process.\n \n-- Developing on **Mac OSX** or **Linux**\n-- Managing virtualization with **Vagrant/Virtualbox**\n-- Hosting a docker registry with **docker-machine** (Mac)\n-\n-We try to make it simple to hack on Deis. However, there are necessarily several moving pieces and some setup required. We welcome any suggestions for automating or simplifying this process.\n+!!! note\n+    The Deis team is actively engaged in containerizing Go and Python based development environments tailored specifcally for Deis development in order to minimize the setup required.  This work is ongoing.  Refer to the [deis/router][router] project for a working example of a fully containerized development environment.\n \n If you're just getting into the Deis codebase, look for GitHub issues with the label [easy-fix][]. These are more straightforward or low-risk issues and are a great way to become more familiar with Deis.\n \n ## Prerequisites\n \n-You can develop on any supported platform including your laptop, cloud providers or on bare metal. We strongly recommend a minimum 3-node cluster. We strongly suggest using Vagrant and VirtualBox for your virtualization layer during development.\n+In order to successfully compile and test Deis binaries and build Docker images of Deis components, the following are required:\n \n-At a glance, you will need:\n-\n-- Python 2.7 or later (with `pip`)\n-- virtualenv (`sudo pip install virtualenv`)\n+- [git][git]\n - Go 1.5 or later, with support for compiling to `linux/amd64`\n-- [Godep](https://github.com/tools/godep)\n-- VirtualBox latest\n-- Vagrant 1.5 or later\n+- [glide][glide]\n+- [golint][golint]\n+- [shellcheck][shellcheck]\n+- [Docker][docker] (in a non-Linux environment, you will additionally want [Docker Machine][machine])\n \n-On Mac, you will also want [Docker Machine][machine].\n+For [deis/workflow][workflow], in particular, you will also need:\n \n-Additionally, you may need:\n-\n-- [shellcheck](https://github.com/koalaman/shellcheck)\n-- [golint](https://github.com/golang/lint)\n+- Python 2.7 or later (with `pip`)\n+- virtualenv (`sudo pip install virtualenv`)\n \n In most cases, you should simply install according to the instructions. There are a few special cases, though. We cover these below.\n \n ### Configuring Go\n \n-If your local workstation does not support the `linux/amd64` target environment, you will have to install Go from source with cross-compile support for that environment. This is because some of the components are built on your local machine and then injected into a docker container.\n+If your local workstation does not support the `linux/amd64` target environment, you will have to install Go from source with cross-compile support for that environment. This is because some of the components are built on your local machine and then injected into a Docker container.\n \n Homebrew users can just install with cross compiling support:\n \n-\n-    $ brew install go --with-cc-common\n+```\n+$ brew install go --with-cc-common\n+```\n \n It is also straightforward to build Go from source:\n \n-    $ sudo su\n-    $ curl -sSL https://golang.org/dl/go1.5.src.tar.gz | tar -v -C /usr/local -xz\n-    $ cd /usr/local/go/src\n-    $ # compile Go for our default platform first, then add cross-compile support\n-    $ ./make.bash --no-clean\n-    $ GOOS=linux GOARCH=amd64 ./make.bash --no-clean\n+```\n+$ sudo su\n+$ curl -sSL https://golang.org/dl/go1.5.src.tar.gz | tar -v -C /usr/local -xz\n+$ cd /usr/local/go/src\n+$ # compile Go for our default platform first, then add cross-compile support\n+$ ./make.bash --no-clean\n+$ GOOS=linux GOARCH=amd64 ./make.bash --no-clean\n+```\n \n-Once you can compile to `linux/amd64`, you should be able to compile Deis' components as normal.\n+Once you can compile to `linux/amd64`, you should be able to compile Deis components as normal.\n \n ### Configuring Docker Machine (Mac)\n \n-Deis needs a Docker registry running independently of the Deis cluster. On OS X, you will need [Docker Machine][machine] to run the registry inside of a VirtualBox image.\n+Deis needs Docker for building images.  Docker utilizes a client/server architecture, and while the Docker client is available for Mac OS, the Docker server is dependent upon the Linux kernel.  Therefore, in order to use Docker on Mac OS, [Docker Machine][machine] is used to facilitate running the Docker server within a [VirtualBox][vbox] VM.\n \n-!!! note\n-    Previously, Deis used boot2docker to run the registry. However, Docker has deprecated boot2docker in favor of Docker Machine.\n+Install Docker Machine according to the normal installation instructions, then use it to create a new VM:\n \n-Install Docker Machine according to the normal installation instructions. Then create a new image for hosting your Deis Docker registry:\n+```\n+$ docker-machine create deis-docker \\\n+    --driver=virtualbox \\\n+    --virtualbox-disk-size=100000 \\\n+    --engine-insecure-registry=192.168.0.0/16\n+```\n \n-    $ docker-machine create --driver virtualbox --virtualbox-disk-size=100000 \\\n-      --engine-insecure-registry=192.168.0.0/16 deis-registry\n+This will create a new virtual machine named `deis-docker` that will take up as much as 100,000 MB of disk space. The images you build may be large, so allocating a big disk is a good idea.\n \n-This will create a new virtual machine named `deis-registry` that will take up as much as 100,000 MB of disk space. Registries tend to be large, so allocating a big disk is a good idea.\n+Once the `deis-docker` machine exists, source its values into your environment so your docker client knows how to use the new machine. You may even choose to add this to your bash profile or similar.\n \n-Once the deis-registry machine exists, source its values into your environment so your docker client knows how to use the new machine.\n+```\n+$ eval \"$(docker-machine env docker-deis)\"\n+```\n \n-    $ eval \"$(docker-machine env deis-registry)\"\n+After following these steps, some Docker Machine users report a slight delay (30 - 60 seconds) before the Docker server is ready.\n \n !!! note\n-    Because the registry that we create will not have a valid SSL certificate, we run the local registry as an insecure (HTTP, not HTTPS) registry. Each time Docker Machine reboots, the registry will get a new IP address somewhere in the `192.168.0.0/16` range. We must declare that explicitly when configuring Docker Machine.\n-\n-At this point, our `deis-registry` VM can now serve as a registry for Deis' Docker images. Later we will return to this.\n+    In subsequent steps, you may run a Docker registry within the `deis-docker` VM. Such a registry will not have a valid SSL certificate and will use HTTP instead of HTTPS. Such registries are implicitly untrusted by the Docker server (which is also running on the `deis-docker` VM).  In order for the Docker server to trust the insecure registry, `deis-docker` is explicitly created to trust all registries in the `192.168.0.0/16` range - the range in which the VM (and therefore the registry) will exist.  This will effectively permit Docker pulls and pushes to such a registry.","path":"docs/src/contributing/development-environment.md","position":122,"original_position":122,"commit_id":"1dc0d3a0f30704b0912d08616e3c48f6e6cfc350","original_commit_id":"2862df30f597569bb131fd21a6d5085e2f41efbd","user":{"login":"carmstrong","id":536009,"avatar_url":"https://avatars.githubusercontent.com/u/536009?v=3","gravatar_id":"","url":"https://api.github.com/users/carmstrong","html_url":"https://github.com/carmstrong","followers_url":"https://api.github.com/users/carmstrong/followers","following_url":"https://api.github.com/users/carmstrong/following{/other_user}","gists_url":"https://api.github.com/users/carmstrong/gists{/gist_id}","starred_url":"https://api.github.com/users/carmstrong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/carmstrong/subscriptions","organizations_url":"https://api.github.com/users/carmstrong/orgs","repos_url":"https://api.github.com/users/carmstrong/repos","events_url":"https://api.github.com/users/carmstrong/events{/privacy}","received_events_url":"https://api.github.com/users/carmstrong/received_events","type":"User","site_admin":false},"body":":+1: This is what we do for CoreOS hosts and the builder. https://github.com/deis/deis/blob/f46b967e9fd7c2260cddad656393d7817bcd0897/contrib/coreos/user-data.example#L54","created_at":"2015-12-22T20:43:10Z","updated_at":"2015-12-22T20:43:10Z","html_url":"https://github.com/deis/workflow/pull/180#discussion_r48295895","pull_request_url":"https://api.github.com/repos/deis/workflow/pulls/180","_links":{"self":{"href":"https://api.github.com/repos/deis/workflow/pulls/comments/48295895"},"html":{"href":"https://github.com/deis/workflow/pull/180#discussion_r48295895"},"pull_request":{"href":"https://api.github.com/repos/deis/workflow/pulls/180"}}},"pull_request":{"url":"https://api.github.com/repos/deis/workflow/pulls/180","id":54335437,"html_url":"https://github.com/deis/workflow/pull/180","diff_url":"https://github.com/deis/workflow/pull/180.diff","patch_url":"https://github.com/deis/workflow/pull/180.patch","issue_url":"https://api.github.com/repos/deis/workflow/issues/180","number":180,"state":"open","locked":false,"title":"doc(dev-env): update dev env docs","user":{"login":"krancour","id":1821014,"avatar_url":"https://avatars.githubusercontent.com/u/1821014?v=3","gravatar_id":"","url":"https://api.github.com/users/krancour","html_url":"https://github.com/krancour","followers_url":"https://api.github.com/users/krancour/followers","following_url":"https://api.github.com/users/krancour/following{/other_user}","gists_url":"https://api.github.com/users/krancour/gists{/gist_id}","starred_url":"https://api.github.com/users/krancour/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krancour/subscriptions","organizations_url":"https://api.github.com/users/krancour/orgs","repos_url":"https://api.github.com/users/krancour/repos","events_url":"https://api.github.com/users/krancour/events{/privacy}","received_events_url":"https://api.github.com/users/krancour/received_events","type":"User","site_admin":false},"body":"This is a massive rewrite of the docs for setting up the development environment.\r\n\r\nNote, I expect these to shrink significantly as we make more headway in transitioning each component's development environment to something container-based.  For now, this is necessary...\r\n\r\nThis does away with mentions of defunct things like `make dev-cluster` and `deisctl` and replaces them with information about building and deploying to k8s.\r\n\r\nThis massive update also re-orders docs a bit and pays down some outstanding inaccuracies.\r\n\r\nPlease note that this doc tries really hard to document the _general_ procedures for hacking on each of our _many_ components.  Until we have made our Makefiles uniform, your mileage from these instructions may vary from one component to the next.  I don't see this as a flaw in the docs; rather I see adherence to the docs as something for each component to aspire to.","created_at":"2015-12-22T05:51:30Z","updated_at":"2015-12-22T20:43:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"aa26c3645b61fb7c7823b67187f4a4274c65f617","assignee":{"login":"krancour","id":1821014,"avatar_url":"https://avatars.githubusercontent.com/u/1821014?v=3","gravatar_id":"","url":"https://api.github.com/users/krancour","html_url":"https://github.com/krancour","followers_url":"https://api.github.com/users/krancour/followers","following_url":"https://api.github.com/users/krancour/following{/other_user}","gists_url":"https://api.github.com/users/krancour/gists{/gist_id}","starred_url":"https://api.github.com/users/krancour/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krancour/subscriptions","organizations_url":"https://api.github.com/users/krancour/orgs","repos_url":"https://api.github.com/users/krancour/repos","events_url":"https://api.github.com/users/krancour/events{/privacy}","received_events_url":"https://api.github.com/users/krancour/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/deis/workflow/milestones/3","html_url":"https://github.com/deis/workflow/milestones/v2.0-alpha2","labels_url":"https://api.github.com/repos/deis/workflow/milestones/3/labels","id":1465953,"number":3,"title":"v2.0-alpha2","description":"Pre-beta bugs/issues that we can quickly fix.","creator":{"login":"technosophos","id":89193,"avatar_url":"https://avatars.githubusercontent.com/u/89193?v=3","gravatar_id":"","url":"https://api.github.com/users/technosophos","html_url":"https://github.com/technosophos","followers_url":"https://api.github.com/users/technosophos/followers","following_url":"https://api.github.com/users/technosophos/following{/other_user}","gists_url":"https://api.github.com/users/technosophos/gists{/gist_id}","starred_url":"https://api.github.com/users/technosophos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technosophos/subscriptions","organizations_url":"https://api.github.com/users/technosophos/orgs","repos_url":"https://api.github.com/users/technosophos/repos","events_url":"https://api.github.com/users/technosophos/events{/privacy}","received_events_url":"https://api.github.com/users/technosophos/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":10,"state":"open","created_at":"2015-12-18T00:10:40Z","updated_at":"2015-12-22T19:43:37Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/deis/workflow/pulls/180/commits","review_comments_url":"https://api.github.com/repos/deis/workflow/pulls/180/comments","review_comment_url":"https://api.github.com/repos/deis/workflow/pulls/comments{/number}","comments_url":"https://api.github.com/repos/deis/workflow/issues/180/comments","statuses_url":"https://api.github.com/repos/deis/workflow/statuses/1dc0d3a0f30704b0912d08616e3c48f6e6cfc350","head":{"label":"krancour:update-dev-env-docs","ref":"update-dev-env-docs","sha":"1dc0d3a0f30704b0912d08616e3c48f6e6cfc350","user":{"login":"krancour","id":1821014,"avatar_url":"https://avatars.githubusercontent.com/u/1821014?v=3","gravatar_id":"","url":"https://api.github.com/users/krancour","html_url":"https://github.com/krancour","followers_url":"https://api.github.com/users/krancour/followers","following_url":"https://api.github.com/users/krancour/following{/other_user}","gists_url":"https://api.github.com/users/krancour/gists{/gist_id}","starred_url":"https://api.github.com/users/krancour/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krancour/subscriptions","organizations_url":"https://api.github.com/users/krancour/orgs","repos_url":"https://api.github.com/users/krancour/repos","events_url":"https://api.github.com/users/krancour/events{/privacy}","received_events_url":"https://api.github.com/users/krancour/received_events","type":"User","site_admin":false},"repo":{"id":47133477,"name":"workflow","full_name":"krancour/workflow","owner":{"login":"krancour","id":1821014,"avatar_url":"https://avatars.githubusercontent.com/u/1821014?v=3","gravatar_id":"","url":"https://api.github.com/users/krancour","html_url":"https://github.com/krancour","followers_url":"https://api.github.com/users/krancour/followers","following_url":"https://api.github.com/users/krancour/following{/other_user}","gists_url":"https://api.github.com/users/krancour/gists{/gist_id}","starred_url":"https://api.github.com/users/krancour/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krancour/subscriptions","organizations_url":"https://api.github.com/users/krancour/orgs","repos_url":"https://api.github.com/users/krancour/repos","events_url":"https://api.github.com/users/krancour/events{/privacy}","received_events_url":"https://api.github.com/users/krancour/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/krancour/workflow","description":"PaaS workflow controller and client for Deis v2","fork":true,"url":"https://api.github.com/repos/krancour/workflow","forks_url":"https://api.github.com/repos/krancour/workflow/forks","keys_url":"https://api.github.com/repos/krancour/workflow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/krancour/workflow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/krancour/workflow/teams","hooks_url":"https://api.github.com/repos/krancour/workflow/hooks","issue_events_url":"https://api.github.com/repos/krancour/workflow/issues/events{/number}","events_url":"https://api.github.com/repos/krancour/workflow/events","assignees_url":"https://api.github.com/repos/krancour/workflow/assignees{/user}","branches_url":"https://api.github.com/repos/krancour/workflow/branches{/branch}","tags_url":"https://api.github.com/repos/krancour/workflow/tags","blobs_url":"https://api.github.com/repos/krancour/workflow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/krancour/workflow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/krancour/workflow/git/refs{/sha}","trees_url":"https://api.github.com/repos/krancour/workflow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/krancour/workflow/statuses/{sha}","languages_url":"https://api.github.com/repos/krancour/workflow/languages","stargazers_url":"https://api.github.com/repos/krancour/workflow/stargazers","contributors_url":"https://api.github.com/repos/krancour/workflow/contributors","subscribers_url":"https://api.github.com/repos/krancour/workflow/subscribers","subscription_url":"https://api.github.com/repos/krancour/workflow/subscription","commits_url":"https://api.github.com/repos/krancour/workflow/commits{/sha}","git_commits_url":"https://api.github.com/repos/krancour/workflow/git/commits{/sha}","comments_url":"https://api.github.com/repos/krancour/workflow/comments{/number}","issue_comment_url":"https://api.github.com/repos/krancour/workflow/issues/comments{/number}","contents_url":"https://api.github.com/repos/krancour/workflow/contents/{+path}","compare_url":"https://api.github.com/repos/krancour/workflow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/krancour/workflow/merges","archive_url":"https://api.github.com/repos/krancour/workflow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/krancour/workflow/downloads","issues_url":"https://api.github.com/repos/krancour/workflow/issues{/number}","pulls_url":"https://api.github.com/repos/krancour/workflow/pulls{/number}","milestones_url":"https://api.github.com/repos/krancour/workflow/milestones{/number}","notifications_url":"https://api.github.com/repos/krancour/workflow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/krancour/workflow/labels{/name}","releases_url":"https://api.github.com/repos/krancour/workflow/releases{/id}","created_at":"2015-11-30T17:05:30Z","updated_at":"2015-11-30T17:05:33Z","pushed_at":"2015-12-22T20:37:55Z","git_url":"git://github.com/krancour/workflow.git","ssh_url":"git@github.com:krancour/workflow.git","clone_url":"https://github.com/krancour/workflow.git","svn_url":"https://github.com/krancour/workflow","homepage":"http://deis.io","size":14699,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"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":"master"}},"base":{"label":"deis:master","ref":"master","sha":"11d45c643261bf0e902f2e4506e077b1706911db","user":{"login":"deis","id":6117407,"avatar_url":"https://avatars.githubusercontent.com/u/6117407?v=3","gravatar_id":"","url":"https://api.github.com/users/deis","html_url":"https://github.com/deis","followers_url":"https://api.github.com/users/deis/followers","following_url":"https://api.github.com/users/deis/following{/other_user}","gists_url":"https://api.github.com/users/deis/gists{/gist_id}","starred_url":"https://api.github.com/users/deis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/deis/subscriptions","organizations_url":"https://api.github.com/users/deis/orgs","repos_url":"https://api.github.com/users/deis/repos","events_url":"https://api.github.com/users/deis/events{/privacy}","received_events_url":"https://api.github.com/users/deis/received_events","type":"Organization","site_admin":false},"repo":{"id":45704630,"name":"workflow","full_name":"deis/workflow","owner":{"login":"deis","id":6117407,"avatar_url":"https://avatars.githubusercontent.com/u/6117407?v=3","gravatar_id":"","url":"https://api.github.com/users/deis","html_url":"https://github.com/deis","followers_url":"https://api.github.com/users/deis/followers","following_url":"https://api.github.com/users/deis/following{/other_user}","gists_url":"https://api.github.com/users/deis/gists{/gist_id}","starred_url":"https://api.github.com/users/deis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/deis/subscriptions","organizations_url":"https://api.github.com/users/deis/orgs","repos_url":"https://api.github.com/users/deis/repos","events_url":"https://api.github.com/users/deis/events{/privacy}","received_events_url":"https://api.github.com/users/deis/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/deis/workflow","description":"PaaS workflow controller and client for Deis v2","fork":false,"url":"https://api.github.com/repos/deis/workflow","forks_url":"https://api.github.com/repos/deis/workflow/forks","keys_url":"https://api.github.com/repos/deis/workflow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/deis/workflow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/deis/workflow/teams","hooks_url":"https://api.github.com/repos/deis/workflow/hooks","issue_events_url":"https://api.github.com/repos/deis/workflow/issues/events{/number}","events_url":"https://api.github.com/repos/deis/workflow/events","assignees_url":"https://api.github.com/repos/deis/workflow/assignees{/user}","branches_url":"https://api.github.com/repos/deis/workflow/branches{/branch}","tags_url":"https://api.github.com/repos/deis/workflow/tags","blobs_url":"https://api.github.com/repos/deis/workflow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/deis/workflow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/deis/workflow/git/refs{/sha}","trees_url":"https://api.github.com/repos/deis/workflow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/deis/workflow/statuses/{sha}","languages_url":"https://api.github.com/repos/deis/workflow/languages","stargazers_url":"https://api.github.com/repos/deis/workflow/stargazers","contributors_url":"https://api.github.com/repos/deis/workflow/contributors","subscribers_url":"https://api.github.com/repos/deis/workflow/subscribers","subscription_url":"https://api.github.com/repos/deis/workflow/subscription","commits_url":"https://api.github.com/repos/deis/workflow/commits{/sha}","git_commits_url":"https://api.github.com/repos/deis/workflow/git/commits{/sha}","comments_url":"https://api.github.com/repos/deis/workflow/comments{/number}","issue_comment_url":"https://api.github.com/repos/deis/workflow/issues/comments{/number}","contents_url":"https://api.github.com/repos/deis/workflow/contents/{+path}","compare_url":"https://api.github.com/repos/deis/workflow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/deis/workflow/merges","archive_url":"https://api.github.com/repos/deis/workflow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/deis/workflow/downloads","issues_url":"https://api.github.com/repos/deis/workflow/issues{/number}","pulls_url":"https://api.github.com/repos/deis/workflow/pulls{/number}","milestones_url":"https://api.github.com/repos/deis/workflow/milestones{/number}","notifications_url":"https://api.github.com/repos/deis/workflow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/deis/workflow/labels{/name}","releases_url":"https://api.github.com/repos/deis/workflow/releases{/id}","created_at":"2015-11-06T20:06:05Z","updated_at":"2015-12-22T06:44:08Z","pushed_at":"2015-12-22T20:37:56Z","git_url":"git://github.com/deis/workflow.git","ssh_url":"git@github.com:deis/workflow.git","clone_url":"https://github.com/deis/workflow.git","svn_url":"https://github.com/deis/workflow","homepage":"http://deis.io","size":14774,"stargazers_count":9,"watchers_count":9,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":13,"mirror_url":null,"open_issues_count":49,"forks":13,"open_issues":49,"watchers":9,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/deis/workflow/pulls/180"},"html":{"href":"https://github.com/deis/workflow/pull/180"},"issue":{"href":"https://api.github.com/repos/deis/workflow/issues/180"},"comments":{"href":"https://api.github.com/repos/deis/workflow/issues/180/comments"},"review_comments":{"href":"https://api.github.com/repos/deis/workflow/pulls/180/comments"},"review_comment":{"href":"https://api.github.com/repos/deis/workflow/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/deis/workflow/pulls/180/commits"},"statuses":{"href":"https://api.github.com/repos/deis/workflow/statuses/1dc0d3a0f30704b0912d08616e3c48f6e6cfc350"}}}}