{"action":"created","comment":{"url":"https://api.github.com/repos/gruntwork-io/boilerplate/pulls/comments/72536069","id":72536069,"diff_hunk":"@@ -0,0 +1,168 @@\n+package config\n+\n+import (\n+\t\"testing\"\n+\t\"github.com/stretchr/testify/assert\"\n+\t\"reflect\"\n+\t\"gopkg.in/yaml.v2\"\n+\t\"github.com/gruntwork-io/boilerplate/errors\"\n+)\n+\n+func TestParseBoilerplateConfigEmpty(t *testing.T) {\n+\tt.Parallel()\n+\n+\tactual, err := ParseBoilerplateConfig([]byte(\"\"))\n+\texpected := &BoilerplateConfig{}\n+\n+\tassert.Nil(t, err)\n+\tassert.Equal(t, expected, actual)\n+}\n+\n+func TestParseBoilerplateConfigInvalid(t *testing.T) {\n+\tt.Parallel()\n+\n+\t_, err := ParseBoilerplateConfig([]byte(\"not-a-valid-yaml-file\"))\n+\n+\tassert.NotNil(t, err)\n+\n+\tunwrapped := errors.Unwrap(err)\n+\t_, isYamlTypeError := unwrapped.(*yaml.TypeError)\n+\tassert.True(t, isYamlTypeError, \"Expected a YAML type error for an invalid yaml file but got %s\", reflect.TypeOf(unwrapped))\n+}\n+\n+func TestParseBoilerplateConfigEmptyVariables(t *testing.T) {\n+\tt.Parallel()\n+\n+\tconfigContents := `variables:`\n+\n+\tactual, err := ParseBoilerplateConfig([]byte(configContents))\n+\texpected := &BoilerplateConfig{}\n+\n+\tassert.Nil(t, err)\n+\tassert.Equal(t, expected, actual)\n+}\n+\n+// YAML is whitespace sensitive, so we need to be careful that we don't introduce unnecessary indentation\n+const CONFIG_ONE_VARIABLE_MINIMAL =\n+`variables:\n+  - name: foo\n+`\n+\n+func TestParseBoilerplateConfigOneVariableMinimal(t *testing.T) {\n+\tt.Parallel()\n+\n+\tactual, err := ParseBoilerplateConfig([]byte(CONFIG_ONE_VARIABLE_MINIMAL))\n+\texpected := &BoilerplateConfig{\n+\t\tVariables: []Variable{\n+\t\t\tVariable{Name: \"foo\"},\n+\t\t},\n+\t}\n+\n+\tassert.Nil(t, err)\n+\tassert.Equal(t, expected, actual)\n+}\n+\n+// YAML is whitespace sensitive, so we need to be careful that we don't introduce unnecessary indentation\n+const CONFIG_ONE_VARIABLE_FULL =\n+`variables:\n+  - name: foo\n+    prompt: prompt\n+    default: default\n+`\n+\n+func TestParseBoilerplateConfigOneVariableFull(t *testing.T) {\n+\tt.Parallel()\n+\n+\tactual, err := ParseBoilerplateConfig([]byte(CONFIG_ONE_VARIABLE_FULL))\n+\texpected := &BoilerplateConfig{\n+\t\tVariables: []Variable{\n+\t\t\tVariable{Name: \"foo\", Prompt: \"prompt\", Default: \"default\"},\n+\t\t},\n+\t}\n+\n+\tassert.Nil(t, err)\n+\tassert.Equal(t, expected, actual)\n+}\n+\n+// YAML is whitespace sensitive, so we need to be careful that we don't introduce unnecessary indentation\n+const CONFIG_ONE_VARIABLE_MISSING_NAME =\n+`variables:\n+  - prompt: prompt\n+    default: default\n+`\n+\n+func TestParseBoilerplateConfigOneVariableMissingName(t *testing.T) {\n+\tt.Parallel()\n+\n+\t_, err := ParseBoilerplateConfig([]byte(CONFIG_ONE_VARIABLE_MISSING_NAME))\n+\n+\tassert.NotNil(t, err)\n+\tassert.True(t, errors.IsError(err, VariableMissingName), \"Expected a VariableMissingName error but got %s\", reflect.TypeOf(err))\n+}\n+\n+// YAML is whitespace sensitive, so we need to be careful that we don't introduce unnecessary indentation\n+const CONFIG_MULTIPLE_VARIABLES =\n+`variables:\n+  - name: foo\n+\n+  - name: bar\n+    prompt: prompt\n+\n+  - name: baz\n+    prompt: prompt\n+    default: default\n+`\n+\n+func TestParseBoilerplateConfigMultipleVariables(t *testing.T) {\n+\tt.Parallel()\n+\n+\tactual, err := ParseBoilerplateConfig([]byte(CONFIG_MULTIPLE_VARIABLES))\n+\texpected := &BoilerplateConfig{\n+\t\tVariables: []Variable{\n+\t\t\tVariable{Name: \"foo\"},\n+\t\t\tVariable{Name: \"bar\", Prompt: \"prompt\"},\n+\t\t\tVariable{Name: \"baz\", Prompt: \"prompt\", Default: \"default\"},\n+\t\t},\n+\t}\n+\n+\tassert.Nil(t, err)\n+\tassert.Equal(t, expected, actual)\n+}\n+\n+func TestLoadBoilerPlateConfigFullConfig(t *testing.T) {\n+\tt.Parallel()\n+\n+\tactual, err := LoadBoilerPlateConfig(&BoilerplateOptions{TemplateFolder: \"../test-fixtures/config-test/full-config\"})\n+\texpected := &BoilerplateConfig{\n+\t\tVariables: []Variable{\n+\t\t\tVariable{Name: \"foo\"},\n+\t\t\tVariable{Name: \"bar\", Prompt: \"prompt\"},\n+\t\t\tVariable{Name: \"baz\", Prompt: \"prompt\", Default: \"default\"},\n+\t\t},\n+\t}\n+\n+\tassert.Nil(t, err)\n+\tassert.Equal(t, expected, actual)\n+}\n+\n+func TestLoadBoilerPlateConfigNoConfig(t *testing.T) {\n+\tt.Parallel()\n+\n+\tactual, err := LoadBoilerPlateConfig(&BoilerplateOptions{TemplateFolder: \"../test-fixtures/config-test/no-config\"})\n+\texpected := &BoilerplateConfig{}\n+\n+\tassert.Nil(t, err)\n+\tassert.Equal(t, expected, actual)\n+}\n+\n+func TestLoadBoilerPlateConfigInvalidConfig(t *testing.T) {\n+\tt.Parallel()\n+\n+\t_, err := LoadBoilerPlateConfig(&BoilerplateOptions{TemplateFolder: \"../test-fixtures/config-test/invalid-config\"})\n+\n+\tassert.NotNil(t, err)\n+\n+\tunwrapped := errors.Unwrap(err)\n+\t_, isYamlTypeError := unwrapped.(*yaml.TypeError)\n+\tassert.True(t, isYamlTypeError, \"Expected a YAML type error for an invalid yaml file but got %s\", reflect.TypeOf(unwrapped))\n+}","path":"config/config_test.go","position":31,"original_position":168,"commit_id":"0f99bae3c19ccc47a421fc154a46b405861be1f4","original_commit_id":"0f99bae3c19ccc47a421fc154a46b405861be1f4","user":{"login":"josh-padnick","id":4295964,"avatar_url":"https://avatars.githubusercontent.com/u/4295964?v=3","gravatar_id":"","url":"https://api.github.com/users/josh-padnick","html_url":"https://github.com/josh-padnick","followers_url":"https://api.github.com/users/josh-padnick/followers","following_url":"https://api.github.com/users/josh-padnick/following{/other_user}","gists_url":"https://api.github.com/users/josh-padnick/gists{/gist_id}","starred_url":"https://api.github.com/users/josh-padnick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/josh-padnick/subscriptions","organizations_url":"https://api.github.com/users/josh-padnick/orgs","repos_url":"https://api.github.com/users/josh-padnick/repos","events_url":"https://api.github.com/users/josh-padnick/events{/privacy}","received_events_url":"https://api.github.com/users/josh-padnick/received_events","type":"User","site_admin":false},"body":"Test coverage seems pretty solid here.","created_at":"2016-07-27T22:27:25Z","updated_at":"2016-07-27T22:27:25Z","html_url":"https://github.com/gruntwork-io/boilerplate/pull/1#discussion_r72536069","pull_request_url":"https://api.github.com/repos/gruntwork-io/boilerplate/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/gruntwork-io/boilerplate/pulls/comments/72536069"},"html":{"href":"https://github.com/gruntwork-io/boilerplate/pull/1#discussion_r72536069"},"pull_request":{"href":"https://api.github.com/repos/gruntwork-io/boilerplate/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/gruntwork-io/boilerplate/pulls/1","id":73480121,"html_url":"https://github.com/gruntwork-io/boilerplate/pull/1","diff_url":"https://github.com/gruntwork-io/boilerplate/pull/1.diff","patch_url":"https://github.com/gruntwork-io/boilerplate/pull/1.patch","issue_url":"https://api.github.com/repos/gruntwork-io/boilerplate/issues/1","number":1,"state":"closed","locked":false,"title":"v0.0.1 of boilerplate","user":{"login":"brikis98","id":711908,"avatar_url":"https://avatars.githubusercontent.com/u/711908?v=3","gravatar_id":"","url":"https://api.github.com/users/brikis98","html_url":"https://github.com/brikis98","followers_url":"https://api.github.com/users/brikis98/followers","following_url":"https://api.github.com/users/brikis98/following{/other_user}","gists_url":"https://api.github.com/users/brikis98/gists{/gist_id}","starred_url":"https://api.github.com/users/brikis98/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brikis98/subscriptions","organizations_url":"https://api.github.com/users/brikis98/orgs","repos_url":"https://api.github.com/users/brikis98/repos","events_url":"https://api.github.com/users/brikis98/events{/privacy}","received_events_url":"https://api.github.com/users/brikis98/received_events","type":"User","site_admin":false},"body":"This is v0.0.1 of our new project generator, which I’ve decided to call “boilerplate” instead of “gruntwork-generator”.\r\n\r\nFunctionality implemented so far:\r\n\r\n1. Use a yaml file to define variables (and perhaps other configs in the future). JSON is too syntax heavy and doesn’t allow comments. HCL doesn’t support objects nested in lists. YAML seems like a well-known standard that keeps things clean & simple.\r\n1. Reading the values for variables from command line options, var files, and by prompting the user.\r\n1. Generating a project by copying all files from the source dir to the destination dir, passing text files through the Go template engine to allow variables to be filled in and other dynamic behavior.\r\n1. Support for custom template helpers. One is implemented now, called `snippet`, which lets you embed snippets of other files in the current file. Very handy for documentation.\r\n1. Tests.\r\n1. Examples.\r\n1. Docs.\r\n\r\nPlease see the README in the `_docs` folder for details. \r\n\r\nRemaining work:\r\n\r\n1. ~~Automatically build the binaries and push them to GitHub for each release.~~\r\n1. ~~Auto generate the root `README.md` file from the `_docs/README.md` file on release.~~\r\n1. Add lots more examples.","created_at":"2016-06-11T22:26:01Z","updated_at":"2016-07-27T22:27:25Z","closed_at":"2016-07-01T21:04:39Z","merged_at":"2016-07-01T21:04:39Z","merge_commit_sha":"88a70b5296f46d55f02d45b14357dcc2aa7d8714","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/gruntwork-io/boilerplate/pulls/1/commits","review_comments_url":"https://api.github.com/repos/gruntwork-io/boilerplate/pulls/1/comments","review_comment_url":"https://api.github.com/repos/gruntwork-io/boilerplate/pulls/comments{/number}","comments_url":"https://api.github.com/repos/gruntwork-io/boilerplate/issues/1/comments","statuses_url":"https://api.github.com/repos/gruntwork-io/boilerplate/statuses/0f99bae3c19ccc47a421fc154a46b405861be1f4","head":{"label":"gruntwork-io:v0.0.1","ref":"v0.0.1","sha":"0f99bae3c19ccc47a421fc154a46b405861be1f4","user":{"login":"gruntwork-io","id":17118990,"avatar_url":"https://avatars.githubusercontent.com/u/17118990?v=3","gravatar_id":"","url":"https://api.github.com/users/gruntwork-io","html_url":"https://github.com/gruntwork-io","followers_url":"https://api.github.com/users/gruntwork-io/followers","following_url":"https://api.github.com/users/gruntwork-io/following{/other_user}","gists_url":"https://api.github.com/users/gruntwork-io/gists{/gist_id}","starred_url":"https://api.github.com/users/gruntwork-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gruntwork-io/subscriptions","organizations_url":"https://api.github.com/users/gruntwork-io/orgs","repos_url":"https://api.github.com/users/gruntwork-io/repos","events_url":"https://api.github.com/users/gruntwork-io/events{/privacy}","received_events_url":"https://api.github.com/users/gruntwork-io/received_events","type":"Organization","site_admin":false},"repo":{"id":60842152,"name":"boilerplate","full_name":"gruntwork-io/boilerplate","owner":{"login":"gruntwork-io","id":17118990,"avatar_url":"https://avatars.githubusercontent.com/u/17118990?v=3","gravatar_id":"","url":"https://api.github.com/users/gruntwork-io","html_url":"https://github.com/gruntwork-io","followers_url":"https://api.github.com/users/gruntwork-io/followers","following_url":"https://api.github.com/users/gruntwork-io/following{/other_user}","gists_url":"https://api.github.com/users/gruntwork-io/gists{/gist_id}","starred_url":"https://api.github.com/users/gruntwork-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gruntwork-io/subscriptions","organizations_url":"https://api.github.com/users/gruntwork-io/orgs","repos_url":"https://api.github.com/users/gruntwork-io/repos","events_url":"https://api.github.com/users/gruntwork-io/events{/privacy}","received_events_url":"https://api.github.com/users/gruntwork-io/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/gruntwork-io/boilerplate","description":"A tool for generating files and folders (\"boilerplate\") from a set of templates","fork":false,"url":"https://api.github.com/repos/gruntwork-io/boilerplate","forks_url":"https://api.github.com/repos/gruntwork-io/boilerplate/forks","keys_url":"https://api.github.com/repos/gruntwork-io/boilerplate/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gruntwork-io/boilerplate/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gruntwork-io/boilerplate/teams","hooks_url":"https://api.github.com/repos/gruntwork-io/boilerplate/hooks","issue_events_url":"https://api.github.com/repos/gruntwork-io/boilerplate/issues/events{/number}","events_url":"https://api.github.com/repos/gruntwork-io/boilerplate/events","assignees_url":"https://api.github.com/repos/gruntwork-io/boilerplate/assignees{/user}","branches_url":"https://api.github.com/repos/gruntwork-io/boilerplate/branches{/branch}","tags_url":"https://api.github.com/repos/gruntwork-io/boilerplate/tags","blobs_url":"https://api.github.com/repos/gruntwork-io/boilerplate/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gruntwork-io/boilerplate/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gruntwork-io/boilerplate/git/refs{/sha}","trees_url":"https://api.github.com/repos/gruntwork-io/boilerplate/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gruntwork-io/boilerplate/statuses/{sha}","languages_url":"https://api.github.com/repos/gruntwork-io/boilerplate/languages","stargazers_url":"https://api.github.com/repos/gruntwork-io/boilerplate/stargazers","contributors_url":"https://api.github.com/repos/gruntwork-io/boilerplate/contributors","subscribers_url":"https://api.github.com/repos/gruntwork-io/boilerplate/subscribers","subscription_url":"https://api.github.com/repos/gruntwork-io/boilerplate/subscription","commits_url":"https://api.github.com/repos/gruntwork-io/boilerplate/commits{/sha}","git_commits_url":"https://api.github.com/repos/gruntwork-io/boilerplate/git/commits{/sha}","comments_url":"https://api.github.com/repos/gruntwork-io/boilerplate/comments{/number}","issue_comment_url":"https://api.github.com/repos/gruntwork-io/boilerplate/issues/comments{/number}","contents_url":"https://api.github.com/repos/gruntwork-io/boilerplate/contents/{+path}","compare_url":"https://api.github.com/repos/gruntwork-io/boilerplate/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gruntwork-io/boilerplate/merges","archive_url":"https://api.github.com/repos/gruntwork-io/boilerplate/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gruntwork-io/boilerplate/downloads","issues_url":"https://api.github.com/repos/gruntwork-io/boilerplate/issues{/number}","pulls_url":"https://api.github.com/repos/gruntwork-io/boilerplate/pulls{/number}","milestones_url":"https://api.github.com/repos/gruntwork-io/boilerplate/milestones{/number}","notifications_url":"https://api.github.com/repos/gruntwork-io/boilerplate/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gruntwork-io/boilerplate/labels{/name}","releases_url":"https://api.github.com/repos/gruntwork-io/boilerplate/releases{/id}","deployments_url":"https://api.github.com/repos/gruntwork-io/boilerplate/deployments","created_at":"2016-06-10T11:09:38Z","updated_at":"2016-07-09T22:06:04Z","pushed_at":"2016-07-09T22:08:01Z","git_url":"git://github.com/gruntwork-io/boilerplate.git","ssh_url":"git@github.com:gruntwork-io/boilerplate.git","clone_url":"https://github.com/gruntwork-io/boilerplate.git","svn_url":"https://github.com/gruntwork-io/boilerplate","homepage":"http://www.gruntwork.io","size":804,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":true,"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":"gruntwork-io:master","ref":"master","sha":"454dfa618845fa73fb82aec48c9a7aea696d6ad0","user":{"login":"gruntwork-io","id":17118990,"avatar_url":"https://avatars.githubusercontent.com/u/17118990?v=3","gravatar_id":"","url":"https://api.github.com/users/gruntwork-io","html_url":"https://github.com/gruntwork-io","followers_url":"https://api.github.com/users/gruntwork-io/followers","following_url":"https://api.github.com/users/gruntwork-io/following{/other_user}","gists_url":"https://api.github.com/users/gruntwork-io/gists{/gist_id}","starred_url":"https://api.github.com/users/gruntwork-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gruntwork-io/subscriptions","organizations_url":"https://api.github.com/users/gruntwork-io/orgs","repos_url":"https://api.github.com/users/gruntwork-io/repos","events_url":"https://api.github.com/users/gruntwork-io/events{/privacy}","received_events_url":"https://api.github.com/users/gruntwork-io/received_events","type":"Organization","site_admin":false},"repo":{"id":60842152,"name":"boilerplate","full_name":"gruntwork-io/boilerplate","owner":{"login":"gruntwork-io","id":17118990,"avatar_url":"https://avatars.githubusercontent.com/u/17118990?v=3","gravatar_id":"","url":"https://api.github.com/users/gruntwork-io","html_url":"https://github.com/gruntwork-io","followers_url":"https://api.github.com/users/gruntwork-io/followers","following_url":"https://api.github.com/users/gruntwork-io/following{/other_user}","gists_url":"https://api.github.com/users/gruntwork-io/gists{/gist_id}","starred_url":"https://api.github.com/users/gruntwork-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gruntwork-io/subscriptions","organizations_url":"https://api.github.com/users/gruntwork-io/orgs","repos_url":"https://api.github.com/users/gruntwork-io/repos","events_url":"https://api.github.com/users/gruntwork-io/events{/privacy}","received_events_url":"https://api.github.com/users/gruntwork-io/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/gruntwork-io/boilerplate","description":"A tool for generating files and folders (\"boilerplate\") from a set of templates","fork":false,"url":"https://api.github.com/repos/gruntwork-io/boilerplate","forks_url":"https://api.github.com/repos/gruntwork-io/boilerplate/forks","keys_url":"https://api.github.com/repos/gruntwork-io/boilerplate/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gruntwork-io/boilerplate/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gruntwork-io/boilerplate/teams","hooks_url":"https://api.github.com/repos/gruntwork-io/boilerplate/hooks","issue_events_url":"https://api.github.com/repos/gruntwork-io/boilerplate/issues/events{/number}","events_url":"https://api.github.com/repos/gruntwork-io/boilerplate/events","assignees_url":"https://api.github.com/repos/gruntwork-io/boilerplate/assignees{/user}","branches_url":"https://api.github.com/repos/gruntwork-io/boilerplate/branches{/branch}","tags_url":"https://api.github.com/repos/gruntwork-io/boilerplate/tags","blobs_url":"https://api.github.com/repos/gruntwork-io/boilerplate/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gruntwork-io/boilerplate/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gruntwork-io/boilerplate/git/refs{/sha}","trees_url":"https://api.github.com/repos/gruntwork-io/boilerplate/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gruntwork-io/boilerplate/statuses/{sha}","languages_url":"https://api.github.com/repos/gruntwork-io/boilerplate/languages","stargazers_url":"https://api.github.com/repos/gruntwork-io/boilerplate/stargazers","contributors_url":"https://api.github.com/repos/gruntwork-io/boilerplate/contributors","subscribers_url":"https://api.github.com/repos/gruntwork-io/boilerplate/subscribers","subscription_url":"https://api.github.com/repos/gruntwork-io/boilerplate/subscription","commits_url":"https://api.github.com/repos/gruntwork-io/boilerplate/commits{/sha}","git_commits_url":"https://api.github.com/repos/gruntwork-io/boilerplate/git/commits{/sha}","comments_url":"https://api.github.com/repos/gruntwork-io/boilerplate/comments{/number}","issue_comment_url":"https://api.github.com/repos/gruntwork-io/boilerplate/issues/comments{/number}","contents_url":"https://api.github.com/repos/gruntwork-io/boilerplate/contents/{+path}","compare_url":"https://api.github.com/repos/gruntwork-io/boilerplate/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gruntwork-io/boilerplate/merges","archive_url":"https://api.github.com/repos/gruntwork-io/boilerplate/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gruntwork-io/boilerplate/downloads","issues_url":"https://api.github.com/repos/gruntwork-io/boilerplate/issues{/number}","pulls_url":"https://api.github.com/repos/gruntwork-io/boilerplate/pulls{/number}","milestones_url":"https://api.github.com/repos/gruntwork-io/boilerplate/milestones{/number}","notifications_url":"https://api.github.com/repos/gruntwork-io/boilerplate/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gruntwork-io/boilerplate/labels{/name}","releases_url":"https://api.github.com/repos/gruntwork-io/boilerplate/releases{/id}","deployments_url":"https://api.github.com/repos/gruntwork-io/boilerplate/deployments","created_at":"2016-06-10T11:09:38Z","updated_at":"2016-07-09T22:06:04Z","pushed_at":"2016-07-09T22:08:01Z","git_url":"git://github.com/gruntwork-io/boilerplate.git","ssh_url":"git@github.com:gruntwork-io/boilerplate.git","clone_url":"https://github.com/gruntwork-io/boilerplate.git","svn_url":"https://github.com/gruntwork-io/boilerplate","homepage":"http://www.gruntwork.io","size":804,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":true,"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"}},"_links":{"self":{"href":"https://api.github.com/repos/gruntwork-io/boilerplate/pulls/1"},"html":{"href":"https://github.com/gruntwork-io/boilerplate/pull/1"},"issue":{"href":"https://api.github.com/repos/gruntwork-io/boilerplate/issues/1"},"comments":{"href":"https://api.github.com/repos/gruntwork-io/boilerplate/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/gruntwork-io/boilerplate/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/gruntwork-io/boilerplate/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/gruntwork-io/boilerplate/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/gruntwork-io/boilerplate/statuses/0f99bae3c19ccc47a421fc154a46b405861be1f4"}}}}
{"actor":{"display_login":"josh-padnick"}}