{"action":"created","comment":{"url":"https://api.github.com/repos/zalando/zally/pulls/comments/211528226","pull_request_review_id":147964011,"id":211528226,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMTUyODIyNg==","diff_hunk":"@@ -0,0 +1,50 @@\n+package de.zalando.zally.util\n+\n+/**\n+ * Utility library for matching common patterns\n+ */\n+object PatternUtil {","path":"server/src/main/java/de/zalando/zally/util/PatternUtil.kt","position":6,"original_position":6,"commit_id":"9a94d22ba301a95c6891243ff442529b6cac0e71","original_commit_id":"9a94d22ba301a95c6891243ff442529b6cac0e71","user":{"login":"ddufourboivin-zalando","id":39987010,"node_id":"MDQ6VXNlcjM5OTg3MDEw","avatar_url":"https://avatars3.githubusercontent.com/u/39987010?v=4","gravatar_id":"","url":"https://api.github.com/users/ddufourboivin-zalando","html_url":"https://github.com/ddufourboivin-zalando","followers_url":"https://api.github.com/users/ddufourboivin-zalando/followers","following_url":"https://api.github.com/users/ddufourboivin-zalando/following{/other_user}","gists_url":"https://api.github.com/users/ddufourboivin-zalando/gists{/gist_id}","starred_url":"https://api.github.com/users/ddufourboivin-zalando/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ddufourboivin-zalando/subscriptions","organizations_url":"https://api.github.com/users/ddufourboivin-zalando/orgs","repos_url":"https://api.github.com/users/ddufourboivin-zalando/repos","events_url":"https://api.github.com/users/ddufourboivin-zalando/events{/privacy}","received_events_url":"https://api.github.com/users/ddufourboivin-zalando/received_events","type":"User","site_admin":false},"body":"Here the regex are recompiled every time they are used. \r\n\r\nInstead of having\r\n\r\n```kotlin\r\nprivate const val LOWER_CASE_HYPHENS_PATTERN = \"^[a-z-]*$\"\r\n```\r\n\r\nwhy not keep\r\n\r\n```kotlin\r\nprivate val LOWER_CASE_HYPHENS_PATTERN = \"^[a-z-]*$\".toRegex()\r\n```\r\n\r\nso they are compiled once and never again?","created_at":"2018-08-21T08:57:04Z","updated_at":"2018-08-21T08:57:04Z","html_url":"https://github.com/zalando/zally/pull/796#discussion_r211528226","pull_request_url":"https://api.github.com/repos/zalando/zally/pulls/796","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/zalando/zally/pulls/comments/211528226"},"html":{"href":"https://github.com/zalando/zally/pull/796#discussion_r211528226"},"pull_request":{"href":"https://api.github.com/repos/zalando/zally/pulls/796"}}},"pull_request":{"url":"https://api.github.com/repos/zalando/zally/pulls/796","id":208256331,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA4MjU2MzMx","html_url":"https://github.com/zalando/zally/pull/796","diff_url":"https://github.com/zalando/zally/pull/796.diff","patch_url":"https://github.com/zalando/zally/pull/796.patch","issue_url":"https://api.github.com/repos/zalando/zally/issues/796","number":796,"state":"open","locked":false,"title":"Convert `util` code to Kotlin","user":{"login":"roxspring","id":783694,"node_id":"MDQ6VXNlcjc4MzY5NA==","avatar_url":"https://avatars3.githubusercontent.com/u/783694?v=4","gravatar_id":"","url":"https://api.github.com/users/roxspring","html_url":"https://github.com/roxspring","followers_url":"https://api.github.com/users/roxspring/followers","following_url":"https://api.github.com/users/roxspring/following{/other_user}","gists_url":"https://api.github.com/users/roxspring/gists{/gist_id}","starred_url":"https://api.github.com/users/roxspring/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roxspring/subscriptions","organizations_url":"https://api.github.com/users/roxspring/orgs","repos_url":"https://api.github.com/users/roxspring/repos","events_url":"https://api.github.com/users/roxspring/events{/privacy}","received_events_url":"https://api.github.com/users/roxspring/received_events","type":"User","site_admin":false},"body":"- Converted Java to Kotlin for `util` package, again with Intellij doing most of the work.\r\n- Adapted some Java stream & optional logic to Kotlin idioms\r\n- Adapted `Node` and `Marker` to `data` classes\r\n- Will conflict with #794 initially, but is resolvable:\r\n  - Either #794 is updated to not touch `JsonPointers.java`\r\n  - Or I'll update this PR once that's in.\r\n\r\nLeaves just `apireview` package to go.\r\n\r\nRelates to #712","created_at":"2018-08-14T11:54:58Z","updated_at":"2018-08-21T08:57:04Z","closed_at":null,"merged_at":null,"merge_commit_sha":"08c8f1093bb38092b163ab108521de98ea36e930","assignee":null,"assignees":[],"requested_reviewers":[{"login":"netme","id":96552,"node_id":"MDQ6VXNlcjk2NTUy","avatar_url":"https://avatars2.githubusercontent.com/u/96552?v=4","gravatar_id":"","url":"https://api.github.com/users/netme","html_url":"https://github.com/netme","followers_url":"https://api.github.com/users/netme/followers","following_url":"https://api.github.com/users/netme/following{/other_user}","gists_url":"https://api.github.com/users/netme/gists{/gist_id}","starred_url":"https://api.github.com/users/netme/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/netme/subscriptions","organizations_url":"https://api.github.com/users/netme/orgs","repos_url":"https://api.github.com/users/netme/repos","events_url":"https://api.github.com/users/netme/events{/privacy}","received_events_url":"https://api.github.com/users/netme/received_events","type":"User","site_admin":false},{"login":"maxim-tschumak","id":4802353,"node_id":"MDQ6VXNlcjQ4MDIzNTM=","avatar_url":"https://avatars2.githubusercontent.com/u/4802353?v=4","gravatar_id":"","url":"https://api.github.com/users/maxim-tschumak","html_url":"https://github.com/maxim-tschumak","followers_url":"https://api.github.com/users/maxim-tschumak/followers","following_url":"https://api.github.com/users/maxim-tschumak/following{/other_user}","gists_url":"https://api.github.com/users/maxim-tschumak/gists{/gist_id}","starred_url":"https://api.github.com/users/maxim-tschumak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maxim-tschumak/subscriptions","organizations_url":"https://api.github.com/users/maxim-tschumak/orgs","repos_url":"https://api.github.com/users/maxim-tschumak/repos","events_url":"https://api.github.com/users/maxim-tschumak/events{/privacy}","received_events_url":"https://api.github.com/users/maxim-tschumak/received_events","type":"User","site_admin":false},{"login":"tkrop","id":18184975,"node_id":"MDQ6VXNlcjE4MTg0OTc1","avatar_url":"https://avatars1.githubusercontent.com/u/18184975?v=4","gravatar_id":"","url":"https://api.github.com/users/tkrop","html_url":"https://github.com/tkrop","followers_url":"https://api.github.com/users/tkrop/followers","following_url":"https://api.github.com/users/tkrop/following{/other_user}","gists_url":"https://api.github.com/users/tkrop/gists{/gist_id}","starred_url":"https://api.github.com/users/tkrop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tkrop/subscriptions","organizations_url":"https://api.github.com/users/tkrop/orgs","repos_url":"https://api.github.com/users/tkrop/repos","events_url":"https://api.github.com/users/tkrop/events{/privacy}","received_events_url":"https://api.github.com/users/tkrop/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/zalando/zally/pulls/796/commits","review_comments_url":"https://api.github.com/repos/zalando/zally/pulls/796/comments","review_comment_url":"https://api.github.com/repos/zalando/zally/pulls/comments{/number}","comments_url":"https://api.github.com/repos/zalando/zally/issues/796/comments","statuses_url":"https://api.github.com/repos/zalando/zally/statuses/9a94d22ba301a95c6891243ff442529b6cac0e71","head":{"label":"roxspring:feature/gh-712-convert-to-kotlin","ref":"feature/gh-712-convert-to-kotlin","sha":"9a94d22ba301a95c6891243ff442529b6cac0e71","user":{"login":"roxspring","id":783694,"node_id":"MDQ6VXNlcjc4MzY5NA==","avatar_url":"https://avatars3.githubusercontent.com/u/783694?v=4","gravatar_id":"","url":"https://api.github.com/users/roxspring","html_url":"https://github.com/roxspring","followers_url":"https://api.github.com/users/roxspring/followers","following_url":"https://api.github.com/users/roxspring/following{/other_user}","gists_url":"https://api.github.com/users/roxspring/gists{/gist_id}","starred_url":"https://api.github.com/users/roxspring/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roxspring/subscriptions","organizations_url":"https://api.github.com/users/roxspring/orgs","repos_url":"https://api.github.com/users/roxspring/repos","events_url":"https://api.github.com/users/roxspring/events{/privacy}","received_events_url":"https://api.github.com/users/roxspring/received_events","type":"User","site_admin":false},"repo":{"id":104755604,"node_id":"MDEwOlJlcG9zaXRvcnkxMDQ3NTU2MDQ=","name":"zally","full_name":"roxspring/zally","owner":{"login":"roxspring","id":783694,"node_id":"MDQ6VXNlcjc4MzY5NA==","avatar_url":"https://avatars3.githubusercontent.com/u/783694?v=4","gravatar_id":"","url":"https://api.github.com/users/roxspring","html_url":"https://github.com/roxspring","followers_url":"https://api.github.com/users/roxspring/followers","following_url":"https://api.github.com/users/roxspring/following{/other_user}","gists_url":"https://api.github.com/users/roxspring/gists{/gist_id}","starred_url":"https://api.github.com/users/roxspring/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roxspring/subscriptions","organizations_url":"https://api.github.com/users/roxspring/orgs","repos_url":"https://api.github.com/users/roxspring/repos","events_url":"https://api.github.com/users/roxspring/events{/privacy}","received_events_url":"https://api.github.com/users/roxspring/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/roxspring/zally","description":"Linter for RESTful APIs","fork":true,"url":"https://api.github.com/repos/roxspring/zally","forks_url":"https://api.github.com/repos/roxspring/zally/forks","keys_url":"https://api.github.com/repos/roxspring/zally/keys{/key_id}","collaborators_url":"https://api.github.com/repos/roxspring/zally/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/roxspring/zally/teams","hooks_url":"https://api.github.com/repos/roxspring/zally/hooks","issue_events_url":"https://api.github.com/repos/roxspring/zally/issues/events{/number}","events_url":"https://api.github.com/repos/roxspring/zally/events","assignees_url":"https://api.github.com/repos/roxspring/zally/assignees{/user}","branches_url":"https://api.github.com/repos/roxspring/zally/branches{/branch}","tags_url":"https://api.github.com/repos/roxspring/zally/tags","blobs_url":"https://api.github.com/repos/roxspring/zally/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/roxspring/zally/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/roxspring/zally/git/refs{/sha}","trees_url":"https://api.github.com/repos/roxspring/zally/git/trees{/sha}","statuses_url":"https://api.github.com/repos/roxspring/zally/statuses/{sha}","languages_url":"https://api.github.com/repos/roxspring/zally/languages","stargazers_url":"https://api.github.com/repos/roxspring/zally/stargazers","contributors_url":"https://api.github.com/repos/roxspring/zally/contributors","subscribers_url":"https://api.github.com/repos/roxspring/zally/subscribers","subscription_url":"https://api.github.com/repos/roxspring/zally/subscription","commits_url":"https://api.github.com/repos/roxspring/zally/commits{/sha}","git_commits_url":"https://api.github.com/repos/roxspring/zally/git/commits{/sha}","comments_url":"https://api.github.com/repos/roxspring/zally/comments{/number}","issue_comment_url":"https://api.github.com/repos/roxspring/zally/issues/comments{/number}","contents_url":"https://api.github.com/repos/roxspring/zally/contents/{+path}","compare_url":"https://api.github.com/repos/roxspring/zally/compare/{base}...{head}","merges_url":"https://api.github.com/repos/roxspring/zally/merges","archive_url":"https://api.github.com/repos/roxspring/zally/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/roxspring/zally/downloads","issues_url":"https://api.github.com/repos/roxspring/zally/issues{/number}","pulls_url":"https://api.github.com/repos/roxspring/zally/pulls{/number}","milestones_url":"https://api.github.com/repos/roxspring/zally/milestones{/number}","notifications_url":"https://api.github.com/repos/roxspring/zally/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/roxspring/zally/labels{/name}","releases_url":"https://api.github.com/repos/roxspring/zally/releases{/id}","deployments_url":"https://api.github.com/repos/roxspring/zally/deployments","created_at":"2017-09-25T13:46:55Z","updated_at":"2018-04-10T15:03:48Z","pushed_at":"2018-08-20T23:41:43Z","git_url":"git://github.com/roxspring/zally.git","ssh_url":"git@github.com:roxspring/zally.git","clone_url":"https://github.com/roxspring/zally.git","svn_url":"https://github.com/roxspring/zally","homepage":"https://zalando-incubator.github.io/zally","size":8357,"stargazers_count":0,"watchers_count":0,"language":"Kotlin","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":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"zalando:master","ref":"master","sha":"278ab11a7a805271a064e1b332630e4464cf242a","user":{"login":"zalando","id":1564818,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1NjQ4MTg=","avatar_url":"https://avatars0.githubusercontent.com/u/1564818?v=4","gravatar_id":"","url":"https://api.github.com/users/zalando","html_url":"https://github.com/zalando","followers_url":"https://api.github.com/users/zalando/followers","following_url":"https://api.github.com/users/zalando/following{/other_user}","gists_url":"https://api.github.com/users/zalando/gists{/gist_id}","starred_url":"https://api.github.com/users/zalando/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zalando/subscriptions","organizations_url":"https://api.github.com/users/zalando/orgs","repos_url":"https://api.github.com/users/zalando/repos","events_url":"https://api.github.com/users/zalando/events{/privacy}","received_events_url":"https://api.github.com/users/zalando/received_events","type":"Organization","site_admin":false},"repo":{"id":76853145,"node_id":"MDEwOlJlcG9zaXRvcnk3Njg1MzE0NQ==","name":"zally","full_name":"zalando/zally","owner":{"login":"zalando","id":1564818,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1NjQ4MTg=","avatar_url":"https://avatars0.githubusercontent.com/u/1564818?v=4","gravatar_id":"","url":"https://api.github.com/users/zalando","html_url":"https://github.com/zalando","followers_url":"https://api.github.com/users/zalando/followers","following_url":"https://api.github.com/users/zalando/following{/other_user}","gists_url":"https://api.github.com/users/zalando/gists{/gist_id}","starred_url":"https://api.github.com/users/zalando/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zalando/subscriptions","organizations_url":"https://api.github.com/users/zalando/orgs","repos_url":"https://api.github.com/users/zalando/repos","events_url":"https://api.github.com/users/zalando/events{/privacy}","received_events_url":"https://api.github.com/users/zalando/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/zalando/zally","description":"A minimalistic, simple-to-use API linter","fork":false,"url":"https://api.github.com/repos/zalando/zally","forks_url":"https://api.github.com/repos/zalando/zally/forks","keys_url":"https://api.github.com/repos/zalando/zally/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zalando/zally/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zalando/zally/teams","hooks_url":"https://api.github.com/repos/zalando/zally/hooks","issue_events_url":"https://api.github.com/repos/zalando/zally/issues/events{/number}","events_url":"https://api.github.com/repos/zalando/zally/events","assignees_url":"https://api.github.com/repos/zalando/zally/assignees{/user}","branches_url":"https://api.github.com/repos/zalando/zally/branches{/branch}","tags_url":"https://api.github.com/repos/zalando/zally/tags","blobs_url":"https://api.github.com/repos/zalando/zally/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zalando/zally/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zalando/zally/git/refs{/sha}","trees_url":"https://api.github.com/repos/zalando/zally/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zalando/zally/statuses/{sha}","languages_url":"https://api.github.com/repos/zalando/zally/languages","stargazers_url":"https://api.github.com/repos/zalando/zally/stargazers","contributors_url":"https://api.github.com/repos/zalando/zally/contributors","subscribers_url":"https://api.github.com/repos/zalando/zally/subscribers","subscription_url":"https://api.github.com/repos/zalando/zally/subscription","commits_url":"https://api.github.com/repos/zalando/zally/commits{/sha}","git_commits_url":"https://api.github.com/repos/zalando/zally/git/commits{/sha}","comments_url":"https://api.github.com/repos/zalando/zally/comments{/number}","issue_comment_url":"https://api.github.com/repos/zalando/zally/issues/comments{/number}","contents_url":"https://api.github.com/repos/zalando/zally/contents/{+path}","compare_url":"https://api.github.com/repos/zalando/zally/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zalando/zally/merges","archive_url":"https://api.github.com/repos/zalando/zally/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zalando/zally/downloads","issues_url":"https://api.github.com/repos/zalando/zally/issues{/number}","pulls_url":"https://api.github.com/repos/zalando/zally/pulls{/number}","milestones_url":"https://api.github.com/repos/zalando/zally/milestones{/number}","notifications_url":"https://api.github.com/repos/zalando/zally/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zalando/zally/labels{/name}","releases_url":"https://api.github.com/repos/zalando/zally/releases{/id}","deployments_url":"https://api.github.com/repos/zalando/zally/deployments","created_at":"2016-12-19T10:38:18Z","updated_at":"2018-08-20T13:36:21Z","pushed_at":"2018-08-20T23:42:44Z","git_url":"git://github.com/zalando/zally.git","ssh_url":"git@github.com:zalando/zally.git","clone_url":"https://github.com/zalando/zally.git","svn_url":"https://github.com/zalando/zally","homepage":"https://zalando.github.io/zally","size":7135,"stargazers_count":221,"watchers_count":221,"language":"Kotlin","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":31,"mirror_url":null,"archived":false,"open_issues_count":41,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":31,"open_issues":41,"watchers":221,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/zalando/zally/pulls/796"},"html":{"href":"https://github.com/zalando/zally/pull/796"},"issue":{"href":"https://api.github.com/repos/zalando/zally/issues/796"},"comments":{"href":"https://api.github.com/repos/zalando/zally/issues/796/comments"},"review_comments":{"href":"https://api.github.com/repos/zalando/zally/pulls/796/comments"},"review_comment":{"href":"https://api.github.com/repos/zalando/zally/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/zalando/zally/pulls/796/commits"},"statuses":{"href":"https://api.github.com/repos/zalando/zally/statuses/9a94d22ba301a95c6891243ff442529b6cac0e71"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"ddufourboivin-zalando"}}