{"action":"created","comment":{"url":"https://api.github.com/repos/ksonnet/ksonnet/pulls/comments/168817284","pull_request_review_id":97252275,"id":168817284,"diff_hunk":"@@ -0,0 +1,426 @@\n+// Copyright 2017 The kubecfg authors\n+//\n+//\n+//    Licensed under the Apache License, Version 2.0 (the \"License\");\n+//    you may not use this file except in compliance with the License.\n+//    You may obtain a copy of the License at\n+//\n+//      http://www.apache.org/licenses/LICENSE-2.0\n+//\n+//    Unless required by applicable law or agreed to in writing, software\n+//    distributed under the License is distributed on an \"AS IS\" BASIS,\n+//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+//    See the License for the specific language governing permissions and\n+//    limitations under the License.\n+\n+package component\n+\n+import (\n+\t\"path/filepath\"\n+\t\"testing\"\n+\n+\t\"github.com/spf13/afero\"\n+\t\"github.com/stretchr/testify/assert\"\n+\t\"github.com/stretchr/testify/require\"\n+\n+\t\"github.com/ksonnet/ksonnet/metadata/app\"\n+)\n+\n+var (\n+\texistingPaths = []string{\n+\t\t\"/app.yaml\",\n+\t\t\"/components/a.jsonnet\",\n+\t\t\"/components/b.jsonnet\",\n+\t\t\"/components/other\",\n+\t\t\"/components/params.libsonnet\",\n+\t\t\"/components/nested/a.jsonnet\",\n+\t\t\"/components/nested/params.libsonnet\",\n+\t\t\"/components/nested/very/deeply/c.jsonnet\",\n+\t\t\"/components/nested/very/deeply/params.libsonnet\",\n+\t\t\"/components/shallow/c.jsonnet\",\n+\t\t\"/components/shallow/params.libsonnet\",\n+\t}\n+\n+\tinvalidPaths = []string{","path":"component/component_test.go","position":44,"original_position":44,"commit_id":"dce5666e2d6e75daed436a75cb38db39cbf90226","original_commit_id":"cdaff6088be81eb32376a1cf2a1485f167ea949b","user":{"login":"bryanl","id":240,"avatar_url":"https://avatars3.githubusercontent.com/u/240?v=4","gravatar_id":"","url":"https://api.github.com/users/bryanl","html_url":"https://github.com/bryanl","followers_url":"https://api.github.com/users/bryanl/followers","following_url":"https://api.github.com/users/bryanl/following{/other_user}","gists_url":"https://api.github.com/users/bryanl/gists{/gist_id}","starred_url":"https://api.github.com/users/bryanl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bryanl/subscriptions","organizations_url":"https://api.github.com/users/bryanl/orgs","repos_url":"https://api.github.com/users/bryanl/repos","events_url":"https://api.github.com/users/bryanl/events{/privacy}","received_events_url":"https://api.github.com/users/bryanl/received_events","type":"User","site_admin":false},"body":"I changed the file extension. What we really need is a better way to identify files.  ","created_at":"2018-02-16T17:16:18Z","updated_at":"2018-02-16T17:16:18Z","html_url":"https://github.com/ksonnet/ksonnet/pull/323#discussion_r168817284","pull_request_url":"https://api.github.com/repos/ksonnet/ksonnet/pulls/323","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/ksonnet/ksonnet/pulls/comments/168817284"},"html":{"href":"https://github.com/ksonnet/ksonnet/pull/323#discussion_r168817284"},"pull_request":{"href":"https://api.github.com/repos/ksonnet/ksonnet/pulls/323"}},"in_reply_to_id":168572830},"pull_request":{"url":"https://api.github.com/repos/ksonnet/ksonnet/pulls/323","id":169257132,"html_url":"https://github.com/ksonnet/ksonnet/pull/323","diff_url":"https://github.com/ksonnet/ksonnet/pull/323.diff","patch_url":"https://github.com/ksonnet/ksonnet/pull/323.patch","issue_url":"https://api.github.com/repos/ksonnet/ksonnet/issues/323","number":323,"state":"open","locked":false,"title":"Introduce component namespaces","user":{"login":"bryanl","id":240,"avatar_url":"https://avatars3.githubusercontent.com/u/240?v=4","gravatar_id":"","url":"https://api.github.com/users/bryanl","html_url":"https://github.com/bryanl","followers_url":"https://api.github.com/users/bryanl/followers","following_url":"https://api.github.com/users/bryanl/following{/other_user}","gists_url":"https://api.github.com/users/bryanl/gists{/gist_id}","starred_url":"https://api.github.com/users/bryanl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bryanl/subscriptions","organizations_url":"https://api.github.com/users/bryanl/orgs","repos_url":"https://api.github.com/users/bryanl/repos","events_url":"https://api.github.com/users/bryanl/events{/privacy}","received_events_url":"https://api.github.com/users/bryanl/received_events","type":"User","site_admin":false},"body":"Introduces component namespaces and support for targets in `app.yaml`\r\n\r\n* Adds support for targets in `app.yaml`. You can now specify targets for an environment so it only operates on a subset of components. (or you can not define it and it will operate on all components)\r\n* Extracts the core of code use to manage components to a new package `github.com/ksonnet/ksonnet/comonent`. \r\n* Introduces component namespaces. Components can now be broken up into separate namespaces. Combined with targets, you can apply the exact subset of components needed for an environment.\r\n\r\n\r\nCommands to be fixed\r\n\r\n- [x] `ks component list`\r\n- [x] `ks component rm`\r\n\r\n\r\n\r\nre: #292\r\nSigned-off-by: bryanl <bryanliles@gmail.com>","created_at":"2018-02-15T00:13:31Z","updated_at":"2018-02-16T17:16:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5d2f31c7323349f0a71b5d2efe35a23c240fd4ed","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/ksonnet/ksonnet/pulls/323/commits","review_comments_url":"https://api.github.com/repos/ksonnet/ksonnet/pulls/323/comments","review_comment_url":"https://api.github.com/repos/ksonnet/ksonnet/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ksonnet/ksonnet/issues/323/comments","statuses_url":"https://api.github.com/repos/ksonnet/ksonnet/statuses/dce5666e2d6e75daed436a75cb38db39cbf90226","head":{"label":"bryanl:use-app-targets-by-default","ref":"use-app-targets-by-default","sha":"dce5666e2d6e75daed436a75cb38db39cbf90226","user":{"login":"bryanl","id":240,"avatar_url":"https://avatars3.githubusercontent.com/u/240?v=4","gravatar_id":"","url":"https://api.github.com/users/bryanl","html_url":"https://github.com/bryanl","followers_url":"https://api.github.com/users/bryanl/followers","following_url":"https://api.github.com/users/bryanl/following{/other_user}","gists_url":"https://api.github.com/users/bryanl/gists{/gist_id}","starred_url":"https://api.github.com/users/bryanl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bryanl/subscriptions","organizations_url":"https://api.github.com/users/bryanl/orgs","repos_url":"https://api.github.com/users/bryanl/repos","events_url":"https://api.github.com/users/bryanl/events{/privacy}","received_events_url":"https://api.github.com/users/bryanl/received_events","type":"User","site_admin":false},"repo":{"id":112392361,"name":"ksonnet","full_name":"bryanl/ksonnet","owner":{"login":"bryanl","id":240,"avatar_url":"https://avatars3.githubusercontent.com/u/240?v=4","gravatar_id":"","url":"https://api.github.com/users/bryanl","html_url":"https://github.com/bryanl","followers_url":"https://api.github.com/users/bryanl/followers","following_url":"https://api.github.com/users/bryanl/following{/other_user}","gists_url":"https://api.github.com/users/bryanl/gists{/gist_id}","starred_url":"https://api.github.com/users/bryanl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bryanl/subscriptions","organizations_url":"https://api.github.com/users/bryanl/orgs","repos_url":"https://api.github.com/users/bryanl/repos","events_url":"https://api.github.com/users/bryanl/events{/privacy}","received_events_url":"https://api.github.com/users/bryanl/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bryanl/ksonnet","description":"A command line tool for managing complex enterprise Kubernetes environments as code.￼","fork":true,"url":"https://api.github.com/repos/bryanl/ksonnet","forks_url":"https://api.github.com/repos/bryanl/ksonnet/forks","keys_url":"https://api.github.com/repos/bryanl/ksonnet/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bryanl/ksonnet/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bryanl/ksonnet/teams","hooks_url":"https://api.github.com/repos/bryanl/ksonnet/hooks","issue_events_url":"https://api.github.com/repos/bryanl/ksonnet/issues/events{/number}","events_url":"https://api.github.com/repos/bryanl/ksonnet/events","assignees_url":"https://api.github.com/repos/bryanl/ksonnet/assignees{/user}","branches_url":"https://api.github.com/repos/bryanl/ksonnet/branches{/branch}","tags_url":"https://api.github.com/repos/bryanl/ksonnet/tags","blobs_url":"https://api.github.com/repos/bryanl/ksonnet/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bryanl/ksonnet/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bryanl/ksonnet/git/refs{/sha}","trees_url":"https://api.github.com/repos/bryanl/ksonnet/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bryanl/ksonnet/statuses/{sha}","languages_url":"https://api.github.com/repos/bryanl/ksonnet/languages","stargazers_url":"https://api.github.com/repos/bryanl/ksonnet/stargazers","contributors_url":"https://api.github.com/repos/bryanl/ksonnet/contributors","subscribers_url":"https://api.github.com/repos/bryanl/ksonnet/subscribers","subscription_url":"https://api.github.com/repos/bryanl/ksonnet/subscription","commits_url":"https://api.github.com/repos/bryanl/ksonnet/commits{/sha}","git_commits_url":"https://api.github.com/repos/bryanl/ksonnet/git/commits{/sha}","comments_url":"https://api.github.com/repos/bryanl/ksonnet/comments{/number}","issue_comment_url":"https://api.github.com/repos/bryanl/ksonnet/issues/comments{/number}","contents_url":"https://api.github.com/repos/bryanl/ksonnet/contents/{+path}","compare_url":"https://api.github.com/repos/bryanl/ksonnet/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bryanl/ksonnet/merges","archive_url":"https://api.github.com/repos/bryanl/ksonnet/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bryanl/ksonnet/downloads","issues_url":"https://api.github.com/repos/bryanl/ksonnet/issues{/number}","pulls_url":"https://api.github.com/repos/bryanl/ksonnet/pulls{/number}","milestones_url":"https://api.github.com/repos/bryanl/ksonnet/milestones{/number}","notifications_url":"https://api.github.com/repos/bryanl/ksonnet/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bryanl/ksonnet/labels{/name}","releases_url":"https://api.github.com/repos/bryanl/ksonnet/releases{/id}","deployments_url":"https://api.github.com/repos/bryanl/ksonnet/deployments","created_at":"2017-11-28T21:40:05Z","updated_at":"2017-11-28T21:40:07Z","pushed_at":"2018-02-15T21:33:24Z","git_url":"git://github.com/bryanl/ksonnet.git","ssh_url":"git@github.com:bryanl/ksonnet.git","clone_url":"https://github.com/bryanl/ksonnet.git","svn_url":"https://github.com/bryanl/ksonnet","homepage":null,"size":31957,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ksonnet:master","ref":"master","sha":"9bb797aee31a96780ea4cbe8ae82f06e0b4ae3d9","user":{"login":"ksonnet","id":28765962,"avatar_url":"https://avatars3.githubusercontent.com/u/28765962?v=4","gravatar_id":"","url":"https://api.github.com/users/ksonnet","html_url":"https://github.com/ksonnet","followers_url":"https://api.github.com/users/ksonnet/followers","following_url":"https://api.github.com/users/ksonnet/following{/other_user}","gists_url":"https://api.github.com/users/ksonnet/gists{/gist_id}","starred_url":"https://api.github.com/users/ksonnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ksonnet/subscriptions","organizations_url":"https://api.github.com/users/ksonnet/orgs","repos_url":"https://api.github.com/users/ksonnet/repos","events_url":"https://api.github.com/users/ksonnet/events{/privacy}","received_events_url":"https://api.github.com/users/ksonnet/received_events","type":"Organization","site_admin":false},"repo":{"id":107161514,"name":"ksonnet","full_name":"ksonnet/ksonnet","owner":{"login":"ksonnet","id":28765962,"avatar_url":"https://avatars3.githubusercontent.com/u/28765962?v=4","gravatar_id":"","url":"https://api.github.com/users/ksonnet","html_url":"https://github.com/ksonnet","followers_url":"https://api.github.com/users/ksonnet/followers","following_url":"https://api.github.com/users/ksonnet/following{/other_user}","gists_url":"https://api.github.com/users/ksonnet/gists{/gist_id}","starred_url":"https://api.github.com/users/ksonnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ksonnet/subscriptions","organizations_url":"https://api.github.com/users/ksonnet/orgs","repos_url":"https://api.github.com/users/ksonnet/repos","events_url":"https://api.github.com/users/ksonnet/events{/privacy}","received_events_url":"https://api.github.com/users/ksonnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ksonnet/ksonnet","description":"A CLI-supported framework that streamlines writing and deployment of Kubernetes configurations to multiple clusters.","fork":false,"url":"https://api.github.com/repos/ksonnet/ksonnet","forks_url":"https://api.github.com/repos/ksonnet/ksonnet/forks","keys_url":"https://api.github.com/repos/ksonnet/ksonnet/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ksonnet/ksonnet/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ksonnet/ksonnet/teams","hooks_url":"https://api.github.com/repos/ksonnet/ksonnet/hooks","issue_events_url":"https://api.github.com/repos/ksonnet/ksonnet/issues/events{/number}","events_url":"https://api.github.com/repos/ksonnet/ksonnet/events","assignees_url":"https://api.github.com/repos/ksonnet/ksonnet/assignees{/user}","branches_url":"https://api.github.com/repos/ksonnet/ksonnet/branches{/branch}","tags_url":"https://api.github.com/repos/ksonnet/ksonnet/tags","blobs_url":"https://api.github.com/repos/ksonnet/ksonnet/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ksonnet/ksonnet/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ksonnet/ksonnet/git/refs{/sha}","trees_url":"https://api.github.com/repos/ksonnet/ksonnet/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ksonnet/ksonnet/statuses/{sha}","languages_url":"https://api.github.com/repos/ksonnet/ksonnet/languages","stargazers_url":"https://api.github.com/repos/ksonnet/ksonnet/stargazers","contributors_url":"https://api.github.com/repos/ksonnet/ksonnet/contributors","subscribers_url":"https://api.github.com/repos/ksonnet/ksonnet/subscribers","subscription_url":"https://api.github.com/repos/ksonnet/ksonnet/subscription","commits_url":"https://api.github.com/repos/ksonnet/ksonnet/commits{/sha}","git_commits_url":"https://api.github.com/repos/ksonnet/ksonnet/git/commits{/sha}","comments_url":"https://api.github.com/repos/ksonnet/ksonnet/comments{/number}","issue_comment_url":"https://api.github.com/repos/ksonnet/ksonnet/issues/comments{/number}","contents_url":"https://api.github.com/repos/ksonnet/ksonnet/contents/{+path}","compare_url":"https://api.github.com/repos/ksonnet/ksonnet/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ksonnet/ksonnet/merges","archive_url":"https://api.github.com/repos/ksonnet/ksonnet/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ksonnet/ksonnet/downloads","issues_url":"https://api.github.com/repos/ksonnet/ksonnet/issues{/number}","pulls_url":"https://api.github.com/repos/ksonnet/ksonnet/pulls{/number}","milestones_url":"https://api.github.com/repos/ksonnet/ksonnet/milestones{/number}","notifications_url":"https://api.github.com/repos/ksonnet/ksonnet/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ksonnet/ksonnet/labels{/name}","releases_url":"https://api.github.com/repos/ksonnet/ksonnet/releases{/id}","deployments_url":"https://api.github.com/repos/ksonnet/ksonnet/deployments","created_at":"2017-10-16T17:39:25Z","updated_at":"2018-02-16T10:20:35Z","pushed_at":"2018-02-16T00:40:05Z","git_url":"git://github.com/ksonnet/ksonnet.git","ssh_url":"git@github.com:ksonnet/ksonnet.git","clone_url":"https://github.com/ksonnet/ksonnet.git","svn_url":"https://github.com/ksonnet/ksonnet","homepage":"https://ksonnet.io/","size":20521,"stargazers_count":235,"watchers_count":235,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":35,"mirror_url":null,"archived":false,"open_issues_count":94,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":35,"open_issues":94,"watchers":235,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ksonnet/ksonnet/pulls/323"},"html":{"href":"https://github.com/ksonnet/ksonnet/pull/323"},"issue":{"href":"https://api.github.com/repos/ksonnet/ksonnet/issues/323"},"comments":{"href":"https://api.github.com/repos/ksonnet/ksonnet/issues/323/comments"},"review_comments":{"href":"https://api.github.com/repos/ksonnet/ksonnet/pulls/323/comments"},"review_comment":{"href":"https://api.github.com/repos/ksonnet/ksonnet/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ksonnet/ksonnet/pulls/323/commits"},"statuses":{"href":"https://api.github.com/repos/ksonnet/ksonnet/statuses/dce5666e2d6e75daed436a75cb38db39cbf90226"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"bryanl"}}