{"action":"created","comment":{"url":"https://api.github.com/repos/envoyproxy/envoy/pulls/comments/264665759","pull_request_review_id":213374104,"id":264665759,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI2NDY2NTc1OQ==","diff_hunk":"@@ -129,6 +179,20 @@ std::string TestEnvironment::getCheckedEnvVar(const std::string& var) {\n }\n \n void TestEnvironment::initializeOptions(int argc, char** argv) {\n+  // Before latching argv and argc, remove any runtime override flag.\n+  // This allows doing test overrides of Envoy runtime features without adding\n+  // test flags to the Envoy production command line.\n+  const std::regex PATTERN{\"--runtime-feature-override-for-tests=(.*)\", std::regex::optimize};","path":"test/test_common/environment.cc","position":null,"original_position":73,"commit_id":"b5cf76cf055e20db4d37e95ef0986fec4dbb67fd","original_commit_id":"26bdbd679e01592efaf72957ff31e33f5394478b","user":{"login":"alyssawilk","id":18220477,"node_id":"MDQ6VXNlcjE4MjIwNDc3","avatar_url":"https://avatars2.githubusercontent.com/u/18220477?v=4","gravatar_id":"","url":"https://api.github.com/users/alyssawilk","html_url":"https://github.com/alyssawilk","followers_url":"https://api.github.com/users/alyssawilk/followers","following_url":"https://api.github.com/users/alyssawilk/following{/other_user}","gists_url":"https://api.github.com/users/alyssawilk/gists{/gist_id}","starred_url":"https://api.github.com/users/alyssawilk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alyssawilk/subscriptions","organizations_url":"https://api.github.com/users/alyssawilk/orgs","repos_url":"https://api.github.com/users/alyssawilk/repos","events_url":"https://api.github.com/users/alyssawilk/events{/privacy}","received_events_url":"https://api.github.com/users/alyssawilk/received_events","type":"User","site_admin":false},"body":"We can, but if a test is already a TEST_P it can mean updating all the test params from GetParam() to GetParam(0), adding GetParam(1) for every test fixture in the whole class, creating or editing the constructur etc, then tearing it all back down in a few months.  Given many of our files have 3-5 fixtures this can end up being a lot of throwaway work per test you want to dual-dun, which is why we bother with the flag based solution internally.","created_at":"2019-03-12T13:05:10Z","updated_at":"2019-03-12T13:05:11Z","html_url":"https://github.com/envoyproxy/envoy/pull/6134#discussion_r264665759","pull_request_url":"https://api.github.com/repos/envoyproxy/envoy/pulls/6134","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/envoyproxy/envoy/pulls/comments/264665759"},"html":{"href":"https://github.com/envoyproxy/envoy/pull/6134#discussion_r264665759"},"pull_request":{"href":"https://api.github.com/repos/envoyproxy/envoy/pulls/6134"}},"in_reply_to_id":263171571},"pull_request":{"url":"https://api.github.com/repos/envoyproxy/envoy/pulls/6134","id":257244970,"node_id":"MDExOlB1bGxSZXF1ZXN0MjU3MjQ0OTcw","html_url":"https://github.com/envoyproxy/envoy/pull/6134","diff_url":"https://github.com/envoyproxy/envoy/pull/6134.diff","patch_url":"https://github.com/envoyproxy/envoy/pull/6134.patch","issue_url":"https://api.github.com/repos/envoyproxy/envoy/issues/6134","number":6134,"state":"open","locked":false,"title":" runtime: codifying runtime guarded features","user":{"login":"alyssawilk","id":18220477,"node_id":"MDQ6VXNlcjE4MjIwNDc3","avatar_url":"https://avatars2.githubusercontent.com/u/18220477?v=4","gravatar_id":"","url":"https://api.github.com/users/alyssawilk","html_url":"https://github.com/alyssawilk","followers_url":"https://api.github.com/users/alyssawilk/followers","following_url":"https://api.github.com/users/alyssawilk/following{/other_user}","gists_url":"https://api.github.com/users/alyssawilk/gists{/gist_id}","starred_url":"https://api.github.com/users/alyssawilk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alyssawilk/subscriptions","organizations_url":"https://api.github.com/users/alyssawilk/orgs","repos_url":"https://api.github.com/users/alyssawilk/repos","events_url":"https://api.github.com/users/alyssawilk/events{/privacy}","received_events_url":"https://api.github.com/users/alyssawilk/received_events","type":"User","site_admin":false},"body":"Documenting best practices and adding some tooling for guarding high risk features \r\n\r\nRisk Level: Low (mostly new code)\r\nTesting: Added new unit tests\r\nDocs Changes: updated CONTRIBUTING.md\r\nRelease Notes: n/a\r\nPart of #5693  (TODO: handling deprecating and adding tooling scripts)\r\n","created_at":"2019-02-28T22:03:08Z","updated_at":"2019-03-12T13:05:11Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e3b7d7dab1391fe1e4ab4a0c175dc19e731d6579","assignee":{"login":"lizan","id":1016047,"node_id":"MDQ6VXNlcjEwMTYwNDc=","avatar_url":"https://avatars1.githubusercontent.com/u/1016047?v=4","gravatar_id":"","url":"https://api.github.com/users/lizan","html_url":"https://github.com/lizan","followers_url":"https://api.github.com/users/lizan/followers","following_url":"https://api.github.com/users/lizan/following{/other_user}","gists_url":"https://api.github.com/users/lizan/gists{/gist_id}","starred_url":"https://api.github.com/users/lizan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lizan/subscriptions","organizations_url":"https://api.github.com/users/lizan/orgs","repos_url":"https://api.github.com/users/lizan/repos","events_url":"https://api.github.com/users/lizan/events{/privacy}","received_events_url":"https://api.github.com/users/lizan/received_events","type":"User","site_admin":false},"assignees":[{"login":"lizan","id":1016047,"node_id":"MDQ6VXNlcjEwMTYwNDc=","avatar_url":"https://avatars1.githubusercontent.com/u/1016047?v=4","gravatar_id":"","url":"https://api.github.com/users/lizan","html_url":"https://github.com/lizan","followers_url":"https://api.github.com/users/lizan/followers","following_url":"https://api.github.com/users/lizan/following{/other_user}","gists_url":"https://api.github.com/users/lizan/gists{/gist_id}","starred_url":"https://api.github.com/users/lizan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lizan/subscriptions","organizations_url":"https://api.github.com/users/lizan/orgs","repos_url":"https://api.github.com/users/lizan/repos","events_url":"https://api.github.com/users/lizan/events{/privacy}","received_events_url":"https://api.github.com/users/lizan/received_events","type":"User","site_admin":false},{"login":"mattklein123","id":6305260,"node_id":"MDQ6VXNlcjYzMDUyNjA=","avatar_url":"https://avatars3.githubusercontent.com/u/6305260?v=4","gravatar_id":"","url":"https://api.github.com/users/mattklein123","html_url":"https://github.com/mattklein123","followers_url":"https://api.github.com/users/mattklein123/followers","following_url":"https://api.github.com/users/mattklein123/following{/other_user}","gists_url":"https://api.github.com/users/mattklein123/gists{/gist_id}","starred_url":"https://api.github.com/users/mattklein123/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattklein123/subscriptions","organizations_url":"https://api.github.com/users/mattklein123/orgs","repos_url":"https://api.github.com/users/mattklein123/repos","events_url":"https://api.github.com/users/mattklein123/events{/privacy}","received_events_url":"https://api.github.com/users/mattklein123/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/envoyproxy/envoy/pulls/6134/commits","review_comments_url":"https://api.github.com/repos/envoyproxy/envoy/pulls/6134/comments","review_comment_url":"https://api.github.com/repos/envoyproxy/envoy/pulls/comments{/number}","comments_url":"https://api.github.com/repos/envoyproxy/envoy/issues/6134/comments","statuses_url":"https://api.github.com/repos/envoyproxy/envoy/statuses/b5cf76cf055e20db4d37e95ef0986fec4dbb67fd","head":{"label":"alyssawilk:flags","ref":"flags","sha":"b5cf76cf055e20db4d37e95ef0986fec4dbb67fd","user":{"login":"alyssawilk","id":18220477,"node_id":"MDQ6VXNlcjE4MjIwNDc3","avatar_url":"https://avatars2.githubusercontent.com/u/18220477?v=4","gravatar_id":"","url":"https://api.github.com/users/alyssawilk","html_url":"https://github.com/alyssawilk","followers_url":"https://api.github.com/users/alyssawilk/followers","following_url":"https://api.github.com/users/alyssawilk/following{/other_user}","gists_url":"https://api.github.com/users/alyssawilk/gists{/gist_id}","starred_url":"https://api.github.com/users/alyssawilk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alyssawilk/subscriptions","organizations_url":"https://api.github.com/users/alyssawilk/orgs","repos_url":"https://api.github.com/users/alyssawilk/repos","events_url":"https://api.github.com/users/alyssawilk/events{/privacy}","received_events_url":"https://api.github.com/users/alyssawilk/received_events","type":"User","site_admin":false},"repo":{"id":90895865,"node_id":"MDEwOlJlcG9zaXRvcnk5MDg5NTg2NQ==","name":"envoy","full_name":"alyssawilk/envoy","private":false,"owner":{"login":"alyssawilk","id":18220477,"node_id":"MDQ6VXNlcjE4MjIwNDc3","avatar_url":"https://avatars2.githubusercontent.com/u/18220477?v=4","gravatar_id":"","url":"https://api.github.com/users/alyssawilk","html_url":"https://github.com/alyssawilk","followers_url":"https://api.github.com/users/alyssawilk/followers","following_url":"https://api.github.com/users/alyssawilk/following{/other_user}","gists_url":"https://api.github.com/users/alyssawilk/gists{/gist_id}","starred_url":"https://api.github.com/users/alyssawilk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alyssawilk/subscriptions","organizations_url":"https://api.github.com/users/alyssawilk/orgs","repos_url":"https://api.github.com/users/alyssawilk/repos","events_url":"https://api.github.com/users/alyssawilk/events{/privacy}","received_events_url":"https://api.github.com/users/alyssawilk/received_events","type":"User","site_admin":false},"html_url":"https://github.com/alyssawilk/envoy","description":"C++ front/service proxy","fork":true,"url":"https://api.github.com/repos/alyssawilk/envoy","forks_url":"https://api.github.com/repos/alyssawilk/envoy/forks","keys_url":"https://api.github.com/repos/alyssawilk/envoy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alyssawilk/envoy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alyssawilk/envoy/teams","hooks_url":"https://api.github.com/repos/alyssawilk/envoy/hooks","issue_events_url":"https://api.github.com/repos/alyssawilk/envoy/issues/events{/number}","events_url":"https://api.github.com/repos/alyssawilk/envoy/events","assignees_url":"https://api.github.com/repos/alyssawilk/envoy/assignees{/user}","branches_url":"https://api.github.com/repos/alyssawilk/envoy/branches{/branch}","tags_url":"https://api.github.com/repos/alyssawilk/envoy/tags","blobs_url":"https://api.github.com/repos/alyssawilk/envoy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alyssawilk/envoy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alyssawilk/envoy/git/refs{/sha}","trees_url":"https://api.github.com/repos/alyssawilk/envoy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alyssawilk/envoy/statuses/{sha}","languages_url":"https://api.github.com/repos/alyssawilk/envoy/languages","stargazers_url":"https://api.github.com/repos/alyssawilk/envoy/stargazers","contributors_url":"https://api.github.com/repos/alyssawilk/envoy/contributors","subscribers_url":"https://api.github.com/repos/alyssawilk/envoy/subscribers","subscription_url":"https://api.github.com/repos/alyssawilk/envoy/subscription","commits_url":"https://api.github.com/repos/alyssawilk/envoy/commits{/sha}","git_commits_url":"https://api.github.com/repos/alyssawilk/envoy/git/commits{/sha}","comments_url":"https://api.github.com/repos/alyssawilk/envoy/comments{/number}","issue_comment_url":"https://api.github.com/repos/alyssawilk/envoy/issues/comments{/number}","contents_url":"https://api.github.com/repos/alyssawilk/envoy/contents/{+path}","compare_url":"https://api.github.com/repos/alyssawilk/envoy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alyssawilk/envoy/merges","archive_url":"https://api.github.com/repos/alyssawilk/envoy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alyssawilk/envoy/downloads","issues_url":"https://api.github.com/repos/alyssawilk/envoy/issues{/number}","pulls_url":"https://api.github.com/repos/alyssawilk/envoy/pulls{/number}","milestones_url":"https://api.github.com/repos/alyssawilk/envoy/milestones{/number}","notifications_url":"https://api.github.com/repos/alyssawilk/envoy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alyssawilk/envoy/labels{/name}","releases_url":"https://api.github.com/repos/alyssawilk/envoy/releases{/id}","deployments_url":"https://api.github.com/repos/alyssawilk/envoy/deployments","created_at":"2017-05-10T18:25:25Z","updated_at":"2019-02-25T21:42:41Z","pushed_at":"2019-03-11T20:05:50Z","git_url":"git://github.com/alyssawilk/envoy.git","ssh_url":"git@github.com:alyssawilk/envoy.git","clone_url":"https://github.com/alyssawilk/envoy.git","svn_url":"https://github.com/alyssawilk/envoy","homepage":"https://lyft.github.io/envoy","size":29989,"stargazers_count":0,"watchers_count":0,"language":"C++","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","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"envoyproxy:master","ref":"master","sha":"b89162d83f2d18328d45c4376e016b676afb3af7","user":{"login":"envoyproxy","id":30125649,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMwMTI1NjQ5","avatar_url":"https://avatars1.githubusercontent.com/u/30125649?v=4","gravatar_id":"","url":"https://api.github.com/users/envoyproxy","html_url":"https://github.com/envoyproxy","followers_url":"https://api.github.com/users/envoyproxy/followers","following_url":"https://api.github.com/users/envoyproxy/following{/other_user}","gists_url":"https://api.github.com/users/envoyproxy/gists{/gist_id}","starred_url":"https://api.github.com/users/envoyproxy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/envoyproxy/subscriptions","organizations_url":"https://api.github.com/users/envoyproxy/orgs","repos_url":"https://api.github.com/users/envoyproxy/repos","events_url":"https://api.github.com/users/envoyproxy/events{/privacy}","received_events_url":"https://api.github.com/users/envoyproxy/received_events","type":"Organization","site_admin":false},"repo":{"id":65214191,"node_id":"MDEwOlJlcG9zaXRvcnk2NTIxNDE5MQ==","name":"envoy","full_name":"envoyproxy/envoy","private":false,"owner":{"login":"envoyproxy","id":30125649,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMwMTI1NjQ5","avatar_url":"https://avatars1.githubusercontent.com/u/30125649?v=4","gravatar_id":"","url":"https://api.github.com/users/envoyproxy","html_url":"https://github.com/envoyproxy","followers_url":"https://api.github.com/users/envoyproxy/followers","following_url":"https://api.github.com/users/envoyproxy/following{/other_user}","gists_url":"https://api.github.com/users/envoyproxy/gists{/gist_id}","starred_url":"https://api.github.com/users/envoyproxy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/envoyproxy/subscriptions","organizations_url":"https://api.github.com/users/envoyproxy/orgs","repos_url":"https://api.github.com/users/envoyproxy/repos","events_url":"https://api.github.com/users/envoyproxy/events{/privacy}","received_events_url":"https://api.github.com/users/envoyproxy/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/envoyproxy/envoy","description":"Cloud-native high-performance edge/middle/service proxy","fork":false,"url":"https://api.github.com/repos/envoyproxy/envoy","forks_url":"https://api.github.com/repos/envoyproxy/envoy/forks","keys_url":"https://api.github.com/repos/envoyproxy/envoy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/envoyproxy/envoy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/envoyproxy/envoy/teams","hooks_url":"https://api.github.com/repos/envoyproxy/envoy/hooks","issue_events_url":"https://api.github.com/repos/envoyproxy/envoy/issues/events{/number}","events_url":"https://api.github.com/repos/envoyproxy/envoy/events","assignees_url":"https://api.github.com/repos/envoyproxy/envoy/assignees{/user}","branches_url":"https://api.github.com/repos/envoyproxy/envoy/branches{/branch}","tags_url":"https://api.github.com/repos/envoyproxy/envoy/tags","blobs_url":"https://api.github.com/repos/envoyproxy/envoy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/envoyproxy/envoy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/envoyproxy/envoy/git/refs{/sha}","trees_url":"https://api.github.com/repos/envoyproxy/envoy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/envoyproxy/envoy/statuses/{sha}","languages_url":"https://api.github.com/repos/envoyproxy/envoy/languages","stargazers_url":"https://api.github.com/repos/envoyproxy/envoy/stargazers","contributors_url":"https://api.github.com/repos/envoyproxy/envoy/contributors","subscribers_url":"https://api.github.com/repos/envoyproxy/envoy/subscribers","subscription_url":"https://api.github.com/repos/envoyproxy/envoy/subscription","commits_url":"https://api.github.com/repos/envoyproxy/envoy/commits{/sha}","git_commits_url":"https://api.github.com/repos/envoyproxy/envoy/git/commits{/sha}","comments_url":"https://api.github.com/repos/envoyproxy/envoy/comments{/number}","issue_comment_url":"https://api.github.com/repos/envoyproxy/envoy/issues/comments{/number}","contents_url":"https://api.github.com/repos/envoyproxy/envoy/contents/{+path}","compare_url":"https://api.github.com/repos/envoyproxy/envoy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/envoyproxy/envoy/merges","archive_url":"https://api.github.com/repos/envoyproxy/envoy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/envoyproxy/envoy/downloads","issues_url":"https://api.github.com/repos/envoyproxy/envoy/issues{/number}","pulls_url":"https://api.github.com/repos/envoyproxy/envoy/pulls{/number}","milestones_url":"https://api.github.com/repos/envoyproxy/envoy/milestones{/number}","notifications_url":"https://api.github.com/repos/envoyproxy/envoy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/envoyproxy/envoy/labels{/name}","releases_url":"https://api.github.com/repos/envoyproxy/envoy/releases{/id}","deployments_url":"https://api.github.com/repos/envoyproxy/envoy/deployments","created_at":"2016-08-08T15:07:24Z","updated_at":"2019-03-12T12:55:53Z","pushed_at":"2019-03-12T11:21:42Z","git_url":"git://github.com/envoyproxy/envoy.git","ssh_url":"git@github.com:envoyproxy/envoy.git","clone_url":"https://github.com/envoyproxy/envoy.git","svn_url":"https://github.com/envoyproxy/envoy","homepage":"https://www.envoyproxy.io","size":30078,"stargazers_count":8722,"watchers_count":8722,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1298,"mirror_url":null,"archived":false,"open_issues_count":481,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":1298,"open_issues":481,"watchers":8722,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/envoyproxy/envoy/pulls/6134"},"html":{"href":"https://github.com/envoyproxy/envoy/pull/6134"},"issue":{"href":"https://api.github.com/repos/envoyproxy/envoy/issues/6134"},"comments":{"href":"https://api.github.com/repos/envoyproxy/envoy/issues/6134/comments"},"review_comments":{"href":"https://api.github.com/repos/envoyproxy/envoy/pulls/6134/comments"},"review_comment":{"href":"https://api.github.com/repos/envoyproxy/envoy/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/envoyproxy/envoy/pulls/6134/commits"},"statuses":{"href":"https://api.github.com/repos/envoyproxy/envoy/statuses/b5cf76cf055e20db4d37e95ef0986fec4dbb67fd"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"alyssawilk"}}