{"action":"created","comment":{"url":"https://api.github.com/repos/cloudposse/docs/pulls/comments/241905822","pull_request_review_id":185303960,"id":241905822,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTkwNTgyMg==","diff_hunk":"@@ -0,0 +1,90 @@\n+---\n+title: \"Strategy for Infrastructure Integration Testing\"\n+date: \"2018-12-14\" \n+description: \"We need a consistent way to test and validate that our infrastructure automation (kops, helm, terraform modules, etc) are working correctly.\"\n+weight: 2\n+---\n+\n+## Status\n+\n+**Proposed**\n+\n+## Context\n+\n+We maintain 250+ active projects on GitHub. These projects receive a lot of contributions from community members. \n+\n+We need a way to test `terraform` modules, `kops` clusters, `helm` charts, `helmfile` deployments, and more generally the functionality of our `geodesic` containers.\n+Our situation is a bit unique in that we need to test the integration of dozens of tools that span languages, authors, and organizations. \n+We do not have the privilege of just testing one language or framework.\n+\n+To date, we have not done much in the form of automated testing. When we receive contributions from members, someone on our team needs to manually checkout the changes to validate them. This is time consuming and we do not have the engineering resources to scale with the growth in popularity of our Open Source projects.\n+\n+We have seen approaches to automated testing of terraform.\n+\n+### Test Kitchen\n+\n+[Test Kitchen](https://github.com/newcontext-oss/kitchen-terraform) is the original testing framework for terraform written in ruby. \n+It presents a familiar testing interface for terraform, for anyone with a software development background. The lightweight DSL presents an \n+easy way to define tests plus with the full support of the ruby language, a `gem` for everything under the sun. Ruby is a fanastic language\n+for writing DSLs and aptly suited for the purpose of writing tests.\n+\n+For non-ruby developers, ruby is a bit of a mystery. Most developers require something like `rbenv` or `rvm` to run Ruby due to issues with version compatibilities. If a company depends on Ruby, this is not a big deal, but for companies that do not use it make it a daunting task. Gems install gems install gems and before you know it, you have installed the actual \"kitchen sink\". This is to say, ruby apps are anything but lightweight and installing gems across platforms is a hit-or-miss business, especially when they require [`ffi`](https://github.com/ffi/ffi) to compile dependencies (which also means you need developer tools installed). Ruby is also a polarizing language, much the same way of \n+Python, Go or Java.\n+\n+\n+### Terratest\n+\n+[Terratest](https://github.com/gruntwork-io/terratest) is a project by Gruntworks that they use internally for building and running automated tests against terraform modules. \n+\n+The project has received immense interest and is engineering-wise a beautiful solution to the problem. By writing the integration tests in Go and compiling them down to a single, cross-architecture/platform binary, the end-user is able to run tests without needing to install the [\"kitchen sink\"](https://en.wikipedia.org/wiki/Scope_creep) to testing tools.\n+\n+The problem with this approach is it sets the bar very high for users of `terraform`, many of which do not come from a strict software development background.\n+The persons who will most of the time run the tests are not the end users of the modules, but the developers of them. Getting started with Go requires a bit of commitment to get it setup and installed. In the end, we feel that this will exclude a large part of our community, which is contrary to our inclusive ethos. \n+\n+For an example, let us consider the wildly popular blogging platform of Wordpress.Much of its success was derived from the fact that it made it very easy","path":"content/design-decisions/0002-infrastructure-integration-testing.md","position":44,"original_position":44,"commit_id":"5be701e1c9e550e0b643a371690e013a25952eda","original_commit_id":"5be701e1c9e550e0b643a371690e013a25952eda","user":{"login":"osterman","id":52489,"node_id":"MDQ6VXNlcjUyNDg5","avatar_url":"https://avatars3.githubusercontent.com/u/52489?v=4","gravatar_id":"","url":"https://api.github.com/users/osterman","html_url":"https://github.com/osterman","followers_url":"https://api.github.com/users/osterman/followers","following_url":"https://api.github.com/users/osterman/following{/other_user}","gists_url":"https://api.github.com/users/osterman/gists{/gist_id}","starred_url":"https://api.github.com/users/osterman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/osterman/subscriptions","organizations_url":"https://api.github.com/users/osterman/orgs","repos_url":"https://api.github.com/users/osterman/repos","events_url":"https://api.github.com/users/osterman/events{/privacy}","received_events_url":"https://api.github.com/users/osterman/received_events","type":"User","site_admin":false},"body":"Agree - will fix","created_at":"2018-12-14T22:10:52Z","updated_at":"2018-12-14T22:10:52Z","html_url":"https://github.com/cloudposse/docs/pull/329#discussion_r241905822","pull_request_url":"https://api.github.com/repos/cloudposse/docs/pulls/329","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/cloudposse/docs/pulls/comments/241905822"},"html":{"href":"https://github.com/cloudposse/docs/pull/329#discussion_r241905822"},"pull_request":{"href":"https://api.github.com/repos/cloudposse/docs/pulls/329"}},"in_reply_to_id":241897212},"pull_request":{"url":"https://api.github.com/repos/cloudposse/docs/pulls/329","id":238832813,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM4ODMyODEz","html_url":"https://github.com/cloudposse/docs/pull/329","diff_url":"https://github.com/cloudposse/docs/pull/329.diff","patch_url":"https://github.com/cloudposse/docs/pull/329.patch","issue_url":"https://api.github.com/repos/cloudposse/docs/issues/329","number":329,"state":"open","locked":false,"title":"Document infrastructure integration testing decisions","user":{"login":"osterman","id":52489,"node_id":"MDQ6VXNlcjUyNDg5","avatar_url":"https://avatars3.githubusercontent.com/u/52489?v=4","gravatar_id":"","url":"https://api.github.com/users/osterman","html_url":"https://github.com/osterman","followers_url":"https://api.github.com/users/osterman/followers","following_url":"https://api.github.com/users/osterman/following{/other_user}","gists_url":"https://api.github.com/users/osterman/gists{/gist_id}","starred_url":"https://api.github.com/users/osterman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/osterman/subscriptions","organizations_url":"https://api.github.com/users/osterman/orgs","repos_url":"https://api.github.com/users/osterman/repos","events_url":"https://api.github.com/users/osterman/events{/privacy}","received_events_url":"https://api.github.com/users/osterman/received_events","type":"User","site_admin":false},"body":"## what\r\n* Document the design decisions and considerations that have gone into selecting an automated testing framework\r\n\r\n## why\r\n* Transparency \r\n* Bats might be a controversial choice due to it's \"bash\" dependency","created_at":"2018-12-14T20:23:22Z","updated_at":"2018-12-14T22:10:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a98b1539be0b7e9c534bca487a590eae6f5d58dc","assignee":null,"assignees":[],"requested_reviewers":[{"login":"goruha","id":496956,"node_id":"MDQ6VXNlcjQ5Njk1Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/496956?v=4","gravatar_id":"","url":"https://api.github.com/users/goruha","html_url":"https://github.com/goruha","followers_url":"https://api.github.com/users/goruha/followers","following_url":"https://api.github.com/users/goruha/following{/other_user}","gists_url":"https://api.github.com/users/goruha/gists{/gist_id}","starred_url":"https://api.github.com/users/goruha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/goruha/subscriptions","organizations_url":"https://api.github.com/users/goruha/orgs","repos_url":"https://api.github.com/users/goruha/repos","events_url":"https://api.github.com/users/goruha/events{/privacy}","received_events_url":"https://api.github.com/users/goruha/received_events","type":"User","site_admin":false},{"login":"joshmyers","id":3025844,"node_id":"MDQ6VXNlcjMwMjU4NDQ=","avatar_url":"https://avatars1.githubusercontent.com/u/3025844?v=4","gravatar_id":"","url":"https://api.github.com/users/joshmyers","html_url":"https://github.com/joshmyers","followers_url":"https://api.github.com/users/joshmyers/followers","following_url":"https://api.github.com/users/joshmyers/following{/other_user}","gists_url":"https://api.github.com/users/joshmyers/gists{/gist_id}","starred_url":"https://api.github.com/users/joshmyers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshmyers/subscriptions","organizations_url":"https://api.github.com/users/joshmyers/orgs","repos_url":"https://api.github.com/users/joshmyers/repos","events_url":"https://api.github.com/users/joshmyers/events{/privacy}","received_events_url":"https://api.github.com/users/joshmyers/received_events","type":"User","site_admin":false},{"login":"solairerove","id":9396988,"node_id":"MDQ6VXNlcjkzOTY5ODg=","avatar_url":"https://avatars2.githubusercontent.com/u/9396988?v=4","gravatar_id":"","url":"https://api.github.com/users/solairerove","html_url":"https://github.com/solairerove","followers_url":"https://api.github.com/users/solairerove/followers","following_url":"https://api.github.com/users/solairerove/following{/other_user}","gists_url":"https://api.github.com/users/solairerove/gists{/gist_id}","starred_url":"https://api.github.com/users/solairerove/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/solairerove/subscriptions","organizations_url":"https://api.github.com/users/solairerove/orgs","repos_url":"https://api.github.com/users/solairerove/repos","events_url":"https://api.github.com/users/solairerove/events{/privacy}","received_events_url":"https://api.github.com/users/solairerove/received_events","type":"User","site_admin":false},{"login":"alebabai","id":19958900,"node_id":"MDQ6VXNlcjE5OTU4OTAw","avatar_url":"https://avatars1.githubusercontent.com/u/19958900?v=4","gravatar_id":"","url":"https://api.github.com/users/alebabai","html_url":"https://github.com/alebabai","followers_url":"https://api.github.com/users/alebabai/followers","following_url":"https://api.github.com/users/alebabai/following{/other_user}","gists_url":"https://api.github.com/users/alebabai/gists{/gist_id}","starred_url":"https://api.github.com/users/alebabai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alebabai/subscriptions","organizations_url":"https://api.github.com/users/alebabai/orgs","repos_url":"https://api.github.com/users/alebabai/repos","events_url":"https://api.github.com/users/alebabai/events{/privacy}","received_events_url":"https://api.github.com/users/alebabai/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/cloudposse/docs/pulls/329/commits","review_comments_url":"https://api.github.com/repos/cloudposse/docs/pulls/329/comments","review_comment_url":"https://api.github.com/repos/cloudposse/docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/cloudposse/docs/issues/329/comments","statuses_url":"https://api.github.com/repos/cloudposse/docs/statuses/5be701e1c9e550e0b643a371690e013a25952eda","head":{"label":"cloudposse:automated-testing","ref":"automated-testing","sha":"5be701e1c9e550e0b643a371690e013a25952eda","user":{"login":"cloudposse","id":16398900,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Mzk4OTAw","avatar_url":"https://avatars2.githubusercontent.com/u/16398900?v=4","gravatar_id":"","url":"https://api.github.com/users/cloudposse","html_url":"https://github.com/cloudposse","followers_url":"https://api.github.com/users/cloudposse/followers","following_url":"https://api.github.com/users/cloudposse/following{/other_user}","gists_url":"https://api.github.com/users/cloudposse/gists{/gist_id}","starred_url":"https://api.github.com/users/cloudposse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cloudposse/subscriptions","organizations_url":"https://api.github.com/users/cloudposse/orgs","repos_url":"https://api.github.com/users/cloudposse/repos","events_url":"https://api.github.com/users/cloudposse/events{/privacy}","received_events_url":"https://api.github.com/users/cloudposse/received_events","type":"Organization","site_admin":false},"repo":{"id":131331275,"node_id":"MDEwOlJlcG9zaXRvcnkxMzEzMzEyNzU=","name":"docs","full_name":"cloudposse/docs","private":false,"owner":{"login":"cloudposse","id":16398900,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Mzk4OTAw","avatar_url":"https://avatars2.githubusercontent.com/u/16398900?v=4","gravatar_id":"","url":"https://api.github.com/users/cloudposse","html_url":"https://github.com/cloudposse","followers_url":"https://api.github.com/users/cloudposse/followers","following_url":"https://api.github.com/users/cloudposse/following{/other_user}","gists_url":"https://api.github.com/users/cloudposse/gists{/gist_id}","starred_url":"https://api.github.com/users/cloudposse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cloudposse/subscriptions","organizations_url":"https://api.github.com/users/cloudposse/orgs","repos_url":"https://api.github.com/users/cloudposse/repos","events_url":"https://api.github.com/users/cloudposse/events{/privacy}","received_events_url":"https://api.github.com/users/cloudposse/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/cloudposse/docs","description":"📘 Cloud Posse Developer Hub. Complete documentation for the Cloud Posse solution. https://docs.cloudposse.com","fork":false,"url":"https://api.github.com/repos/cloudposse/docs","forks_url":"https://api.github.com/repos/cloudposse/docs/forks","keys_url":"https://api.github.com/repos/cloudposse/docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cloudposse/docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cloudposse/docs/teams","hooks_url":"https://api.github.com/repos/cloudposse/docs/hooks","issue_events_url":"https://api.github.com/repos/cloudposse/docs/issues/events{/number}","events_url":"https://api.github.com/repos/cloudposse/docs/events","assignees_url":"https://api.github.com/repos/cloudposse/docs/assignees{/user}","branches_url":"https://api.github.com/repos/cloudposse/docs/branches{/branch}","tags_url":"https://api.github.com/repos/cloudposse/docs/tags","blobs_url":"https://api.github.com/repos/cloudposse/docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cloudposse/docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cloudposse/docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/cloudposse/docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cloudposse/docs/statuses/{sha}","languages_url":"https://api.github.com/repos/cloudposse/docs/languages","stargazers_url":"https://api.github.com/repos/cloudposse/docs/stargazers","contributors_url":"https://api.github.com/repos/cloudposse/docs/contributors","subscribers_url":"https://api.github.com/repos/cloudposse/docs/subscribers","subscription_url":"https://api.github.com/repos/cloudposse/docs/subscription","commits_url":"https://api.github.com/repos/cloudposse/docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/cloudposse/docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/cloudposse/docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/cloudposse/docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/cloudposse/docs/contents/{+path}","compare_url":"https://api.github.com/repos/cloudposse/docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cloudposse/docs/merges","archive_url":"https://api.github.com/repos/cloudposse/docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cloudposse/docs/downloads","issues_url":"https://api.github.com/repos/cloudposse/docs/issues{/number}","pulls_url":"https://api.github.com/repos/cloudposse/docs/pulls{/number}","milestones_url":"https://api.github.com/repos/cloudposse/docs/milestones{/number}","notifications_url":"https://api.github.com/repos/cloudposse/docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cloudposse/docs/labels{/name}","releases_url":"https://api.github.com/repos/cloudposse/docs/releases{/id}","deployments_url":"https://api.github.com/repos/cloudposse/docs/deployments","created_at":"2018-04-27T18:23:32Z","updated_at":"2018-12-14T04:26:05Z","pushed_at":"2018-12-14T20:40:37Z","git_url":"git://github.com/cloudposse/docs.git","ssh_url":"git@github.com:cloudposse/docs.git","clone_url":"https://github.com/cloudposse/docs.git","svn_url":"https://github.com/cloudposse/docs","homepage":"https://docs.cloudposse.com/","size":25153,"stargazers_count":10,"watchers_count":10,"language":"CSS","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":5,"mirror_url":null,"archived":false,"open_issues_count":116,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":5,"open_issues":116,"watchers":10,"default_branch":"master"}},"base":{"label":"cloudposse:master","ref":"master","sha":"a09dc385a1b85abca18655d785b7525552cd0f3a","user":{"login":"cloudposse","id":16398900,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Mzk4OTAw","avatar_url":"https://avatars2.githubusercontent.com/u/16398900?v=4","gravatar_id":"","url":"https://api.github.com/users/cloudposse","html_url":"https://github.com/cloudposse","followers_url":"https://api.github.com/users/cloudposse/followers","following_url":"https://api.github.com/users/cloudposse/following{/other_user}","gists_url":"https://api.github.com/users/cloudposse/gists{/gist_id}","starred_url":"https://api.github.com/users/cloudposse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cloudposse/subscriptions","organizations_url":"https://api.github.com/users/cloudposse/orgs","repos_url":"https://api.github.com/users/cloudposse/repos","events_url":"https://api.github.com/users/cloudposse/events{/privacy}","received_events_url":"https://api.github.com/users/cloudposse/received_events","type":"Organization","site_admin":false},"repo":{"id":131331275,"node_id":"MDEwOlJlcG9zaXRvcnkxMzEzMzEyNzU=","name":"docs","full_name":"cloudposse/docs","private":false,"owner":{"login":"cloudposse","id":16398900,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2Mzk4OTAw","avatar_url":"https://avatars2.githubusercontent.com/u/16398900?v=4","gravatar_id":"","url":"https://api.github.com/users/cloudposse","html_url":"https://github.com/cloudposse","followers_url":"https://api.github.com/users/cloudposse/followers","following_url":"https://api.github.com/users/cloudposse/following{/other_user}","gists_url":"https://api.github.com/users/cloudposse/gists{/gist_id}","starred_url":"https://api.github.com/users/cloudposse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cloudposse/subscriptions","organizations_url":"https://api.github.com/users/cloudposse/orgs","repos_url":"https://api.github.com/users/cloudposse/repos","events_url":"https://api.github.com/users/cloudposse/events{/privacy}","received_events_url":"https://api.github.com/users/cloudposse/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/cloudposse/docs","description":"📘 Cloud Posse Developer Hub. Complete documentation for the Cloud Posse solution. https://docs.cloudposse.com","fork":false,"url":"https://api.github.com/repos/cloudposse/docs","forks_url":"https://api.github.com/repos/cloudposse/docs/forks","keys_url":"https://api.github.com/repos/cloudposse/docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cloudposse/docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cloudposse/docs/teams","hooks_url":"https://api.github.com/repos/cloudposse/docs/hooks","issue_events_url":"https://api.github.com/repos/cloudposse/docs/issues/events{/number}","events_url":"https://api.github.com/repos/cloudposse/docs/events","assignees_url":"https://api.github.com/repos/cloudposse/docs/assignees{/user}","branches_url":"https://api.github.com/repos/cloudposse/docs/branches{/branch}","tags_url":"https://api.github.com/repos/cloudposse/docs/tags","blobs_url":"https://api.github.com/repos/cloudposse/docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cloudposse/docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cloudposse/docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/cloudposse/docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cloudposse/docs/statuses/{sha}","languages_url":"https://api.github.com/repos/cloudposse/docs/languages","stargazers_url":"https://api.github.com/repos/cloudposse/docs/stargazers","contributors_url":"https://api.github.com/repos/cloudposse/docs/contributors","subscribers_url":"https://api.github.com/repos/cloudposse/docs/subscribers","subscription_url":"https://api.github.com/repos/cloudposse/docs/subscription","commits_url":"https://api.github.com/repos/cloudposse/docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/cloudposse/docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/cloudposse/docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/cloudposse/docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/cloudposse/docs/contents/{+path}","compare_url":"https://api.github.com/repos/cloudposse/docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cloudposse/docs/merges","archive_url":"https://api.github.com/repos/cloudposse/docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cloudposse/docs/downloads","issues_url":"https://api.github.com/repos/cloudposse/docs/issues{/number}","pulls_url":"https://api.github.com/repos/cloudposse/docs/pulls{/number}","milestones_url":"https://api.github.com/repos/cloudposse/docs/milestones{/number}","notifications_url":"https://api.github.com/repos/cloudposse/docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cloudposse/docs/labels{/name}","releases_url":"https://api.github.com/repos/cloudposse/docs/releases{/id}","deployments_url":"https://api.github.com/repos/cloudposse/docs/deployments","created_at":"2018-04-27T18:23:32Z","updated_at":"2018-12-14T04:26:05Z","pushed_at":"2018-12-14T20:40:37Z","git_url":"git://github.com/cloudposse/docs.git","ssh_url":"git@github.com:cloudposse/docs.git","clone_url":"https://github.com/cloudposse/docs.git","svn_url":"https://github.com/cloudposse/docs","homepage":"https://docs.cloudposse.com/","size":25153,"stargazers_count":10,"watchers_count":10,"language":"CSS","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":5,"mirror_url":null,"archived":false,"open_issues_count":116,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":5,"open_issues":116,"watchers":10,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/cloudposse/docs/pulls/329"},"html":{"href":"https://github.com/cloudposse/docs/pull/329"},"issue":{"href":"https://api.github.com/repos/cloudposse/docs/issues/329"},"comments":{"href":"https://api.github.com/repos/cloudposse/docs/issues/329/comments"},"review_comments":{"href":"https://api.github.com/repos/cloudposse/docs/pulls/329/comments"},"review_comment":{"href":"https://api.github.com/repos/cloudposse/docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/cloudposse/docs/pulls/329/commits"},"statuses":{"href":"https://api.github.com/repos/cloudposse/docs/statuses/5be701e1c9e550e0b643a371690e013a25952eda"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"osterman"}}