{"action":"opened","number":18210,"pull_request":{"url":"https://api.github.com/repos/hashicorp/terraform/pulls/18210","id":193470352,"node_id":"MDExOlB1bGxSZXF1ZXN0MTkzNDcwMzUy","html_url":"https://github.com/hashicorp/terraform/pull/18210","diff_url":"https://github.com/hashicorp/terraform/pull/18210.diff","patch_url":"https://github.com/hashicorp/terraform/pull/18210.patch","issue_url":"https://api.github.com/repos/hashicorp/terraform/issues/18210","number":18210,"state":"open","locked":false,"title":"Added in kabob, camel, snake and splitwords interpolation","user":{"login":"kcmerrill","id":691273,"node_id":"MDQ6VXNlcjY5MTI3Mw==","avatar_url":"https://avatars0.githubusercontent.com/u/691273?v=4","gravatar_id":"","url":"https://api.github.com/users/kcmerrill","html_url":"https://github.com/kcmerrill","followers_url":"https://api.github.com/users/kcmerrill/followers","following_url":"https://api.github.com/users/kcmerrill/following{/other_user}","gists_url":"https://api.github.com/users/kcmerrill/gists{/gist_id}","starred_url":"https://api.github.com/users/kcmerrill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kcmerrill/subscriptions","organizations_url":"https://api.github.com/users/kcmerrill/orgs","repos_url":"https://api.github.com/users/kcmerrill/repos","events_url":"https://api.github.com/users/kcmerrill/events{/privacy}","received_events_url":"https://api.github.com/users/kcmerrill/received_events","type":"User","site_admin":false},"body":"We run into quite a bit of situations where we get camel cased words, kabob cased words, snake case words and need to transform them into different variations. Be it back to camel case, snake case kabob case etc ...\r\n\r\nThis comes up quite a bit in automation, for example, a group permission could be based off of a snake/kabob cased repository and we would need to transform that back into camel case. Some places we require kabob case or snake case, and in others we require camel case. \r\n\r\nThese interpolation functions should help cutdown on a lot of code that requires splitting, joining and in the rare cases where we're not sure if it's camel/kabob/snake cased. \r\n\r\nThis also I believe will resolve/help with #18008. \r\n\r\n[x] Documentation updated to reflect new interpolation functions\r\n[x] No specific version of terraform(unsure?)\r\n[x] I believe I've added sufficient test coverage","created_at":"2018-06-07T23:04:04Z","updated_at":"2018-06-07T23:04:04Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/hashicorp/terraform/pulls/18210/commits","review_comments_url":"https://api.github.com/repos/hashicorp/terraform/pulls/18210/comments","review_comment_url":"https://api.github.com/repos/hashicorp/terraform/pulls/comments{/number}","comments_url":"https://api.github.com/repos/hashicorp/terraform/issues/18210/comments","statuses_url":"https://api.github.com/repos/hashicorp/terraform/statuses/4a5c5ee769bf70d7980f9644a9fadf45197b94b1","head":{"label":"kcmerrill:kc/interpolation-additions","ref":"kc/interpolation-additions","sha":"4a5c5ee769bf70d7980f9644a9fadf45197b94b1","user":{"login":"kcmerrill","id":691273,"node_id":"MDQ6VXNlcjY5MTI3Mw==","avatar_url":"https://avatars0.githubusercontent.com/u/691273?v=4","gravatar_id":"","url":"https://api.github.com/users/kcmerrill","html_url":"https://github.com/kcmerrill","followers_url":"https://api.github.com/users/kcmerrill/followers","following_url":"https://api.github.com/users/kcmerrill/following{/other_user}","gists_url":"https://api.github.com/users/kcmerrill/gists{/gist_id}","starred_url":"https://api.github.com/users/kcmerrill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kcmerrill/subscriptions","organizations_url":"https://api.github.com/users/kcmerrill/orgs","repos_url":"https://api.github.com/users/kcmerrill/repos","events_url":"https://api.github.com/users/kcmerrill/events{/privacy}","received_events_url":"https://api.github.com/users/kcmerrill/received_events","type":"User","site_admin":false},"repo":{"id":136538950,"node_id":"MDEwOlJlcG9zaXRvcnkxMzY1Mzg5NTA=","name":"terraform","full_name":"kcmerrill/terraform","owner":{"login":"kcmerrill","id":691273,"node_id":"MDQ6VXNlcjY5MTI3Mw==","avatar_url":"https://avatars0.githubusercontent.com/u/691273?v=4","gravatar_id":"","url":"https://api.github.com/users/kcmerrill","html_url":"https://github.com/kcmerrill","followers_url":"https://api.github.com/users/kcmerrill/followers","following_url":"https://api.github.com/users/kcmerrill/following{/other_user}","gists_url":"https://api.github.com/users/kcmerrill/gists{/gist_id}","starred_url":"https://api.github.com/users/kcmerrill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kcmerrill/subscriptions","organizations_url":"https://api.github.com/users/kcmerrill/orgs","repos_url":"https://api.github.com/users/kcmerrill/repos","events_url":"https://api.github.com/users/kcmerrill/events{/privacy}","received_events_url":"https://api.github.com/users/kcmerrill/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kcmerrill/terraform","description":"Terraform is a tool for building, changing, and combining infrastructure safely and efficiently.","fork":true,"url":"https://api.github.com/repos/kcmerrill/terraform","forks_url":"https://api.github.com/repos/kcmerrill/terraform/forks","keys_url":"https://api.github.com/repos/kcmerrill/terraform/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kcmerrill/terraform/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kcmerrill/terraform/teams","hooks_url":"https://api.github.com/repos/kcmerrill/terraform/hooks","issue_events_url":"https://api.github.com/repos/kcmerrill/terraform/issues/events{/number}","events_url":"https://api.github.com/repos/kcmerrill/terraform/events","assignees_url":"https://api.github.com/repos/kcmerrill/terraform/assignees{/user}","branches_url":"https://api.github.com/repos/kcmerrill/terraform/branches{/branch}","tags_url":"https://api.github.com/repos/kcmerrill/terraform/tags","blobs_url":"https://api.github.com/repos/kcmerrill/terraform/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kcmerrill/terraform/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kcmerrill/terraform/git/refs{/sha}","trees_url":"https://api.github.com/repos/kcmerrill/terraform/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kcmerrill/terraform/statuses/{sha}","languages_url":"https://api.github.com/repos/kcmerrill/terraform/languages","stargazers_url":"https://api.github.com/repos/kcmerrill/terraform/stargazers","contributors_url":"https://api.github.com/repos/kcmerrill/terraform/contributors","subscribers_url":"https://api.github.com/repos/kcmerrill/terraform/subscribers","subscription_url":"https://api.github.com/repos/kcmerrill/terraform/subscription","commits_url":"https://api.github.com/repos/kcmerrill/terraform/commits{/sha}","git_commits_url":"https://api.github.com/repos/kcmerrill/terraform/git/commits{/sha}","comments_url":"https://api.github.com/repos/kcmerrill/terraform/comments{/number}","issue_comment_url":"https://api.github.com/repos/kcmerrill/terraform/issues/comments{/number}","contents_url":"https://api.github.com/repos/kcmerrill/terraform/contents/{+path}","compare_url":"https://api.github.com/repos/kcmerrill/terraform/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kcmerrill/terraform/merges","archive_url":"https://api.github.com/repos/kcmerrill/terraform/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kcmerrill/terraform/downloads","issues_url":"https://api.github.com/repos/kcmerrill/terraform/issues{/number}","pulls_url":"https://api.github.com/repos/kcmerrill/terraform/pulls{/number}","milestones_url":"https://api.github.com/repos/kcmerrill/terraform/milestones{/number}","notifications_url":"https://api.github.com/repos/kcmerrill/terraform/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kcmerrill/terraform/labels{/name}","releases_url":"https://api.github.com/repos/kcmerrill/terraform/releases{/id}","deployments_url":"https://api.github.com/repos/kcmerrill/terraform/deployments","created_at":"2018-06-07T22:43:34Z","updated_at":"2018-06-07T22:43:42Z","pushed_at":"2018-06-07T22:58:33Z","git_url":"git://github.com/kcmerrill/terraform.git","ssh_url":"git@github.com:kcmerrill/terraform.git","clone_url":"https://github.com/kcmerrill/terraform.git","svn_url":"https://github.com/kcmerrill/terraform","homepage":"https://www.terraform.io/","size":130982,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mpl-2.0","name":"Mozilla Public License 2.0","spdx_id":"MPL-2.0","url":"https://api.github.com/licenses/mpl-2.0","node_id":"MDc6TGljZW5zZTE0"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"hashicorp:master","ref":"master","sha":"fce30c14f051bed407216117cd36394a8f78c401","user":{"login":"hashicorp","id":761456,"node_id":"MDEyOk9yZ2FuaXphdGlvbjc2MTQ1Ng==","avatar_url":"https://avatars2.githubusercontent.com/u/761456?v=4","gravatar_id":"","url":"https://api.github.com/users/hashicorp","html_url":"https://github.com/hashicorp","followers_url":"https://api.github.com/users/hashicorp/followers","following_url":"https://api.github.com/users/hashicorp/following{/other_user}","gists_url":"https://api.github.com/users/hashicorp/gists{/gist_id}","starred_url":"https://api.github.com/users/hashicorp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hashicorp/subscriptions","organizations_url":"https://api.github.com/users/hashicorp/orgs","repos_url":"https://api.github.com/users/hashicorp/repos","events_url":"https://api.github.com/users/hashicorp/events{/privacy}","received_events_url":"https://api.github.com/users/hashicorp/received_events","type":"Organization","site_admin":false},"repo":{"id":17728164,"node_id":"MDEwOlJlcG9zaXRvcnkxNzcyODE2NA==","name":"terraform","full_name":"hashicorp/terraform","owner":{"login":"hashicorp","id":761456,"node_id":"MDEyOk9yZ2FuaXphdGlvbjc2MTQ1Ng==","avatar_url":"https://avatars2.githubusercontent.com/u/761456?v=4","gravatar_id":"","url":"https://api.github.com/users/hashicorp","html_url":"https://github.com/hashicorp","followers_url":"https://api.github.com/users/hashicorp/followers","following_url":"https://api.github.com/users/hashicorp/following{/other_user}","gists_url":"https://api.github.com/users/hashicorp/gists{/gist_id}","starred_url":"https://api.github.com/users/hashicorp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hashicorp/subscriptions","organizations_url":"https://api.github.com/users/hashicorp/orgs","repos_url":"https://api.github.com/users/hashicorp/repos","events_url":"https://api.github.com/users/hashicorp/events{/privacy}","received_events_url":"https://api.github.com/users/hashicorp/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hashicorp/terraform","description":"Terraform is a tool for building, changing, and combining infrastructure safely and efficiently.","fork":false,"url":"https://api.github.com/repos/hashicorp/terraform","forks_url":"https://api.github.com/repos/hashicorp/terraform/forks","keys_url":"https://api.github.com/repos/hashicorp/terraform/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hashicorp/terraform/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hashicorp/terraform/teams","hooks_url":"https://api.github.com/repos/hashicorp/terraform/hooks","issue_events_url":"https://api.github.com/repos/hashicorp/terraform/issues/events{/number}","events_url":"https://api.github.com/repos/hashicorp/terraform/events","assignees_url":"https://api.github.com/repos/hashicorp/terraform/assignees{/user}","branches_url":"https://api.github.com/repos/hashicorp/terraform/branches{/branch}","tags_url":"https://api.github.com/repos/hashicorp/terraform/tags","blobs_url":"https://api.github.com/repos/hashicorp/terraform/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hashicorp/terraform/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hashicorp/terraform/git/refs{/sha}","trees_url":"https://api.github.com/repos/hashicorp/terraform/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hashicorp/terraform/statuses/{sha}","languages_url":"https://api.github.com/repos/hashicorp/terraform/languages","stargazers_url":"https://api.github.com/repos/hashicorp/terraform/stargazers","contributors_url":"https://api.github.com/repos/hashicorp/terraform/contributors","subscribers_url":"https://api.github.com/repos/hashicorp/terraform/subscribers","subscription_url":"https://api.github.com/repos/hashicorp/terraform/subscription","commits_url":"https://api.github.com/repos/hashicorp/terraform/commits{/sha}","git_commits_url":"https://api.github.com/repos/hashicorp/terraform/git/commits{/sha}","comments_url":"https://api.github.com/repos/hashicorp/terraform/comments{/number}","issue_comment_url":"https://api.github.com/repos/hashicorp/terraform/issues/comments{/number}","contents_url":"https://api.github.com/repos/hashicorp/terraform/contents/{+path}","compare_url":"https://api.github.com/repos/hashicorp/terraform/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hashicorp/terraform/merges","archive_url":"https://api.github.com/repos/hashicorp/terraform/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hashicorp/terraform/downloads","issues_url":"https://api.github.com/repos/hashicorp/terraform/issues{/number}","pulls_url":"https://api.github.com/repos/hashicorp/terraform/pulls{/number}","milestones_url":"https://api.github.com/repos/hashicorp/terraform/milestones{/number}","notifications_url":"https://api.github.com/repos/hashicorp/terraform/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hashicorp/terraform/labels{/name}","releases_url":"https://api.github.com/repos/hashicorp/terraform/releases{/id}","deployments_url":"https://api.github.com/repos/hashicorp/terraform/deployments","created_at":"2014-03-13T22:25:48Z","updated_at":"2018-06-07T20:20:27Z","pushed_at":"2018-06-07T22:35:38Z","git_url":"git://github.com/hashicorp/terraform.git","ssh_url":"git@github.com:hashicorp/terraform.git","clone_url":"https://github.com/hashicorp/terraform.git","svn_url":"https://github.com/hashicorp/terraform","homepage":"https://www.terraform.io/","size":130982,"stargazers_count":12359,"watchers_count":12359,"language":"Go","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":3894,"mirror_url":null,"archived":false,"open_issues_count":1376,"license":{"key":"mpl-2.0","name":"Mozilla Public License 2.0","spdx_id":"MPL-2.0","url":"https://api.github.com/licenses/mpl-2.0","node_id":"MDc6TGljZW5zZTE0"},"forks":3894,"open_issues":1376,"watchers":12359,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/hashicorp/terraform/pulls/18210"},"html":{"href":"https://github.com/hashicorp/terraform/pull/18210"},"issue":{"href":"https://api.github.com/repos/hashicorp/terraform/issues/18210"},"comments":{"href":"https://api.github.com/repos/hashicorp/terraform/issues/18210/comments"},"review_comments":{"href":"https://api.github.com/repos/hashicorp/terraform/pulls/18210/comments"},"review_comment":{"href":"https://api.github.com/repos/hashicorp/terraform/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/hashicorp/terraform/pulls/18210/commits"},"statuses":{"href":"https://api.github.com/repos/hashicorp/terraform/statuses/4a5c5ee769bf70d7980f9644a9fadf45197b94b1"}},"author_association":"NONE","merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":2,"additions":419,"deletions":0,"changed_files":7}}
{"actor":{"display_login":"kcmerrill"}}