{"action":"created","comment":{"url":"https://api.github.com/repos/openshift/origin/pulls/comments/76328005","id":76328005,"diff_hunk":"@@ -93,6 +100,8 @@ func ParseEnv(spec []string, defaultReader io.Reader) ([]kapi.EnvVar, []string,\n \tvar remove []string\n \tfor _, envSpec := range spec {\n \t\tswitch {\n+\t\tcase !IsValidEnvironmentArgument(envSpec) && !strings.HasSuffix(envSpec, \"-\"):\n+\t\t\treturn nil, nil, fmt.Errorf(\"environment variables must be of the form key=value and match the pattern: %v\\n\", validEnvArgRegex)","path":"pkg/cmd/util/env.go","position":null,"original_position":35,"commit_id":"a64d29fee5dfcb5c47314ac75d37685c273b6001","original_commit_id":"c116c04a80df70b3fb9478f58bdc012458a39734","user":{"login":"juanvallejo","id":3902875,"avatar_url":"https://avatars.githubusercontent.com/u/3902875?v=3","gravatar_id":"","url":"https://api.github.com/users/juanvallejo","html_url":"https://github.com/juanvallejo","followers_url":"https://api.github.com/users/juanvallejo/followers","following_url":"https://api.github.com/users/juanvallejo/following{/other_user}","gists_url":"https://api.github.com/users/juanvallejo/gists{/gist_id}","starred_url":"https://api.github.com/users/juanvallejo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juanvallejo/subscriptions","organizations_url":"https://api.github.com/users/juanvallejo/orgs","repos_url":"https://api.github.com/users/juanvallejo/repos","events_url":"https://api.github.com/users/juanvallejo/events{/privacy}","received_events_url":"https://api.github.com/users/juanvallejo/received_events","type":"User","site_admin":false},"body":"Done!","created_at":"2016-08-25T21:26:59Z","updated_at":"2016-08-25T21:26:59Z","html_url":"https://github.com/openshift/origin/pull/10619#discussion_r76328005","pull_request_url":"https://api.github.com/repos/openshift/origin/pulls/10619","_links":{"self":{"href":"https://api.github.com/repos/openshift/origin/pulls/comments/76328005"},"html":{"href":"https://github.com/openshift/origin/pull/10619#discussion_r76328005"},"pull_request":{"href":"https://api.github.com/repos/openshift/origin/pulls/10619"}}},"pull_request":{"url":"https://api.github.com/repos/openshift/origin/pulls/10619","id":82622227,"html_url":"https://github.com/openshift/origin/pull/10619","diff_url":"https://github.com/openshift/origin/pull/10619.diff","patch_url":"https://github.com/openshift/origin/pull/10619.patch","issue_url":"https://api.github.com/repos/openshift/origin/issues/10619","number":10619,"state":"open","locked":false,"title":"fix `oc set env` key-value pair matching","user":{"login":"juanvallejo","id":3902875,"avatar_url":"https://avatars.githubusercontent.com/u/3902875?v=3","gravatar_id":"","url":"https://api.github.com/users/juanvallejo","html_url":"https://github.com/juanvallejo","followers_url":"https://api.github.com/users/juanvallejo/followers","following_url":"https://api.github.com/users/juanvallejo/following{/other_user}","gists_url":"https://api.github.com/users/juanvallejo/gists{/gist_id}","starred_url":"https://api.github.com/users/juanvallejo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juanvallejo/subscriptions","organizations_url":"https://api.github.com/users/juanvallejo/orgs","repos_url":"https://api.github.com/users/juanvallejo/repos","events_url":"https://api.github.com/users/juanvallejo/events{/privacy}","received_events_url":"https://api.github.com/users/juanvallejo/received_events","type":"User","site_admin":false},"body":"Related BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1369679\r\n\r\nPassing key-value pairs to `oc set env` with certain invalid characters\r\ncauses an unrelated error to be rendered. This is caused because the\r\nregex that separates key-value pairs from resource-type/resource\r\narguments does not account for invalid key-value pairs with invalid\r\ncharacters (other than \"-\"). This means that when a command such as\r\n`oc set env rc/node-1 test#abc=1234` is executed, `test#abc=1234`\r\nwill not be recognized as a key-value pair, and instead be treated\r\nas a resource without a resource type, giving a user the wrong reason\r\nfor command failure.\r\n\r\nThis patch updates the regex matching env key-value pairs to match\r\nany character from the beginning of the arg to the equal sign rather\r\nthan a select amount of characters, ensuring that key-value pair\r\narguments with any kind of invalid character are still recognized as\r\nsuch.\r\n\r\n##### Before\r\n`$ oc set env rc/node-1 test-@abc=1234`\r\n```\r\nthere is no need to specify a resource type as a separate argument when\r\npassing arguments in resource/name form (e.g. 'oc get\r\nresource/<resource_name>' instead of 'oc get resource\r\nresource/<resource_name>'\r\n```\r\n\r\n##### After\r\n`$ oc set env rc/node-1 test@-abc=1234`\r\n```\r\nerror: environment variables must be of the form key=value and can only contain letters, numbers, and underscores\r\n```\r\n\r\ncc @fabianofranz ","created_at":"2016-08-24T21:38:51Z","updated_at":"2016-08-25T21:26:59Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b491efe717587659a15584e33fc6e0cf790e71b0","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/openshift/origin/pulls/10619/commits","review_comments_url":"https://api.github.com/repos/openshift/origin/pulls/10619/comments","review_comment_url":"https://api.github.com/repos/openshift/origin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/openshift/origin/issues/10619/comments","statuses_url":"https://api.github.com/repos/openshift/origin/statuses/a64d29fee5dfcb5c47314ac75d37685c273b6001","head":{"label":"juanvallejo:jvallejo_fix-oc-set-env-key-value-pair-match","ref":"jvallejo_fix-oc-set-env-key-value-pair-match","sha":"a64d29fee5dfcb5c47314ac75d37685c273b6001","user":{"login":"juanvallejo","id":3902875,"avatar_url":"https://avatars.githubusercontent.com/u/3902875?v=3","gravatar_id":"","url":"https://api.github.com/users/juanvallejo","html_url":"https://github.com/juanvallejo","followers_url":"https://api.github.com/users/juanvallejo/followers","following_url":"https://api.github.com/users/juanvallejo/following{/other_user}","gists_url":"https://api.github.com/users/juanvallejo/gists{/gist_id}","starred_url":"https://api.github.com/users/juanvallejo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juanvallejo/subscriptions","organizations_url":"https://api.github.com/users/juanvallejo/orgs","repos_url":"https://api.github.com/users/juanvallejo/repos","events_url":"https://api.github.com/users/juanvallejo/events{/privacy}","received_events_url":"https://api.github.com/users/juanvallejo/received_events","type":"User","site_admin":false},"repo":{"id":50698131,"name":"origin","full_name":"juanvallejo/origin","owner":{"login":"juanvallejo","id":3902875,"avatar_url":"https://avatars.githubusercontent.com/u/3902875?v=3","gravatar_id":"","url":"https://api.github.com/users/juanvallejo","html_url":"https://github.com/juanvallejo","followers_url":"https://api.github.com/users/juanvallejo/followers","following_url":"https://api.github.com/users/juanvallejo/following{/other_user}","gists_url":"https://api.github.com/users/juanvallejo/gists{/gist_id}","starred_url":"https://api.github.com/users/juanvallejo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juanvallejo/subscriptions","organizations_url":"https://api.github.com/users/juanvallejo/orgs","repos_url":"https://api.github.com/users/juanvallejo/repos","events_url":"https://api.github.com/users/juanvallejo/events{/privacy}","received_events_url":"https://api.github.com/users/juanvallejo/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/juanvallejo/origin","description":"OpenShift 3 - build, deploy, and manage your applications with Docker and Kubernetes","fork":true,"url":"https://api.github.com/repos/juanvallejo/origin","forks_url":"https://api.github.com/repos/juanvallejo/origin/forks","keys_url":"https://api.github.com/repos/juanvallejo/origin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/juanvallejo/origin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/juanvallejo/origin/teams","hooks_url":"https://api.github.com/repos/juanvallejo/origin/hooks","issue_events_url":"https://api.github.com/repos/juanvallejo/origin/issues/events{/number}","events_url":"https://api.github.com/repos/juanvallejo/origin/events","assignees_url":"https://api.github.com/repos/juanvallejo/origin/assignees{/user}","branches_url":"https://api.github.com/repos/juanvallejo/origin/branches{/branch}","tags_url":"https://api.github.com/repos/juanvallejo/origin/tags","blobs_url":"https://api.github.com/repos/juanvallejo/origin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/juanvallejo/origin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/juanvallejo/origin/git/refs{/sha}","trees_url":"https://api.github.com/repos/juanvallejo/origin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/juanvallejo/origin/statuses/{sha}","languages_url":"https://api.github.com/repos/juanvallejo/origin/languages","stargazers_url":"https://api.github.com/repos/juanvallejo/origin/stargazers","contributors_url":"https://api.github.com/repos/juanvallejo/origin/contributors","subscribers_url":"https://api.github.com/repos/juanvallejo/origin/subscribers","subscription_url":"https://api.github.com/repos/juanvallejo/origin/subscription","commits_url":"https://api.github.com/repos/juanvallejo/origin/commits{/sha}","git_commits_url":"https://api.github.com/repos/juanvallejo/origin/git/commits{/sha}","comments_url":"https://api.github.com/repos/juanvallejo/origin/comments{/number}","issue_comment_url":"https://api.github.com/repos/juanvallejo/origin/issues/comments{/number}","contents_url":"https://api.github.com/repos/juanvallejo/origin/contents/{+path}","compare_url":"https://api.github.com/repos/juanvallejo/origin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/juanvallejo/origin/merges","archive_url":"https://api.github.com/repos/juanvallejo/origin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/juanvallejo/origin/downloads","issues_url":"https://api.github.com/repos/juanvallejo/origin/issues{/number}","pulls_url":"https://api.github.com/repos/juanvallejo/origin/pulls{/number}","milestones_url":"https://api.github.com/repos/juanvallejo/origin/milestones{/number}","notifications_url":"https://api.github.com/repos/juanvallejo/origin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/juanvallejo/origin/labels{/name}","releases_url":"https://api.github.com/repos/juanvallejo/origin/releases{/id}","deployments_url":"https://api.github.com/repos/juanvallejo/origin/deployments","created_at":"2016-01-29T23:22:53Z","updated_at":"2016-01-29T23:22:58Z","pushed_at":"2016-08-25T21:26:40Z","git_url":"git://github.com/juanvallejo/origin.git","ssh_url":"git@github.com:juanvallejo/origin.git","clone_url":"https://github.com/juanvallejo/origin.git","svn_url":"https://github.com/juanvallejo/origin","homepage":"http://www.openshift.org","size":322269,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":false,"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":"openshift:master","ref":"master","sha":"6ad7061958c70a2464ea8ee885fb429ffa180281","user":{"login":"openshift","id":792337,"avatar_url":"https://avatars.githubusercontent.com/u/792337?v=3","gravatar_id":"","url":"https://api.github.com/users/openshift","html_url":"https://github.com/openshift","followers_url":"https://api.github.com/users/openshift/followers","following_url":"https://api.github.com/users/openshift/following{/other_user}","gists_url":"https://api.github.com/users/openshift/gists{/gist_id}","starred_url":"https://api.github.com/users/openshift/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openshift/subscriptions","organizations_url":"https://api.github.com/users/openshift/orgs","repos_url":"https://api.github.com/users/openshift/repos","events_url":"https://api.github.com/users/openshift/events{/privacy}","received_events_url":"https://api.github.com/users/openshift/received_events","type":"Organization","site_admin":false},"repo":{"id":22442668,"name":"origin","full_name":"openshift/origin","owner":{"login":"openshift","id":792337,"avatar_url":"https://avatars.githubusercontent.com/u/792337?v=3","gravatar_id":"","url":"https://api.github.com/users/openshift","html_url":"https://github.com/openshift","followers_url":"https://api.github.com/users/openshift/followers","following_url":"https://api.github.com/users/openshift/following{/other_user}","gists_url":"https://api.github.com/users/openshift/gists{/gist_id}","starred_url":"https://api.github.com/users/openshift/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openshift/subscriptions","organizations_url":"https://api.github.com/users/openshift/orgs","repos_url":"https://api.github.com/users/openshift/repos","events_url":"https://api.github.com/users/openshift/events{/privacy}","received_events_url":"https://api.github.com/users/openshift/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/openshift/origin","description":"Enterprise-Ready Kubernetes for Developers","fork":false,"url":"https://api.github.com/repos/openshift/origin","forks_url":"https://api.github.com/repos/openshift/origin/forks","keys_url":"https://api.github.com/repos/openshift/origin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/openshift/origin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/openshift/origin/teams","hooks_url":"https://api.github.com/repos/openshift/origin/hooks","issue_events_url":"https://api.github.com/repos/openshift/origin/issues/events{/number}","events_url":"https://api.github.com/repos/openshift/origin/events","assignees_url":"https://api.github.com/repos/openshift/origin/assignees{/user}","branches_url":"https://api.github.com/repos/openshift/origin/branches{/branch}","tags_url":"https://api.github.com/repos/openshift/origin/tags","blobs_url":"https://api.github.com/repos/openshift/origin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/openshift/origin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/openshift/origin/git/refs{/sha}","trees_url":"https://api.github.com/repos/openshift/origin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/openshift/origin/statuses/{sha}","languages_url":"https://api.github.com/repos/openshift/origin/languages","stargazers_url":"https://api.github.com/repos/openshift/origin/stargazers","contributors_url":"https://api.github.com/repos/openshift/origin/contributors","subscribers_url":"https://api.github.com/repos/openshift/origin/subscribers","subscription_url":"https://api.github.com/repos/openshift/origin/subscription","commits_url":"https://api.github.com/repos/openshift/origin/commits{/sha}","git_commits_url":"https://api.github.com/repos/openshift/origin/git/commits{/sha}","comments_url":"https://api.github.com/repos/openshift/origin/comments{/number}","issue_comment_url":"https://api.github.com/repos/openshift/origin/issues/comments{/number}","contents_url":"https://api.github.com/repos/openshift/origin/contents/{+path}","compare_url":"https://api.github.com/repos/openshift/origin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/openshift/origin/merges","archive_url":"https://api.github.com/repos/openshift/origin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/openshift/origin/downloads","issues_url":"https://api.github.com/repos/openshift/origin/issues{/number}","pulls_url":"https://api.github.com/repos/openshift/origin/pulls{/number}","milestones_url":"https://api.github.com/repos/openshift/origin/milestones{/number}","notifications_url":"https://api.github.com/repos/openshift/origin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/openshift/origin/labels{/name}","releases_url":"https://api.github.com/repos/openshift/origin/releases{/id}","deployments_url":"https://api.github.com/repos/openshift/origin/deployments","created_at":"2014-07-30T20:04:05Z","updated_at":"2016-08-25T08:19:32Z","pushed_at":"2016-08-25T21:26:41Z","git_url":"git://github.com/openshift/origin.git","ssh_url":"git@github.com:openshift/origin.git","clone_url":"https://github.com/openshift/origin.git","svn_url":"https://github.com/openshift/origin","homepage":"http://www.openshift.org","size":573908,"stargazers_count":1629,"watchers_count":1629,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1028,"mirror_url":null,"open_issues_count":1090,"forks":1028,"open_issues":1090,"watchers":1629,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/openshift/origin/pulls/10619"},"html":{"href":"https://github.com/openshift/origin/pull/10619"},"issue":{"href":"https://api.github.com/repos/openshift/origin/issues/10619"},"comments":{"href":"https://api.github.com/repos/openshift/origin/issues/10619/comments"},"review_comments":{"href":"https://api.github.com/repos/openshift/origin/pulls/10619/comments"},"review_comment":{"href":"https://api.github.com/repos/openshift/origin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/openshift/origin/pulls/10619/commits"},"statuses":{"href":"https://api.github.com/repos/openshift/origin/statuses/a64d29fee5dfcb5c47314ac75d37685c273b6001"}}}}
{"actor":{"display_login":"juanvallejo"}}