{"action":"closed","number":150,"pull_request":{"url":"https://api.github.com/repos/unbounce/iidy/pulls/150","id":231626769,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMxNjI2NzY5","html_url":"https://github.com/unbounce/iidy/pull/150","diff_url":"https://github.com/unbounce/iidy/pull/150.diff","patch_url":"https://github.com/unbounce/iidy/pull/150.patch","issue_url":"https://api.github.com/repos/unbounce/iidy/issues/150","number":150,"state":"closed","locked":false,"title":"Refactor Visitor functions to allow extending it's behaviour","user":{"login":"jpb","id":752977,"node_id":"MDQ6VXNlcjc1Mjk3Nw==","avatar_url":"https://avatars3.githubusercontent.com/u/752977?v=4","gravatar_id":"","url":"https://api.github.com/users/jpb","html_url":"https://github.com/jpb","followers_url":"https://api.github.com/users/jpb/followers","following_url":"https://api.github.com/users/jpb/following{/other_user}","gists_url":"https://api.github.com/users/jpb/gists{/gist_id}","starred_url":"https://api.github.com/users/jpb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpb/subscriptions","organizations_url":"https://api.github.com/users/jpb/orgs","repos_url":"https://api.github.com/users/jpb/repos","events_url":"https://api.github.com/users/jpb/events{/privacy}","received_events_url":"https://api.github.com/users/jpb/received_events","type":"User","site_admin":false},"body":"This change moves the `visit*` functions into a class so that they can be extended for other use-cases. The main reasons I want something like this is to:\r\n\r\n- filter the `$imports` for commands that don't need all the fields defined in the arguments file, such as the template approval commands \r\n  - this would remove the requirement to satisfy all imports even when they are not used\r\n- extract the `env` `$imports` for #146 \r\n\r\nThis would also enable some nice-to-haves, such as warning when an import is not used.\r\n\r\n- [x] remove excessive instantiation of `Visitor` in `preprocess`\r\n- [x] see if the `VariablesVisitor` can work without having the variables defined in `env.$envValues` (that is, without having resolved the `$imports` and `$defs`)\r\n- [x] cleanup `MyCompiler`\r\n- [x] cleanup `visitor.ts` refactor","created_at":"2018-11-16T19:05:59Z","updated_at":"2018-11-20T21:31:06Z","closed_at":"2018-11-20T21:31:06Z","merged_at":"2018-11-20T21:31:06Z","merge_commit_sha":"2fcd4e7601821231f827f07c82af5314aaecc8c2","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/unbounce/iidy/pulls/150/commits","review_comments_url":"https://api.github.com/repos/unbounce/iidy/pulls/150/comments","review_comment_url":"https://api.github.com/repos/unbounce/iidy/pulls/comments{/number}","comments_url":"https://api.github.com/repos/unbounce/iidy/issues/150/comments","statuses_url":"https://api.github.com/repos/unbounce/iidy/statuses/274f9508dd95fbb4f30c28dd321812b3369b7458","head":{"label":"unbounce:refactor-visitor","ref":"refactor-visitor","sha":"274f9508dd95fbb4f30c28dd321812b3369b7458","user":{"login":"unbounce","id":115120,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExNTEyMA==","avatar_url":"https://avatars1.githubusercontent.com/u/115120?v=4","gravatar_id":"","url":"https://api.github.com/users/unbounce","html_url":"https://github.com/unbounce","followers_url":"https://api.github.com/users/unbounce/followers","following_url":"https://api.github.com/users/unbounce/following{/other_user}","gists_url":"https://api.github.com/users/unbounce/gists{/gist_id}","starred_url":"https://api.github.com/users/unbounce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/unbounce/subscriptions","organizations_url":"https://api.github.com/users/unbounce/orgs","repos_url":"https://api.github.com/users/unbounce/repos","events_url":"https://api.github.com/users/unbounce/events{/privacy}","received_events_url":"https://api.github.com/users/unbounce/received_events","type":"Organization","site_admin":false},"repo":{"id":99076603,"node_id":"MDEwOlJlcG9zaXRvcnk5OTA3NjYwMw==","name":"iidy","full_name":"unbounce/iidy","private":false,"owner":{"login":"unbounce","id":115120,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExNTEyMA==","avatar_url":"https://avatars1.githubusercontent.com/u/115120?v=4","gravatar_id":"","url":"https://api.github.com/users/unbounce","html_url":"https://github.com/unbounce","followers_url":"https://api.github.com/users/unbounce/followers","following_url":"https://api.github.com/users/unbounce/following{/other_user}","gists_url":"https://api.github.com/users/unbounce/gists{/gist_id}","starred_url":"https://api.github.com/users/unbounce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/unbounce/subscriptions","organizations_url":"https://api.github.com/users/unbounce/orgs","repos_url":"https://api.github.com/users/unbounce/repos","events_url":"https://api.github.com/users/unbounce/events{/privacy}","received_events_url":"https://api.github.com/users/unbounce/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/unbounce/iidy","description":"iidy (Is it done yet?) -- CloudFormation with Confidence","fork":false,"url":"https://api.github.com/repos/unbounce/iidy","forks_url":"https://api.github.com/repos/unbounce/iidy/forks","keys_url":"https://api.github.com/repos/unbounce/iidy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/unbounce/iidy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/unbounce/iidy/teams","hooks_url":"https://api.github.com/repos/unbounce/iidy/hooks","issue_events_url":"https://api.github.com/repos/unbounce/iidy/issues/events{/number}","events_url":"https://api.github.com/repos/unbounce/iidy/events","assignees_url":"https://api.github.com/repos/unbounce/iidy/assignees{/user}","branches_url":"https://api.github.com/repos/unbounce/iidy/branches{/branch}","tags_url":"https://api.github.com/repos/unbounce/iidy/tags","blobs_url":"https://api.github.com/repos/unbounce/iidy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/unbounce/iidy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/unbounce/iidy/git/refs{/sha}","trees_url":"https://api.github.com/repos/unbounce/iidy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/unbounce/iidy/statuses/{sha}","languages_url":"https://api.github.com/repos/unbounce/iidy/languages","stargazers_url":"https://api.github.com/repos/unbounce/iidy/stargazers","contributors_url":"https://api.github.com/repos/unbounce/iidy/contributors","subscribers_url":"https://api.github.com/repos/unbounce/iidy/subscribers","subscription_url":"https://api.github.com/repos/unbounce/iidy/subscription","commits_url":"https://api.github.com/repos/unbounce/iidy/commits{/sha}","git_commits_url":"https://api.github.com/repos/unbounce/iidy/git/commits{/sha}","comments_url":"https://api.github.com/repos/unbounce/iidy/comments{/number}","issue_comment_url":"https://api.github.com/repos/unbounce/iidy/issues/comments{/number}","contents_url":"https://api.github.com/repos/unbounce/iidy/contents/{+path}","compare_url":"https://api.github.com/repos/unbounce/iidy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/unbounce/iidy/merges","archive_url":"https://api.github.com/repos/unbounce/iidy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/unbounce/iidy/downloads","issues_url":"https://api.github.com/repos/unbounce/iidy/issues{/number}","pulls_url":"https://api.github.com/repos/unbounce/iidy/pulls{/number}","milestones_url":"https://api.github.com/repos/unbounce/iidy/milestones{/number}","notifications_url":"https://api.github.com/repos/unbounce/iidy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/unbounce/iidy/labels{/name}","releases_url":"https://api.github.com/repos/unbounce/iidy/releases{/id}","deployments_url":"https://api.github.com/repos/unbounce/iidy/deployments","created_at":"2017-08-02T05:42:54Z","updated_at":"2018-11-20T18:55:44Z","pushed_at":"2018-11-20T21:31:06Z","git_url":"git://github.com/unbounce/iidy.git","ssh_url":"git@github.com:unbounce/iidy.git","clone_url":"https://github.com/unbounce/iidy.git","svn_url":"https://github.com/unbounce/iidy","homepage":"","size":742,"stargazers_count":33,"watchers_count":33,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":11,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":3,"open_issues":11,"watchers":33,"default_branch":"master"}},"base":{"label":"unbounce:master","ref":"master","sha":"d0e627a5f7738ac9fca80f5a68bc5f48ee631d1c","user":{"login":"unbounce","id":115120,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExNTEyMA==","avatar_url":"https://avatars1.githubusercontent.com/u/115120?v=4","gravatar_id":"","url":"https://api.github.com/users/unbounce","html_url":"https://github.com/unbounce","followers_url":"https://api.github.com/users/unbounce/followers","following_url":"https://api.github.com/users/unbounce/following{/other_user}","gists_url":"https://api.github.com/users/unbounce/gists{/gist_id}","starred_url":"https://api.github.com/users/unbounce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/unbounce/subscriptions","organizations_url":"https://api.github.com/users/unbounce/orgs","repos_url":"https://api.github.com/users/unbounce/repos","events_url":"https://api.github.com/users/unbounce/events{/privacy}","received_events_url":"https://api.github.com/users/unbounce/received_events","type":"Organization","site_admin":false},"repo":{"id":99076603,"node_id":"MDEwOlJlcG9zaXRvcnk5OTA3NjYwMw==","name":"iidy","full_name":"unbounce/iidy","private":false,"owner":{"login":"unbounce","id":115120,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExNTEyMA==","avatar_url":"https://avatars1.githubusercontent.com/u/115120?v=4","gravatar_id":"","url":"https://api.github.com/users/unbounce","html_url":"https://github.com/unbounce","followers_url":"https://api.github.com/users/unbounce/followers","following_url":"https://api.github.com/users/unbounce/following{/other_user}","gists_url":"https://api.github.com/users/unbounce/gists{/gist_id}","starred_url":"https://api.github.com/users/unbounce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/unbounce/subscriptions","organizations_url":"https://api.github.com/users/unbounce/orgs","repos_url":"https://api.github.com/users/unbounce/repos","events_url":"https://api.github.com/users/unbounce/events{/privacy}","received_events_url":"https://api.github.com/users/unbounce/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/unbounce/iidy","description":"iidy (Is it done yet?) -- CloudFormation with Confidence","fork":false,"url":"https://api.github.com/repos/unbounce/iidy","forks_url":"https://api.github.com/repos/unbounce/iidy/forks","keys_url":"https://api.github.com/repos/unbounce/iidy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/unbounce/iidy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/unbounce/iidy/teams","hooks_url":"https://api.github.com/repos/unbounce/iidy/hooks","issue_events_url":"https://api.github.com/repos/unbounce/iidy/issues/events{/number}","events_url":"https://api.github.com/repos/unbounce/iidy/events","assignees_url":"https://api.github.com/repos/unbounce/iidy/assignees{/user}","branches_url":"https://api.github.com/repos/unbounce/iidy/branches{/branch}","tags_url":"https://api.github.com/repos/unbounce/iidy/tags","blobs_url":"https://api.github.com/repos/unbounce/iidy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/unbounce/iidy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/unbounce/iidy/git/refs{/sha}","trees_url":"https://api.github.com/repos/unbounce/iidy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/unbounce/iidy/statuses/{sha}","languages_url":"https://api.github.com/repos/unbounce/iidy/languages","stargazers_url":"https://api.github.com/repos/unbounce/iidy/stargazers","contributors_url":"https://api.github.com/repos/unbounce/iidy/contributors","subscribers_url":"https://api.github.com/repos/unbounce/iidy/subscribers","subscription_url":"https://api.github.com/repos/unbounce/iidy/subscription","commits_url":"https://api.github.com/repos/unbounce/iidy/commits{/sha}","git_commits_url":"https://api.github.com/repos/unbounce/iidy/git/commits{/sha}","comments_url":"https://api.github.com/repos/unbounce/iidy/comments{/number}","issue_comment_url":"https://api.github.com/repos/unbounce/iidy/issues/comments{/number}","contents_url":"https://api.github.com/repos/unbounce/iidy/contents/{+path}","compare_url":"https://api.github.com/repos/unbounce/iidy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/unbounce/iidy/merges","archive_url":"https://api.github.com/repos/unbounce/iidy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/unbounce/iidy/downloads","issues_url":"https://api.github.com/repos/unbounce/iidy/issues{/number}","pulls_url":"https://api.github.com/repos/unbounce/iidy/pulls{/number}","milestones_url":"https://api.github.com/repos/unbounce/iidy/milestones{/number}","notifications_url":"https://api.github.com/repos/unbounce/iidy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/unbounce/iidy/labels{/name}","releases_url":"https://api.github.com/repos/unbounce/iidy/releases{/id}","deployments_url":"https://api.github.com/repos/unbounce/iidy/deployments","created_at":"2017-08-02T05:42:54Z","updated_at":"2018-11-20T18:55:44Z","pushed_at":"2018-11-20T21:31:06Z","git_url":"git://github.com/unbounce/iidy.git","ssh_url":"git@github.com:unbounce/iidy.git","clone_url":"https://github.com/unbounce/iidy.git","svn_url":"https://github.com/unbounce/iidy","homepage":"","size":742,"stargazers_count":33,"watchers_count":33,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":11,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":3,"open_issues":11,"watchers":33,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/unbounce/iidy/pulls/150"},"html":{"href":"https://github.com/unbounce/iidy/pull/150"},"issue":{"href":"https://api.github.com/repos/unbounce/iidy/issues/150"},"comments":{"href":"https://api.github.com/repos/unbounce/iidy/issues/150/comments"},"review_comments":{"href":"https://api.github.com/repos/unbounce/iidy/pulls/150/comments"},"review_comment":{"href":"https://api.github.com/repos/unbounce/iidy/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/unbounce/iidy/pulls/150/commits"},"statuses":{"href":"https://api.github.com/repos/unbounce/iidy/statuses/274f9508dd95fbb4f30c28dd321812b3369b7458"}},"author_association":"COLLABORATOR","merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"jpb","id":752977,"node_id":"MDQ6VXNlcjc1Mjk3Nw==","avatar_url":"https://avatars3.githubusercontent.com/u/752977?v=4","gravatar_id":"","url":"https://api.github.com/users/jpb","html_url":"https://github.com/jpb","followers_url":"https://api.github.com/users/jpb/followers","following_url":"https://api.github.com/users/jpb/following{/other_user}","gists_url":"https://api.github.com/users/jpb/gists{/gist_id}","starred_url":"https://api.github.com/users/jpb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpb/subscriptions","organizations_url":"https://api.github.com/users/jpb/orgs","repos_url":"https://api.github.com/users/jpb/repos","events_url":"https://api.github.com/users/jpb/events{/privacy}","received_events_url":"https://api.github.com/users/jpb/received_events","type":"User","site_admin":false},"comments":2,"review_comments":3,"maintainer_can_modify":false,"commits":15,"additions":907,"deletions":667,"changed_files":9}}
{"actor":{"display_login":"jpb"}}