{"action":"created","comment":{"url":"https://api.github.com/repos/tracespace/tracespace/pulls/comments/230558753","pull_request_review_id":171331397,"id":230558753,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzMDU1ODc1Mw==","diff_hunk":"@@ -77,7 +77,7 @@ module.exports = {\n     type: 'object',\n     example: {\n       cmd:\n-        '$0 -l.arduino-uno.drd.type=drl -l.arduino-uno.drd.options.filetype=drill',\n+        '$0 -l.arduino-uno.drd.type=drill -l.arduino-uno.drd.options.filetype=drill',\n       desc:\n         'Set layer type of `arduino-uno.drd` to `drl` layer and parse as a drill file',","path":"packages/cli/lib/options.js","position":7,"original_position":7,"commit_id":"51b8a44de5ff8cf89df334a9e6b470e909bd4868","original_commit_id":"51b8a44de5ff8cf89df334a9e6b470e909bd4868","user":{"login":"mcous","id":2963448,"node_id":"MDQ6VXNlcjI5NjM0NDg=","avatar_url":"https://avatars1.githubusercontent.com/u/2963448?v=4","gravatar_id":"","url":"https://api.github.com/users/mcous","html_url":"https://github.com/mcous","followers_url":"https://api.github.com/users/mcous/followers","following_url":"https://api.github.com/users/mcous/following{/other_user}","gists_url":"https://api.github.com/users/mcous/gists{/gist_id}","starred_url":"https://api.github.com/users/mcous/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcous/subscriptions","organizations_url":"https://api.github.com/users/mcous/orgs","repos_url":"https://api.github.com/users/mcous/repos","events_url":"https://api.github.com/users/mcous/events{/privacy}","received_events_url":"https://api.github.com/users/mcous/received_events","type":"User","site_admin":false},"body":"Oops, also need to update the description","created_at":"2018-11-03T15:29:58Z","updated_at":"2018-11-03T15:42:21Z","html_url":"https://github.com/tracespace/tracespace/pull/77#discussion_r230558753","pull_request_url":"https://api.github.com/repos/tracespace/tracespace/pulls/77","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/tracespace/tracespace/pulls/comments/230558753"},"html":{"href":"https://github.com/tracespace/tracespace/pull/77#discussion_r230558753"},"pull_request":{"href":"https://api.github.com/repos/tracespace/tracespace/pulls/77"}}},"pull_request":{"url":"https://api.github.com/repos/tracespace/tracespace/pulls/77","id":202097719,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAyMDk3NzE5","html_url":"https://github.com/tracespace/tracespace/pull/77","diff_url":"https://github.com/tracespace/tracespace/pull/77.diff","patch_url":"https://github.com/tracespace/tracespace/pull/77.patch","issue_url":"https://api.github.com/repos/tracespace/tracespace/issues/77","number":77,"state":"open","locked":false,"title":"feat(whats-that-gerber): Use collection of filenames to determine type","user":{"login":"mcous","id":2963448,"node_id":"MDQ6VXNlcjI5NjM0NDg=","avatar_url":"https://avatars1.githubusercontent.com/u/2963448?v=4","gravatar_id":"","url":"https://api.github.com/users/mcous","html_url":"https://github.com/mcous","followers_url":"https://api.github.com/users/mcous/followers","following_url":"https://api.github.com/users/mcous/following{/other_user}","gists_url":"https://api.github.com/users/mcous/gists{/gist_id}","starred_url":"https://api.github.com/users/mcous/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcous/subscriptions","organizations_url":"https://api.github.com/users/mcous/orgs","repos_url":"https://api.github.com/users/mcous/repos","events_url":"https://api.github.com/users/mcous/events{/privacy}","received_events_url":"https://api.github.com/users/mcous/received_events","type":"User","site_admin":false},"body":"WIP\r\n\r\n`whats-that-gerber` is almost always used to determine the layer types of a collection of filenames\r\nthat represent an entire board. By changing `wtg` to accept / identify all files at once, it can make\r\na more informed decision based on which CAD pattern the collection appears to be following.\r\n\r\n**BREAKING CHANGE:** Output of `whats-that-gerber` changed from a single string to an object keyed by filename of layer type objects\r\n\r\nCloses tracespace/whats-that-gerber#15\r\n\r\n## new usage\r\n\r\n```js\r\nconst wtg = require('whats-that-gerber')\r\n\r\nconst filenames = ['my-board-F_Cu.gbr', 'my-board-B_Cu.gbr', 'foo.bar']\r\nconst typesByName = wtg(filenames)\r\n// {\r\n//   'my-board-F_Cu.gbr': {type: 'copper', side: 'top'},\r\n//   'my-board-B_Cu.gbr': {type: 'copper', side: 'bottom'},\r\n//   'foo.bar': {type: null, side: null}\r\n// }\r\n```\r\n\r\n## background / musings\r\n\r\n- I've grown to dislike the string output of `whats-that-gerber`\r\n    - An object type with the `id` but also `side` and `type` makes things easier\r\n    - e.g. #52 \r\n    - e.g. Simplification of the layer organization logic in `pcb-stackup-core`\r\n- Honestly, we _should_ be able to say \"this file doesn't look like a Gerber\" rather than the fallback being \"I guess this random file is a Gerber drawing\"\r\n- We've been getting a lot of good additions to the matchers recently, but they're hard to grok\r\n    - This PR splits the matchers up and adds the CAD package(s) associated with a given match\r\n- If we include CAD information with the matchers, we can start to build in some (very rudimentary at the moment) pattern recognition to figure out multiple/ambiguous matches\r\n    - e.g. if we decided to do tracespace/whats-that-gerber#22\r\n\r\n## TODO\r\n\r\n- [x] Refactor  pcb-stackup-core to use the new API\r\n- [x] Refactor pcb-stackup to use the new API\r\n- [x] Refactor @tracespace/fixtures to use the new API\r\n- [x] Refactor @tracespace/cli to use the new API","created_at":"2018-07-17T23:03:40Z","updated_at":"2018-11-03T15:42:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f81c3e512fbb5cd287c7a37aa13c3ac8821e6900","assignee":null,"assignees":[],"requested_reviewers":[{"login":"kasbah","id":206854,"node_id":"MDQ6VXNlcjIwNjg1NA==","avatar_url":"https://avatars1.githubusercontent.com/u/206854?v=4","gravatar_id":"","url":"https://api.github.com/users/kasbah","html_url":"https://github.com/kasbah","followers_url":"https://api.github.com/users/kasbah/followers","following_url":"https://api.github.com/users/kasbah/following{/other_user}","gists_url":"https://api.github.com/users/kasbah/gists{/gist_id}","starred_url":"https://api.github.com/users/kasbah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kasbah/subscriptions","organizations_url":"https://api.github.com/users/kasbah/orgs","repos_url":"https://api.github.com/users/kasbah/repos","events_url":"https://api.github.com/users/kasbah/events{/privacy}","received_events_url":"https://api.github.com/users/kasbah/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":994718556,"node_id":"MDU6TGFiZWw5OTQ3MTg1NTY=","url":"https://api.github.com/repos/tracespace/tracespace/labels/cli","name":"cli","color":"fbca04","default":false},{"id":242174533,"node_id":"MDU6TGFiZWwyNDIxNzQ1MzM=","url":"https://api.github.com/repos/tracespace/tracespace/labels/feature","name":"feature","color":"84b6eb","default":false},{"id":977258597,"node_id":"MDU6TGFiZWw5NzcyNTg1OTc=","url":"https://api.github.com/repos/tracespace/tracespace/labels/fixtures","name":"fixtures","color":"f9636b","default":false},{"id":912501910,"node_id":"MDU6TGFiZWw5MTI1MDE5MTA=","url":"https://api.github.com/repos/tracespace/tracespace/labels/pcb-stackup","name":"pcb-stackup","color":"e99695","default":false},{"id":977258459,"node_id":"MDU6TGFiZWw5NzcyNTg0NTk=","url":"https://api.github.com/repos/tracespace/tracespace/labels/pcb-stackup-core","name":"pcb-stackup-core","color":"5f2bc6","default":false},{"id":912502365,"node_id":"MDU6TGFiZWw5MTI1MDIzNjU=","url":"https://api.github.com/repos/tracespace/tracespace/labels/whats-that-gerber","name":"whats-that-gerber","color":"0f5c68","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/tracespace/tracespace/pulls/77/commits","review_comments_url":"https://api.github.com/repos/tracespace/tracespace/pulls/77/comments","review_comment_url":"https://api.github.com/repos/tracespace/tracespace/pulls/comments{/number}","comments_url":"https://api.github.com/repos/tracespace/tracespace/issues/77/comments","statuses_url":"https://api.github.com/repos/tracespace/tracespace/statuses/51b8a44de5ff8cf89df334a9e6b470e909bd4868","head":{"label":"tracespace:refactor-whats-that-gerber","ref":"refactor-whats-that-gerber","sha":"51b8a44de5ff8cf89df334a9e6b470e909bd4868","user":{"login":"tracespace","id":12790124,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNzkwMTI0","avatar_url":"https://avatars3.githubusercontent.com/u/12790124?v=4","gravatar_id":"","url":"https://api.github.com/users/tracespace","html_url":"https://github.com/tracespace","followers_url":"https://api.github.com/users/tracespace/followers","following_url":"https://api.github.com/users/tracespace/following{/other_user}","gists_url":"https://api.github.com/users/tracespace/gists{/gist_id}","starred_url":"https://api.github.com/users/tracespace/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tracespace/subscriptions","organizations_url":"https://api.github.com/users/tracespace/orgs","repos_url":"https://api.github.com/users/tracespace/repos","events_url":"https://api.github.com/users/tracespace/events{/privacy}","received_events_url":"https://api.github.com/users/tracespace/received_events","type":"Organization","site_admin":false},"repo":{"id":39924597,"node_id":"MDEwOlJlcG9zaXRvcnkzOTkyNDU5Nw==","name":"tracespace","full_name":"tracespace/tracespace","private":false,"owner":{"login":"tracespace","id":12790124,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNzkwMTI0","avatar_url":"https://avatars3.githubusercontent.com/u/12790124?v=4","gravatar_id":"","url":"https://api.github.com/users/tracespace","html_url":"https://github.com/tracespace","followers_url":"https://api.github.com/users/tracespace/followers","following_url":"https://api.github.com/users/tracespace/following{/other_user}","gists_url":"https://api.github.com/users/tracespace/gists{/gist_id}","starred_url":"https://api.github.com/users/tracespace/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tracespace/subscriptions","organizations_url":"https://api.github.com/users/tracespace/orgs","repos_url":"https://api.github.com/users/tracespace/repos","events_url":"https://api.github.com/users/tracespace/events{/privacy}","received_events_url":"https://api.github.com/users/tracespace/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/tracespace/tracespace","description":"⚡️generate beautiful and accurate SVG renders of printed circuit boards","fork":false,"url":"https://api.github.com/repos/tracespace/tracespace","forks_url":"https://api.github.com/repos/tracespace/tracespace/forks","keys_url":"https://api.github.com/repos/tracespace/tracespace/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tracespace/tracespace/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tracespace/tracespace/teams","hooks_url":"https://api.github.com/repos/tracespace/tracespace/hooks","issue_events_url":"https://api.github.com/repos/tracespace/tracespace/issues/events{/number}","events_url":"https://api.github.com/repos/tracespace/tracespace/events","assignees_url":"https://api.github.com/repos/tracespace/tracespace/assignees{/user}","branches_url":"https://api.github.com/repos/tracespace/tracespace/branches{/branch}","tags_url":"https://api.github.com/repos/tracespace/tracespace/tags","blobs_url":"https://api.github.com/repos/tracespace/tracespace/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tracespace/tracespace/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tracespace/tracespace/git/refs{/sha}","trees_url":"https://api.github.com/repos/tracespace/tracespace/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tracespace/tracespace/statuses/{sha}","languages_url":"https://api.github.com/repos/tracespace/tracespace/languages","stargazers_url":"https://api.github.com/repos/tracespace/tracespace/stargazers","contributors_url":"https://api.github.com/repos/tracespace/tracespace/contributors","subscribers_url":"https://api.github.com/repos/tracespace/tracespace/subscribers","subscription_url":"https://api.github.com/repos/tracespace/tracespace/subscription","commits_url":"https://api.github.com/repos/tracespace/tracespace/commits{/sha}","git_commits_url":"https://api.github.com/repos/tracespace/tracespace/git/commits{/sha}","comments_url":"https://api.github.com/repos/tracespace/tracespace/comments{/number}","issue_comment_url":"https://api.github.com/repos/tracespace/tracespace/issues/comments{/number}","contents_url":"https://api.github.com/repos/tracespace/tracespace/contents/{+path}","compare_url":"https://api.github.com/repos/tracespace/tracespace/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tracespace/tracespace/merges","archive_url":"https://api.github.com/repos/tracespace/tracespace/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tracespace/tracespace/downloads","issues_url":"https://api.github.com/repos/tracespace/tracespace/issues{/number}","pulls_url":"https://api.github.com/repos/tracespace/tracespace/pulls{/number}","milestones_url":"https://api.github.com/repos/tracespace/tracespace/milestones{/number}","notifications_url":"https://api.github.com/repos/tracespace/tracespace/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tracespace/tracespace/labels{/name}","releases_url":"https://api.github.com/repos/tracespace/tracespace/releases{/id}","deployments_url":"https://api.github.com/repos/tracespace/tracespace/deployments","created_at":"2015-07-30T01:24:20Z","updated_at":"2018-10-24T12:47:39Z","pushed_at":"2018-11-02T04:42:04Z","git_url":"git://github.com/tracespace/tracespace.git","ssh_url":"git@github.com:tracespace/tracespace.git","clone_url":"https://github.com/tracespace/tracespace.git","svn_url":"https://github.com/tracespace/tracespace","homepage":"","size":5494,"stargazers_count":336,"watchers_count":336,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":24,"mirror_url":null,"archived":false,"open_issues_count":18,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":24,"open_issues":18,"watchers":336,"default_branch":"next"}},"base":{"label":"tracespace:next","ref":"next","sha":"8f1562eb789f6556533c101e8d90bff10bc171d1","user":{"login":"tracespace","id":12790124,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNzkwMTI0","avatar_url":"https://avatars3.githubusercontent.com/u/12790124?v=4","gravatar_id":"","url":"https://api.github.com/users/tracespace","html_url":"https://github.com/tracespace","followers_url":"https://api.github.com/users/tracespace/followers","following_url":"https://api.github.com/users/tracespace/following{/other_user}","gists_url":"https://api.github.com/users/tracespace/gists{/gist_id}","starred_url":"https://api.github.com/users/tracespace/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tracespace/subscriptions","organizations_url":"https://api.github.com/users/tracespace/orgs","repos_url":"https://api.github.com/users/tracespace/repos","events_url":"https://api.github.com/users/tracespace/events{/privacy}","received_events_url":"https://api.github.com/users/tracespace/received_events","type":"Organization","site_admin":false},"repo":{"id":39924597,"node_id":"MDEwOlJlcG9zaXRvcnkzOTkyNDU5Nw==","name":"tracespace","full_name":"tracespace/tracespace","private":false,"owner":{"login":"tracespace","id":12790124,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNzkwMTI0","avatar_url":"https://avatars3.githubusercontent.com/u/12790124?v=4","gravatar_id":"","url":"https://api.github.com/users/tracespace","html_url":"https://github.com/tracespace","followers_url":"https://api.github.com/users/tracespace/followers","following_url":"https://api.github.com/users/tracespace/following{/other_user}","gists_url":"https://api.github.com/users/tracespace/gists{/gist_id}","starred_url":"https://api.github.com/users/tracespace/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tracespace/subscriptions","organizations_url":"https://api.github.com/users/tracespace/orgs","repos_url":"https://api.github.com/users/tracespace/repos","events_url":"https://api.github.com/users/tracespace/events{/privacy}","received_events_url":"https://api.github.com/users/tracespace/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/tracespace/tracespace","description":"⚡️generate beautiful and accurate SVG renders of printed circuit boards","fork":false,"url":"https://api.github.com/repos/tracespace/tracespace","forks_url":"https://api.github.com/repos/tracespace/tracespace/forks","keys_url":"https://api.github.com/repos/tracespace/tracespace/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tracespace/tracespace/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tracespace/tracespace/teams","hooks_url":"https://api.github.com/repos/tracespace/tracespace/hooks","issue_events_url":"https://api.github.com/repos/tracespace/tracespace/issues/events{/number}","events_url":"https://api.github.com/repos/tracespace/tracespace/events","assignees_url":"https://api.github.com/repos/tracespace/tracespace/assignees{/user}","branches_url":"https://api.github.com/repos/tracespace/tracespace/branches{/branch}","tags_url":"https://api.github.com/repos/tracespace/tracespace/tags","blobs_url":"https://api.github.com/repos/tracespace/tracespace/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tracespace/tracespace/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tracespace/tracespace/git/refs{/sha}","trees_url":"https://api.github.com/repos/tracespace/tracespace/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tracespace/tracespace/statuses/{sha}","languages_url":"https://api.github.com/repos/tracespace/tracespace/languages","stargazers_url":"https://api.github.com/repos/tracespace/tracespace/stargazers","contributors_url":"https://api.github.com/repos/tracespace/tracespace/contributors","subscribers_url":"https://api.github.com/repos/tracespace/tracespace/subscribers","subscription_url":"https://api.github.com/repos/tracespace/tracespace/subscription","commits_url":"https://api.github.com/repos/tracespace/tracespace/commits{/sha}","git_commits_url":"https://api.github.com/repos/tracespace/tracespace/git/commits{/sha}","comments_url":"https://api.github.com/repos/tracespace/tracespace/comments{/number}","issue_comment_url":"https://api.github.com/repos/tracespace/tracespace/issues/comments{/number}","contents_url":"https://api.github.com/repos/tracespace/tracespace/contents/{+path}","compare_url":"https://api.github.com/repos/tracespace/tracespace/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tracespace/tracespace/merges","archive_url":"https://api.github.com/repos/tracespace/tracespace/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tracespace/tracespace/downloads","issues_url":"https://api.github.com/repos/tracespace/tracespace/issues{/number}","pulls_url":"https://api.github.com/repos/tracespace/tracespace/pulls{/number}","milestones_url":"https://api.github.com/repos/tracespace/tracespace/milestones{/number}","notifications_url":"https://api.github.com/repos/tracespace/tracespace/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tracespace/tracespace/labels{/name}","releases_url":"https://api.github.com/repos/tracespace/tracespace/releases{/id}","deployments_url":"https://api.github.com/repos/tracespace/tracespace/deployments","created_at":"2015-07-30T01:24:20Z","updated_at":"2018-10-24T12:47:39Z","pushed_at":"2018-11-02T04:42:04Z","git_url":"git://github.com/tracespace/tracespace.git","ssh_url":"git@github.com:tracespace/tracespace.git","clone_url":"https://github.com/tracespace/tracespace.git","svn_url":"https://github.com/tracespace/tracespace","homepage":"","size":5494,"stargazers_count":336,"watchers_count":336,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":24,"mirror_url":null,"archived":false,"open_issues_count":18,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":24,"open_issues":18,"watchers":336,"default_branch":"next"}},"_links":{"self":{"href":"https://api.github.com/repos/tracespace/tracespace/pulls/77"},"html":{"href":"https://github.com/tracespace/tracespace/pull/77"},"issue":{"href":"https://api.github.com/repos/tracespace/tracespace/issues/77"},"comments":{"href":"https://api.github.com/repos/tracespace/tracespace/issues/77/comments"},"review_comments":{"href":"https://api.github.com/repos/tracespace/tracespace/pulls/77/comments"},"review_comment":{"href":"https://api.github.com/repos/tracespace/tracespace/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/tracespace/tracespace/pulls/77/commits"},"statuses":{"href":"https://api.github.com/repos/tracespace/tracespace/statuses/51b8a44de5ff8cf89df334a9e6b470e909bd4868"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"mcous"}}