{"action":"created","comment":{"url":"https://api.github.com/repos/concourse/concourse/pulls/comments/30463601","id":30463601,"diff_hunk":"@@ -0,0 +1,114 @@\n+# Contributing In General\n+So, you've come here hoping to make Concourse better?  Great!\n+Concourse welcomes pull-request on any one of the many open-source\n+pieces we currently have within our\n+[organization](https://github.com/concourse).\n+\n+There are only a few ground rules that we like to see respected for\n+your pull-request to be considered:\n+\n+- Make sure that you submit all pull-requests to the develop branch on\n+Concourse (they won't build otherwise).\n+- Each corresponding change should have an associated test to go along\n+with it.  If you are having trouble testing, open an issue to discuss\n+it.\n+- Please don't forget to update the Concourse \n+[documentation](https://github.com/concourse/concourse/tree/develop/docs) \n+if you make a change to any the behavior (especially in fly).\n+- Double check that all of the tests you have written pass on the\n+pull-request\n+\n+With those ground rules out of the way, let's get you setup to work on\n+the project!\n+\n+# Setup\n+\n+### Tools you will need\n+- ruby\n+    - use system provided if you have it\n+- bosh_cli (ruby-gem and all around bosh goodness)\n+    - `gem install bosh_cli bosh_cli_plugin_micro --no-ri --no-rdoc`\n+- direnv (homebrew installed)\n+     - `brew install direnv`\n+- fly (grab this from Concourse.ci)\n+    - [fly-binary-darwin](https://ci.concourse.ci/api/v1/cli?arch=amd64&platform=darwin)\n+    - [fly-binary-linux](https://ci.concourse.ci/api/v1/cli?arch=amd64&platform=linux)\n+- go (you can install via homebrew)\n+    - `brew install go`\n+- ginkgo (testing framework for go, assuming you grab go first)\n+    - `go get github.com/onsi/ginkgo/ginkgo`\n+- postgresql (you can also install this via homebrew)\n+    - `brew install postgresql`\n+- virtualbox\n+    - `brew install virtualbox`\n+- vagrant\n+    - `brew install vagrant`\n+\n+### Setting Up a Bosh-lite\n+Concourse is a bosh release, so you're probably going to want to setup a \n+bosh-lite that you can deploy concourse to before pushing your changes\n+to the develop branch.\n+\n+Jump over to the bosh-lite [repo](https://github.com/cloudfoundry/bosh-lite) \n+and follow the instructions provided \n+[for virtual-box](https://github.com/cloudfoundry/bosh-lite)\n+(we recommend virtual-box for the smoothest bootstrapping experience).\n+\n+### Grabbing the Concourse Release\n+All set with bosh-lite?  Great!  Let's grab the concourse release \n+(just clone the project you are reading this documentation in) and walk \n+through a deployment:\n+\n+- You may notice that Concourse ships with a .envrc file.  We use a tool \n+called direnv (mentioned above) to mange your `$GOPATH`.\n+- We make extensive use of submodules in this release, you will want to\n+run `git submodule update --init` within your Course clone.\n+\n+You should now be all set to bosh deploy Concourse.  A bosh-lite \n+manifest has been provided for you in the manifests directory.\n+\n+### Making Changes\n+\n+Any changes you would like to make should be done at the submodule\n+level.  This will allow you to run a local testflight easily.\n+\n+### Your First Testflight\n+\n+This is where your bosh-lite finally comes in handy.\n+\n+You're going to deploy your changes to the various submodules\n+directly to your bosh-lite, this requires a couple of things:\n+\n+- Commit all of the changes directly to the submodules\n+(just don't push them)\n+- Upload a garden-linux-release to your bosh-lite,\n+you can grab it [here](https://github.com/concourse/concourse/releases)\n+- cd to the top-level of testflight (it's a submodule)\n+and run `./scripts/local-test`\n+- Sit back and wait for the testflight to pass\n+\n+### Running ATC Suite\n+\n+ATC tests are shockingly simple to run (assuming you have","path":"CONTRIBUTING.md","position":92,"original_position":92,"commit_id":"4624e5216e5e59b5f6f941598ea8c7cd16df41fb","original_commit_id":"4624e5216e5e59b5f6f941598ea8c7cd16df41fb","user":{"login":"vito","id":1880,"avatar_url":"https://avatars.githubusercontent.com/u/1880?v=3","gravatar_id":"","url":"https://api.github.com/users/vito","html_url":"https://github.com/vito","followers_url":"https://api.github.com/users/vito/followers","following_url":"https://api.github.com/users/vito/following{/other_user}","gists_url":"https://api.github.com/users/vito/gists{/gist_id}","starred_url":"https://api.github.com/users/vito/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vito/subscriptions","organizations_url":"https://api.github.com/users/vito/orgs","repos_url":"https://api.github.com/users/vito/repos","events_url":"https://api.github.com/users/vito/events{/privacy}","received_events_url":"https://api.github.com/users/vito/received_events","type":"User","site_admin":false},"body":"I think they need a bit more setup now; possibly phantom.js? Maybe we shouldn't say shockingly simple anymore. :P","created_at":"2015-05-16T19:02:47Z","updated_at":"2015-05-16T19:02:47Z","html_url":"https://github.com/concourse/concourse/pull/37#discussion_r30463601","pull_request_url":"https://api.github.com/repos/concourse/concourse/pulls/37","_links":{"self":{"href":"https://api.github.com/repos/concourse/concourse/pulls/comments/30463601"},"html":{"href":"https://github.com/concourse/concourse/pull/37#discussion_r30463601"},"pull_request":{"href":"https://api.github.com/repos/concourse/concourse/pulls/37"}}},"pull_request":{"url":"https://api.github.com/repos/concourse/concourse/pulls/37","id":35391167,"html_url":"https://github.com/concourse/concourse/pull/37","diff_url":"https://github.com/concourse/concourse/pull/37.diff","patch_url":"https://github.com/concourse/concourse/pull/37.patch","issue_url":"https://api.github.com/repos/concourse/concourse/issues/37","number":37,"state":"open","locked":false,"title":"Adds first draft of Contributing documentation","user":{"login":"zachgersh","id":689411,"avatar_url":"https://avatars.githubusercontent.com/u/689411?v=3","gravatar_id":"","url":"https://api.github.com/users/zachgersh","html_url":"https://github.com/zachgersh","followers_url":"https://api.github.com/users/zachgersh/followers","following_url":"https://api.github.com/users/zachgersh/following{/other_user}","gists_url":"https://api.github.com/users/zachgersh/gists{/gist_id}","starred_url":"https://api.github.com/users/zachgersh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zachgersh/subscriptions","organizations_url":"https://api.github.com/users/zachgersh/orgs","repos_url":"https://api.github.com/users/zachgersh/repos","events_url":"https://api.github.com/users/zachgersh/events{/privacy}","received_events_url":"https://api.github.com/users/zachgersh/received_events","type":"User","site_admin":false},"body":"- very rough\r\n- definitely just looking for structure comments in general\r\n\r\n[#93750718]","created_at":"2015-05-14T03:24:40Z","updated_at":"2015-05-16T19:02:47Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fcef3dffeadfaa0976d8d90594d96ac0621cb15b","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/concourse/concourse/pulls/37/commits","review_comments_url":"https://api.github.com/repos/concourse/concourse/pulls/37/comments","review_comment_url":"https://api.github.com/repos/concourse/concourse/pulls/comments{/number}","comments_url":"https://api.github.com/repos/concourse/concourse/issues/37/comments","statuses_url":"https://api.github.com/repos/concourse/concourse/statuses/4624e5216e5e59b5f6f941598ea8c7cd16df41fb","head":{"label":"zachgersh:develop","ref":"develop","sha":"4624e5216e5e59b5f6f941598ea8c7cd16df41fb","user":{"login":"zachgersh","id":689411,"avatar_url":"https://avatars.githubusercontent.com/u/689411?v=3","gravatar_id":"","url":"https://api.github.com/users/zachgersh","html_url":"https://github.com/zachgersh","followers_url":"https://api.github.com/users/zachgersh/followers","following_url":"https://api.github.com/users/zachgersh/following{/other_user}","gists_url":"https://api.github.com/users/zachgersh/gists{/gist_id}","starred_url":"https://api.github.com/users/zachgersh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zachgersh/subscriptions","organizations_url":"https://api.github.com/users/zachgersh/orgs","repos_url":"https://api.github.com/users/zachgersh/repos","events_url":"https://api.github.com/users/zachgersh/events{/privacy}","received_events_url":"https://api.github.com/users/zachgersh/received_events","type":"User","site_admin":false},"repo":{"id":35585259,"name":"concourse","full_name":"zachgersh/concourse","owner":{"login":"zachgersh","id":689411,"avatar_url":"https://avatars.githubusercontent.com/u/689411?v=3","gravatar_id":"","url":"https://api.github.com/users/zachgersh","html_url":"https://github.com/zachgersh","followers_url":"https://api.github.com/users/zachgersh/followers","following_url":"https://api.github.com/users/zachgersh/following{/other_user}","gists_url":"https://api.github.com/users/zachgersh/gists{/gist_id}","starred_url":"https://api.github.com/users/zachgersh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zachgersh/subscriptions","organizations_url":"https://api.github.com/users/zachgersh/orgs","repos_url":"https://api.github.com/users/zachgersh/repos","events_url":"https://api.github.com/users/zachgersh/events{/privacy}","received_events_url":"https://api.github.com/users/zachgersh/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/zachgersh/concourse","description":"BOSH Release","fork":true,"url":"https://api.github.com/repos/zachgersh/concourse","forks_url":"https://api.github.com/repos/zachgersh/concourse/forks","keys_url":"https://api.github.com/repos/zachgersh/concourse/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zachgersh/concourse/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zachgersh/concourse/teams","hooks_url":"https://api.github.com/repos/zachgersh/concourse/hooks","issue_events_url":"https://api.github.com/repos/zachgersh/concourse/issues/events{/number}","events_url":"https://api.github.com/repos/zachgersh/concourse/events","assignees_url":"https://api.github.com/repos/zachgersh/concourse/assignees{/user}","branches_url":"https://api.github.com/repos/zachgersh/concourse/branches{/branch}","tags_url":"https://api.github.com/repos/zachgersh/concourse/tags","blobs_url":"https://api.github.com/repos/zachgersh/concourse/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zachgersh/concourse/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zachgersh/concourse/git/refs{/sha}","trees_url":"https://api.github.com/repos/zachgersh/concourse/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zachgersh/concourse/statuses/{sha}","languages_url":"https://api.github.com/repos/zachgersh/concourse/languages","stargazers_url":"https://api.github.com/repos/zachgersh/concourse/stargazers","contributors_url":"https://api.github.com/repos/zachgersh/concourse/contributors","subscribers_url":"https://api.github.com/repos/zachgersh/concourse/subscribers","subscription_url":"https://api.github.com/repos/zachgersh/concourse/subscription","commits_url":"https://api.github.com/repos/zachgersh/concourse/commits{/sha}","git_commits_url":"https://api.github.com/repos/zachgersh/concourse/git/commits{/sha}","comments_url":"https://api.github.com/repos/zachgersh/concourse/comments{/number}","issue_comment_url":"https://api.github.com/repos/zachgersh/concourse/issues/comments{/number}","contents_url":"https://api.github.com/repos/zachgersh/concourse/contents/{+path}","compare_url":"https://api.github.com/repos/zachgersh/concourse/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zachgersh/concourse/merges","archive_url":"https://api.github.com/repos/zachgersh/concourse/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zachgersh/concourse/downloads","issues_url":"https://api.github.com/repos/zachgersh/concourse/issues{/number}","pulls_url":"https://api.github.com/repos/zachgersh/concourse/pulls{/number}","milestones_url":"https://api.github.com/repos/zachgersh/concourse/milestones{/number}","notifications_url":"https://api.github.com/repos/zachgersh/concourse/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zachgersh/concourse/labels{/name}","releases_url":"https://api.github.com/repos/zachgersh/concourse/releases{/id}","created_at":"2015-05-14T02:04:37Z","updated_at":"2015-05-14T02:04:38Z","pushed_at":"2015-05-16T18:31:42Z","git_url":"git://github.com/zachgersh/concourse.git","ssh_url":"git@github.com:zachgersh/concourse.git","clone_url":"https://github.com/zachgersh/concourse.git","svn_url":"https://github.com/zachgersh/concourse","homepage":null,"size":1769,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":true,"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":"concourse:develop","ref":"develop","sha":"478906a0d358ebb6a3f0db467669dcae98c548b6","user":{"login":"concourse","id":7809479,"avatar_url":"https://avatars.githubusercontent.com/u/7809479?v=3","gravatar_id":"","url":"https://api.github.com/users/concourse","html_url":"https://github.com/concourse","followers_url":"https://api.github.com/users/concourse/followers","following_url":"https://api.github.com/users/concourse/following{/other_user}","gists_url":"https://api.github.com/users/concourse/gists{/gist_id}","starred_url":"https://api.github.com/users/concourse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/concourse/subscriptions","organizations_url":"https://api.github.com/users/concourse/orgs","repos_url":"https://api.github.com/users/concourse/repos","events_url":"https://api.github.com/users/concourse/events{/privacy}","received_events_url":"https://api.github.com/users/concourse/received_events","type":"Organization","site_admin":false},"repo":{"id":18950460,"name":"concourse","full_name":"concourse/concourse","owner":{"login":"concourse","id":7809479,"avatar_url":"https://avatars.githubusercontent.com/u/7809479?v=3","gravatar_id":"","url":"https://api.github.com/users/concourse","html_url":"https://github.com/concourse","followers_url":"https://api.github.com/users/concourse/followers","following_url":"https://api.github.com/users/concourse/following{/other_user}","gists_url":"https://api.github.com/users/concourse/gists{/gist_id}","starred_url":"https://api.github.com/users/concourse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/concourse/subscriptions","organizations_url":"https://api.github.com/users/concourse/orgs","repos_url":"https://api.github.com/users/concourse/repos","events_url":"https://api.github.com/users/concourse/events{/privacy}","received_events_url":"https://api.github.com/users/concourse/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/concourse/concourse","description":"BOSH Release","fork":false,"url":"https://api.github.com/repos/concourse/concourse","forks_url":"https://api.github.com/repos/concourse/concourse/forks","keys_url":"https://api.github.com/repos/concourse/concourse/keys{/key_id}","collaborators_url":"https://api.github.com/repos/concourse/concourse/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/concourse/concourse/teams","hooks_url":"https://api.github.com/repos/concourse/concourse/hooks","issue_events_url":"https://api.github.com/repos/concourse/concourse/issues/events{/number}","events_url":"https://api.github.com/repos/concourse/concourse/events","assignees_url":"https://api.github.com/repos/concourse/concourse/assignees{/user}","branches_url":"https://api.github.com/repos/concourse/concourse/branches{/branch}","tags_url":"https://api.github.com/repos/concourse/concourse/tags","blobs_url":"https://api.github.com/repos/concourse/concourse/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/concourse/concourse/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/concourse/concourse/git/refs{/sha}","trees_url":"https://api.github.com/repos/concourse/concourse/git/trees{/sha}","statuses_url":"https://api.github.com/repos/concourse/concourse/statuses/{sha}","languages_url":"https://api.github.com/repos/concourse/concourse/languages","stargazers_url":"https://api.github.com/repos/concourse/concourse/stargazers","contributors_url":"https://api.github.com/repos/concourse/concourse/contributors","subscribers_url":"https://api.github.com/repos/concourse/concourse/subscribers","subscription_url":"https://api.github.com/repos/concourse/concourse/subscription","commits_url":"https://api.github.com/repos/concourse/concourse/commits{/sha}","git_commits_url":"https://api.github.com/repos/concourse/concourse/git/commits{/sha}","comments_url":"https://api.github.com/repos/concourse/concourse/comments{/number}","issue_comment_url":"https://api.github.com/repos/concourse/concourse/issues/comments{/number}","contents_url":"https://api.github.com/repos/concourse/concourse/contents/{+path}","compare_url":"https://api.github.com/repos/concourse/concourse/compare/{base}...{head}","merges_url":"https://api.github.com/repos/concourse/concourse/merges","archive_url":"https://api.github.com/repos/concourse/concourse/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/concourse/concourse/downloads","issues_url":"https://api.github.com/repos/concourse/concourse/issues{/number}","pulls_url":"https://api.github.com/repos/concourse/concourse/pulls{/number}","milestones_url":"https://api.github.com/repos/concourse/concourse/milestones{/number}","notifications_url":"https://api.github.com/repos/concourse/concourse/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/concourse/concourse/labels{/name}","releases_url":"https://api.github.com/repos/concourse/concourse/releases{/id}","created_at":"2014-04-19T20:45:45Z","updated_at":"2015-05-14T05:28:23Z","pushed_at":"2015-05-16T18:31:43Z","git_url":"git://github.com/concourse/concourse.git","ssh_url":"git@github.com:concourse/concourse.git","clone_url":"https://github.com/concourse/concourse.git","svn_url":"https://github.com/concourse/concourse","homepage":null,"size":6128,"stargazers_count":48,"watchers_count":48,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":20,"mirror_url":null,"open_issues_count":6,"forks":20,"open_issues":6,"watchers":48,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/concourse/concourse/pulls/37"},"html":{"href":"https://github.com/concourse/concourse/pull/37"},"issue":{"href":"https://api.github.com/repos/concourse/concourse/issues/37"},"comments":{"href":"https://api.github.com/repos/concourse/concourse/issues/37/comments"},"review_comments":{"href":"https://api.github.com/repos/concourse/concourse/pulls/37/comments"},"review_comment":{"href":"https://api.github.com/repos/concourse/concourse/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/concourse/concourse/pulls/37/commits"},"statuses":{"href":"https://api.github.com/repos/concourse/concourse/statuses/4624e5216e5e59b5f6f941598ea8c7cd16df41fb"}}}}