{"action":"created","comment":{"url":"https://api.github.com/repos/twilio/guardrail/pulls/comments/227859424","pull_request_review_id":167996265,"id":227859424,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNzg1OTQyNA==","diff_hunk":"@@ -90,7 +90,13 @@ object CirceProtocolGenerator {\n   object ModelProtocolTermInterp extends (ModelProtocolTerm ~> Target) {\n     def apply[T](term: ModelProtocolTerm[T]): Target[T] = term match {\n       case ExtractProperties(swagger) =>\n-        Target.pure(Either.fromOption(Option(swagger.getProperties()).map(_.asScala.toList), \"Model has no properties\"))\n+        Target.pure(\n+          (swagger match {\n+            case m: ModelImpl        => Option(m.getProperties)\n+            case comp: ComposedModel => comp.getAllOf().asScala.toList.get(1).flatMap(prop => Option(prop.getProperties))","path":"modules/codegen/src/main/scala/com/twilio/guardrail/generators/CirceProtocolGenerator.scala","position":17,"original_position":17,"commit_id":"81e3555b77a54c59008db912fa5f5f30cd1d6a83","original_commit_id":"bebd15fb1c9912e63701e7a1d8bf8fb18b6a4ac2","user":{"login":"blast-hardcheese","id":278900,"node_id":"MDQ6VXNlcjI3ODkwMA==","avatar_url":"https://avatars1.githubusercontent.com/u/278900?v=4","gravatar_id":"","url":"https://api.github.com/users/blast-hardcheese","html_url":"https://github.com/blast-hardcheese","followers_url":"https://api.github.com/users/blast-hardcheese/followers","following_url":"https://api.github.com/users/blast-hardcheese/following{/other_user}","gists_url":"https://api.github.com/users/blast-hardcheese/gists{/gist_id}","starred_url":"https://api.github.com/users/blast-hardcheese/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blast-hardcheese/subscriptions","organizations_url":"https://api.github.com/users/blast-hardcheese/orgs","repos_url":"https://api.github.com/users/blast-hardcheese/repos","events_url":"https://api.github.com/users/blast-hardcheese/events{/privacy}","received_events_url":"https://api.github.com/users/blast-hardcheese/received_events","type":"User","site_admin":false},"body":"Ah, yes; we talked about it in one of the other PRs. Thank you for explaining again.\r\n\r\nStill, I'm wondering if something like:\r\n```yaml\r\n\t  Cat:\r\n    description: A representation of a cat\r\n    allOf:\r\n    - $ref: '#/definitions/Pet'\r\n    - $ref: '#/definitions/Mammal'\r\n    - type: object\r\n      properties:\r\n        huntingSkill:\r\n          type: string\r\n          description: The measured skill for hunting\r\n          default: lazy\r\n          enum:\r\n          - clueless\r\n          - lazy\r\n          - adventurous\r\n          - aggressive\r\n```\r\nwould continue to add to this list. Could a dynamic approach be taken instead of hard-coding `1` here?","created_at":"2018-10-24T16:12:48Z","updated_at":"2018-10-24T16:12:48Z","html_url":"https://github.com/twilio/guardrail/pull/104#discussion_r227859424","pull_request_url":"https://api.github.com/repos/twilio/guardrail/pulls/104","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/twilio/guardrail/pulls/comments/227859424"},"html":{"href":"https://github.com/twilio/guardrail/pull/104#discussion_r227859424"},"pull_request":{"href":"https://api.github.com/repos/twilio/guardrail/pulls/104"}},"in_reply_to_id":227681288},"pull_request":{"url":"https://api.github.com/repos/twilio/guardrail/pulls/104","id":219975157,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE5OTc1MTU3","html_url":"https://github.com/twilio/guardrail/pull/104","diff_url":"https://github.com/twilio/guardrail/pull/104.diff","patch_url":"https://github.com/twilio/guardrail/pull/104.patch","issue_url":"https://api.github.com/repos/twilio/guardrail/issues/104","number":104,"state":"open","locked":false,"title":"Deep hierarchy","user":{"login":"dpblh","id":8198859,"node_id":"MDQ6VXNlcjgxOTg4NTk=","avatar_url":"https://avatars3.githubusercontent.com/u/8198859?v=4","gravatar_id":"","url":"https://api.github.com/users/dpblh","html_url":"https://github.com/dpblh","followers_url":"https://api.github.com/users/dpblh/followers","following_url":"https://api.github.com/users/dpblh/following{/other_user}","gists_url":"https://api.github.com/users/dpblh/gists{/gist_id}","starred_url":"https://api.github.com/users/dpblh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpblh/subscriptions","organizations_url":"https://api.github.com/users/dpblh/orgs","repos_url":"https://api.github.com/users/dpblh/repos","events_url":"https://api.github.com/users/dpblh/events{/privacy}","received_events_url":"https://api.github.com/users/dpblh/received_events","type":"User","site_admin":false},"body":"original https://github.com/twilio/guardrail/pull/98\r\n\r\nI couldn't merge it twice :(","created_at":"2018-10-03T09:46:58Z","updated_at":"2018-10-24T16:12:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c067b2f63da2c41a58f872dafc340ab89d080db4","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/twilio/guardrail/pulls/104/commits","review_comments_url":"https://api.github.com/repos/twilio/guardrail/pulls/104/comments","review_comment_url":"https://api.github.com/repos/twilio/guardrail/pulls/comments{/number}","comments_url":"https://api.github.com/repos/twilio/guardrail/issues/104/comments","statuses_url":"https://api.github.com/repos/twilio/guardrail/statuses/81e3555b77a54c59008db912fa5f5f30cd1d6a83","head":{"label":"dpblh:deep-hierarchy-into-master","ref":"deep-hierarchy-into-master","sha":"81e3555b77a54c59008db912fa5f5f30cd1d6a83","user":{"login":"dpblh","id":8198859,"node_id":"MDQ6VXNlcjgxOTg4NTk=","avatar_url":"https://avatars3.githubusercontent.com/u/8198859?v=4","gravatar_id":"","url":"https://api.github.com/users/dpblh","html_url":"https://github.com/dpblh","followers_url":"https://api.github.com/users/dpblh/followers","following_url":"https://api.github.com/users/dpblh/following{/other_user}","gists_url":"https://api.github.com/users/dpblh/gists{/gist_id}","starred_url":"https://api.github.com/users/dpblh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpblh/subscriptions","organizations_url":"https://api.github.com/users/dpblh/orgs","repos_url":"https://api.github.com/users/dpblh/repos","events_url":"https://api.github.com/users/dpblh/events{/privacy}","received_events_url":"https://api.github.com/users/dpblh/received_events","type":"User","site_admin":false},"repo":{"id":149882310,"node_id":"MDEwOlJlcG9zaXRvcnkxNDk4ODIzMTA=","name":"guardrail","full_name":"dpblh/guardrail","private":false,"owner":{"login":"dpblh","id":8198859,"node_id":"MDQ6VXNlcjgxOTg4NTk=","avatar_url":"https://avatars3.githubusercontent.com/u/8198859?v=4","gravatar_id":"","url":"https://api.github.com/users/dpblh","html_url":"https://github.com/dpblh","followers_url":"https://api.github.com/users/dpblh/followers","following_url":"https://api.github.com/users/dpblh/following{/other_user}","gists_url":"https://api.github.com/users/dpblh/gists{/gist_id}","starred_url":"https://api.github.com/users/dpblh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpblh/subscriptions","organizations_url":"https://api.github.com/users/dpblh/orgs","repos_url":"https://api.github.com/users/dpblh/repos","events_url":"https://api.github.com/users/dpblh/events{/privacy}","received_events_url":"https://api.github.com/users/dpblh/received_events","type":"User","site_admin":false},"html_url":"https://github.com/dpblh/guardrail","description":"Principled code generation for Scala services","fork":true,"url":"https://api.github.com/repos/dpblh/guardrail","forks_url":"https://api.github.com/repos/dpblh/guardrail/forks","keys_url":"https://api.github.com/repos/dpblh/guardrail/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dpblh/guardrail/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dpblh/guardrail/teams","hooks_url":"https://api.github.com/repos/dpblh/guardrail/hooks","issue_events_url":"https://api.github.com/repos/dpblh/guardrail/issues/events{/number}","events_url":"https://api.github.com/repos/dpblh/guardrail/events","assignees_url":"https://api.github.com/repos/dpblh/guardrail/assignees{/user}","branches_url":"https://api.github.com/repos/dpblh/guardrail/branches{/branch}","tags_url":"https://api.github.com/repos/dpblh/guardrail/tags","blobs_url":"https://api.github.com/repos/dpblh/guardrail/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dpblh/guardrail/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dpblh/guardrail/git/refs{/sha}","trees_url":"https://api.github.com/repos/dpblh/guardrail/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dpblh/guardrail/statuses/{sha}","languages_url":"https://api.github.com/repos/dpblh/guardrail/languages","stargazers_url":"https://api.github.com/repos/dpblh/guardrail/stargazers","contributors_url":"https://api.github.com/repos/dpblh/guardrail/contributors","subscribers_url":"https://api.github.com/repos/dpblh/guardrail/subscribers","subscription_url":"https://api.github.com/repos/dpblh/guardrail/subscription","commits_url":"https://api.github.com/repos/dpblh/guardrail/commits{/sha}","git_commits_url":"https://api.github.com/repos/dpblh/guardrail/git/commits{/sha}","comments_url":"https://api.github.com/repos/dpblh/guardrail/comments{/number}","issue_comment_url":"https://api.github.com/repos/dpblh/guardrail/issues/comments{/number}","contents_url":"https://api.github.com/repos/dpblh/guardrail/contents/{+path}","compare_url":"https://api.github.com/repos/dpblh/guardrail/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dpblh/guardrail/merges","archive_url":"https://api.github.com/repos/dpblh/guardrail/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dpblh/guardrail/downloads","issues_url":"https://api.github.com/repos/dpblh/guardrail/issues{/number}","pulls_url":"https://api.github.com/repos/dpblh/guardrail/pulls{/number}","milestones_url":"https://api.github.com/repos/dpblh/guardrail/milestones{/number}","notifications_url":"https://api.github.com/repos/dpblh/guardrail/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dpblh/guardrail/labels{/name}","releases_url":"https://api.github.com/repos/dpblh/guardrail/releases{/id}","deployments_url":"https://api.github.com/repos/dpblh/guardrail/deployments","created_at":"2018-09-22T14:02:57Z","updated_at":"2018-10-24T09:52:08Z","pushed_at":"2018-10-24T09:54:15Z","git_url":"git://github.com/dpblh/guardrail.git","ssh_url":"git@github.com:dpblh/guardrail.git","clone_url":"https://github.com/dpblh/guardrail.git","svn_url":"https://github.com/dpblh/guardrail","homepage":"","size":872,"stargazers_count":0,"watchers_count":0,"language":"Scala","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":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"twilio:master","ref":"master","sha":"16554e6bcb6d78710968a5cc8111aef1893ce0ed","user":{"login":"twilio","id":109142,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwOTE0Mg==","avatar_url":"https://avatars0.githubusercontent.com/u/109142?v=4","gravatar_id":"","url":"https://api.github.com/users/twilio","html_url":"https://github.com/twilio","followers_url":"https://api.github.com/users/twilio/followers","following_url":"https://api.github.com/users/twilio/following{/other_user}","gists_url":"https://api.github.com/users/twilio/gists{/gist_id}","starred_url":"https://api.github.com/users/twilio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twilio/subscriptions","organizations_url":"https://api.github.com/users/twilio/orgs","repos_url":"https://api.github.com/users/twilio/repos","events_url":"https://api.github.com/users/twilio/events{/privacy}","received_events_url":"https://api.github.com/users/twilio/received_events","type":"Organization","site_admin":false},"repo":{"id":102150798,"node_id":"MDEwOlJlcG9zaXRvcnkxMDIxNTA3OTg=","name":"guardrail","full_name":"twilio/guardrail","private":false,"owner":{"login":"twilio","id":109142,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwOTE0Mg==","avatar_url":"https://avatars0.githubusercontent.com/u/109142?v=4","gravatar_id":"","url":"https://api.github.com/users/twilio","html_url":"https://github.com/twilio","followers_url":"https://api.github.com/users/twilio/followers","following_url":"https://api.github.com/users/twilio/following{/other_user}","gists_url":"https://api.github.com/users/twilio/gists{/gist_id}","starred_url":"https://api.github.com/users/twilio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twilio/subscriptions","organizations_url":"https://api.github.com/users/twilio/orgs","repos_url":"https://api.github.com/users/twilio/repos","events_url":"https://api.github.com/users/twilio/events{/privacy}","received_events_url":"https://api.github.com/users/twilio/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/twilio/guardrail","description":"Principled code generation for Scala services","fork":false,"url":"https://api.github.com/repos/twilio/guardrail","forks_url":"https://api.github.com/repos/twilio/guardrail/forks","keys_url":"https://api.github.com/repos/twilio/guardrail/keys{/key_id}","collaborators_url":"https://api.github.com/repos/twilio/guardrail/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/twilio/guardrail/teams","hooks_url":"https://api.github.com/repos/twilio/guardrail/hooks","issue_events_url":"https://api.github.com/repos/twilio/guardrail/issues/events{/number}","events_url":"https://api.github.com/repos/twilio/guardrail/events","assignees_url":"https://api.github.com/repos/twilio/guardrail/assignees{/user}","branches_url":"https://api.github.com/repos/twilio/guardrail/branches{/branch}","tags_url":"https://api.github.com/repos/twilio/guardrail/tags","blobs_url":"https://api.github.com/repos/twilio/guardrail/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/twilio/guardrail/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/twilio/guardrail/git/refs{/sha}","trees_url":"https://api.github.com/repos/twilio/guardrail/git/trees{/sha}","statuses_url":"https://api.github.com/repos/twilio/guardrail/statuses/{sha}","languages_url":"https://api.github.com/repos/twilio/guardrail/languages","stargazers_url":"https://api.github.com/repos/twilio/guardrail/stargazers","contributors_url":"https://api.github.com/repos/twilio/guardrail/contributors","subscribers_url":"https://api.github.com/repos/twilio/guardrail/subscribers","subscription_url":"https://api.github.com/repos/twilio/guardrail/subscription","commits_url":"https://api.github.com/repos/twilio/guardrail/commits{/sha}","git_commits_url":"https://api.github.com/repos/twilio/guardrail/git/commits{/sha}","comments_url":"https://api.github.com/repos/twilio/guardrail/comments{/number}","issue_comment_url":"https://api.github.com/repos/twilio/guardrail/issues/comments{/number}","contents_url":"https://api.github.com/repos/twilio/guardrail/contents/{+path}","compare_url":"https://api.github.com/repos/twilio/guardrail/compare/{base}...{head}","merges_url":"https://api.github.com/repos/twilio/guardrail/merges","archive_url":"https://api.github.com/repos/twilio/guardrail/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/twilio/guardrail/downloads","issues_url":"https://api.github.com/repos/twilio/guardrail/issues{/number}","pulls_url":"https://api.github.com/repos/twilio/guardrail/pulls{/number}","milestones_url":"https://api.github.com/repos/twilio/guardrail/milestones{/number}","notifications_url":"https://api.github.com/repos/twilio/guardrail/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/twilio/guardrail/labels{/name}","releases_url":"https://api.github.com/repos/twilio/guardrail/releases{/id}","deployments_url":"https://api.github.com/repos/twilio/guardrail/deployments","created_at":"2017-09-01T20:31:36Z","updated_at":"2018-10-24T05:10:06Z","pushed_at":"2018-10-24T09:54:17Z","git_url":"git://github.com/twilio/guardrail.git","ssh_url":"git@github.com:twilio/guardrail.git","clone_url":"https://github.com/twilio/guardrail.git","svn_url":"https://github.com/twilio/guardrail","homepage":"","size":812,"stargazers_count":174,"watchers_count":174,"language":"Scala","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":22,"mirror_url":null,"archived":false,"open_issues_count":29,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":22,"open_issues":29,"watchers":174,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/twilio/guardrail/pulls/104"},"html":{"href":"https://github.com/twilio/guardrail/pull/104"},"issue":{"href":"https://api.github.com/repos/twilio/guardrail/issues/104"},"comments":{"href":"https://api.github.com/repos/twilio/guardrail/issues/104/comments"},"review_comments":{"href":"https://api.github.com/repos/twilio/guardrail/pulls/104/comments"},"review_comment":{"href":"https://api.github.com/repos/twilio/guardrail/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/twilio/guardrail/pulls/104/commits"},"statuses":{"href":"https://api.github.com/repos/twilio/guardrail/statuses/81e3555b77a54c59008db912fa5f5f30cd1d6a83"}},"author_association":"NONE"}}
{"actor":{"display_login":"blast-hardcheese"}}