{"action":"created","comment":{"url":"https://api.github.com/repos/snowplow/snowplow/pulls/comments/191369137","pull_request_review_id":123923420,"id":191369137,"diff_hunk":"@@ -0,0 +1,183 @@\n+/*\n+ * Copyright (c) 2012-2018 Snowplow Analytics Ltd. All rights reserved.\n+ *\n+ * This program is licensed to you under the Apache License Version 2.0,\n+ * and you may not use this file except in compliance with the Apache License Version 2.0.\n+ * You may obtain a copy of the Apache License Version 2.0 at\n+ * http://www.apache.org/licenses/LICENSE-2.0.\n+ *\n+ * Unless required by applicable law or agreed to in writing,\n+ * software distributed under the Apache License Version 2.0 is distributed on an\n+ * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the Apache License Version 2.0 for the specific language governing permissions and\n+ * limitations there under.\n+ */\n+package com.snowplowanalytics.snowplow.enrich.spark\n+package good\n+\n+import org.specs2.mutable.Specification\n+\n+object IabEnrichmentSpiderCfLineSpec {\n+  import EnrichJobSpec._\n+  val lines = Lines(\n+    \"2012-05-27  11:35:53  DFW3  3343  216.160.83.56 GET d3gs014xn8p70.cloudfront.net  /ice.png  200 http://www.psychicbazaar.com/oracles/119-psycards-book-and-deck-starter-pack.html?view=print#detail Mozilla%2F5.0%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko%3B%20compatible%3B%20Googlebot%2F2.1%3B%20%2Bhttp%3A%2F%2Fwww.google.com%2Fbot.html)%20Safari%2F537.36  &e=ue&ue_pr=%7B%22schema%22%3A%22iglu%3Acom.snowplowanalytics.snowplow%2Funstruct_event%2Fjsonschema%2F1-0-0%22%2C%22data%22%3A%7B%22schema%22%3A%22iglu%3Acom.snowplowanalytics.snowplow.input-adapters%2Fsegment_webhook_config%2Fjsonschema%2F1-0-0%22%2C%22data%22%3A%7B%22vendor%22%3A%22%CE%A7%CE%B1%CF%81%CE%B9%CF%84%CE%AF%CE%BD%CE%B7%20NEW%20Unicode%20test%22%2C%22name%22%3A%22alex%2Btest%40snowplowanalytics.com%22%2C%22parameters%22%3A%7B%22mappings%22%3A%7B%22eventsPerMonth%22%3A%22%3C%201%20million%22%2C%22serviceType%22%3A%22unsure%22%7D%7D%7D%7D%7D&dtm=1364230969450&evn=com.acme&tid=598951&vp=2560x934&ds=2543x1420&vid=43&duid=9795bd0203804cd1&p=web&tv=js-0.11.1&fp=2876815413&aid=pbzsite&lang=en-GB&cs=UTF-8&tz=Europe%2FLondon&refr=http%3A%2F%2Fwww.psychicbazaar.com%2F&f_pdf=1&f_qt=0&f_realp=0&f_wma=0&f_dir=0&f_fla=1&f_java=1&f_gears=0&f_ag=1&res=2560x1440&cd=32&cookie=1&url=http%3A%2F%2Fwww.psychicbazaar.com%2F2-tarot-cards\"\n+  )\n+  val expected = List(\n+    \"pbzsite\",\n+    \"web\",\n+    etlTimestamp,\n+    \"2012-05-27 11:35:53.000\",\n+    \"2013-03-25 17:02:49.450\",\n+    \"unstruct\",\n+    null, // We can't predict the event_id\n+    \"598951\",\n+    null, // No tracker namespace\n+    \"js-0.11.1\",\n+    \"cloudfront\",\n+    etlVersion,\n+    null, // No user_id set\n+    \"216.160.83.56\",\n+    \"2876815413\",\n+    \"9795bd0203804cd1\",\n+    \"43\",\n+    null, // No network_userid set\n+    \"US\", // US geolocation\n+    \"WA\",\n+    \"Milton\",\n+    \"98354\",\n+    \"47.2513\",\n+    \"-122.3149\",\n+    \"Washington\",\n+    null,\n+    null,\n+    null,  // Using the MaxMind domain lookup service\n+    null,\n+    \"http://www.psychicbazaar.com/2-tarot-cards\",\n+    null, // No page title for events\n+    \"http://www.psychicbazaar.com/\",\n+    \"http\",\n+    \"www.psychicbazaar.com\",\n+    \"80\",\n+    \"/2-tarot-cards\",\n+    null,\n+    null,\n+    \"http\",\n+    \"www.psychicbazaar.com\",\n+    \"80\",\n+    \"/\",\n+    null,\n+    null,\n+    \"internal\", // Internal referer\n+    null,\n+    null,\n+    null, // No marketing campaign info\n+    null, //\n+    null, //\n+    null, //\n+    null, //\n+    null, // No custom contexts\n+    null, // Structured event fields empty\n+    null, //\n+    null, //\n+    null, //\n+    null, //\n+    \"\"\"{\"schema\":\"iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0\",\"data\":{\"schema\":\"iglu:com.snowplowanalytics.snowplow.input-adapters/segment_webhook_config/jsonschema/1-0-0\",\"data\":{\"vendor\":\"Χαριτίνη NEW Unicode test\",\"name\":\"alex+test@snowplowanalytics.com\",\"parameters\":{\"mappings\":{\"eventsPerMonth\":\"< 1 million\",\"serviceType\":\"unsure\"}}}}}\"\"\", // Unstructured event field set\n+    null, // Transaction fields empty\n+    null, //\n+    null, //\n+    null, //\n+    null, //\n+    null, //\n+    null, //\n+    null, //\n+    null, // Transaction item fields empty\n+    null, //\n+    null, //\n+    null, //\n+    null, //\n+    null, //\n+    null, // Page ping fields are empty\n+    null, //\n+    null, //\n+    null, //\n+    \"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Safari/537.36\",\n+    \"Robot/Spider\",\n+    \"Robot/Spider\",\n+    null,\n+    \"Robot\",\n+    \"OTHER\",\n+    \"en-GB\",\n+    \"1\",\n+    \"1\",\n+    \"1\",\n+    \"0\",\n+    \"0\",\n+    \"0\",\n+    \"0\",\n+    \"0\",\n+    \"1\",\n+    \"1\",\n+    \"32\",\n+    \"2560\",\n+    \"934\",\n+    \"Unknown\",\n+    \"Unknown\",\n+    \"Other\",\n+    \"Europe/London\",\n+    \"Unknown\",\n+    \"0\",\n+    \"2560\",\n+    \"1440\",\n+    \"UTF-8\",\n+    \"2543\",\n+    \"1420\",\n+    null,\n+    null,\n+    null,\n+    null,\n+    null,\n+    null,\n+    null,\n+    \"America/Los_Angeles\",\n+    null,\n+    null,\n+    null,\n+    null,\n+    null,\n+    null,\n+    \"\"\"{\"schema\":\"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-1\",\"data\":[{\"schema\":\"iglu:com.snowplowanalytics.snowplow/ua_parser_context/jsonschema/1-0-0\",\"data\":{\"useragentFamily\":\"Googlebot\",\"useragentMajor\":\"2\",\"useragentMinor\":\"1\",\"useragentPatch\":null,\"useragentVersion\":\"Googlebot 2.1\",\"osFamily\":\"Other\",\"osMajor\":null,\"osMinor\":null,\"osPatch\":null,\"osPatchMinor\":null,\"osVersion\":\"Other\",\"deviceFamily\":\"Spider\"}},{\"schema\":\"iglu:com.iab.snowplow/iab_spiders_and_robots/jsonschema/1-0-0\",\"data\":{\"spiderOrRobot\":true,\"category\":\"SPIDER_OR_ROBOT\",\"reason\":\"FAILED_UA_INCLUDE\",\"primaryImpact\":\"UNKNOWN\"}}]}\"\"\",\n+    null,\n+    \"2012-05-27 11:35:53.000\",\n+    \"com.snowplowanalytics.snowplow.input-adapters\",\n+    \"segment_webhook_config\",\n+    \"jsonschema\",\n+    \"1-0-0\",\n+    \"6a2f7bbf7669eb1808c79cfe3e1f8e57\"\n+  )\n+}\n+\n+/**\n+ * Check that the IAB enrichment successfully atttaches a context\n+ * to an event.\n+ */\n+class IabEnrichmentSpiderCfLineSpec extends Specification with EnrichJobSpec {\n+  import EnrichJobSpec._\n+  override def appName = \"iab-enrichment-cf-lines\"\n+  sequential\n+  \"A job which processes a CloudFront file containing 1 valid custom unstructured event\" should {\n+    runEnrichJob(IabEnrichmentSpiderCfLineSpec.lines, \"cloudfront\", \"1\", false, List(\"geo\", \"domain\"), iabEnrichmentEnabled = true)\n+\n+    \"correctly attach a derived context fetched from the IAB enrichment\" in {\n+      val Some(goods) = readPartFile(dirs.output)\n+      goods.size must_== 1\n+      val actual = goods.head.split(\"\\t\").map(s => if (s.isEmpty()) null else s)\n+      for (idx <- IabEnrichmentSpiderCfLineSpec.expected.indices) {\n+        actual(idx) must BeFieldEqualTo(IabEnrichmentSpiderCfLineSpec.expected(idx), idx)\n+      }\n+    }\n+\n+    \"not write any bad rows\" in {\n+      dirs.badRows must beEmptyDir\n+    }\n+  }","path":"3-enrich/spark-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.spark/good/IabEnrichmentSpiderCfLineSpec.scala","position":182,"original_position":182,"commit_id":"d57a58b08aa534b9f017c6a194394ba825b31d97","original_commit_id":"d57a58b08aa534b9f017c6a194394ba825b31d97","user":{"login":"BenFradet","id":1737211,"avatar_url":"https://avatars2.githubusercontent.com/u/1737211?v=4","gravatar_id":"","url":"https://api.github.com/users/BenFradet","html_url":"https://github.com/BenFradet","followers_url":"https://api.github.com/users/BenFradet/followers","following_url":"https://api.github.com/users/BenFradet/following{/other_user}","gists_url":"https://api.github.com/users/BenFradet/gists{/gist_id}","starred_url":"https://api.github.com/users/BenFradet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BenFradet/subscriptions","organizations_url":"https://api.github.com/users/BenFradet/orgs","repos_url":"https://api.github.com/users/BenFradet/repos","events_url":"https://api.github.com/users/BenFradet/events{/privacy}","received_events_url":"https://api.github.com/users/BenFradet/received_events","type":"User","site_admin":false},"body":"can we have the two iab specs turned into one spec? No need to have two different files for the same enrichment.","created_at":"2018-05-29T10:03:07Z","updated_at":"2018-05-29T10:03:15Z","html_url":"https://github.com/snowplow/snowplow/pull/3750#discussion_r191369137","pull_request_url":"https://api.github.com/repos/snowplow/snowplow/pulls/3750","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/snowplow/snowplow/pulls/comments/191369137"},"html":{"href":"https://github.com/snowplow/snowplow/pull/3750#discussion_r191369137"},"pull_request":{"href":"https://api.github.com/repos/snowplow/snowplow/pulls/3750"}}},"pull_request":{"url":"https://api.github.com/repos/snowplow/snowplow/pulls/3750","id":185431350,"html_url":"https://github.com/snowplow/snowplow/pull/3750","diff_url":"https://github.com/snowplow/snowplow/pull/3750.diff","patch_url":"https://github.com/snowplow/snowplow/pull/3750.patch","issue_url":"https://api.github.com/repos/snowplow/snowplow/issues/3750","number":3750,"state":"open","locked":false,"title":"IAB Robots & Spiders enrichment","user":{"login":"rzats","id":13783592,"avatar_url":"https://avatars3.githubusercontent.com/u/13783592?v=4","gravatar_id":"","url":"https://api.github.com/users/rzats","html_url":"https://github.com/rzats","followers_url":"https://api.github.com/users/rzats/followers","following_url":"https://api.github.com/users/rzats/following{/other_user}","gists_url":"https://api.github.com/users/rzats/gists{/gist_id}","starred_url":"https://api.github.com/users/rzats/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rzats/subscriptions","organizations_url":"https://api.github.com/users/rzats/orgs","repos_url":"https://api.github.com/users/rzats/repos","events_url":"https://api.github.com/users/rzats/events{/privacy}","received_events_url":"https://api.github.com/users/rzats/received_events","type":"User","site_admin":false},"body":"Closes #937.\r\n\r\nStill needs some work:\r\n\r\n- [ ] test this in an actual pipeline\r\n- [ ] figure out how to determine when basic HTTP authentication is necessary and apply the username/password\r\n\r\nbut should be ready for an initial review.","created_at":"2018-05-02T13:02:15Z","updated_at":"2018-05-29T10:03:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"029eb159569a7782a31a60aff68b6b8b0a33112f","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/snowplow/snowplow/pulls/3750/commits","review_comments_url":"https://api.github.com/repos/snowplow/snowplow/pulls/3750/comments","review_comment_url":"https://api.github.com/repos/snowplow/snowplow/pulls/comments{/number}","comments_url":"https://api.github.com/repos/snowplow/snowplow/issues/3750/comments","statuses_url":"https://api.github.com/repos/snowplow/snowplow/statuses/d57a58b08aa534b9f017c6a194394ba825b31d97","head":{"label":"snowplow:iab-enrichment","ref":"iab-enrichment","sha":"d57a58b08aa534b9f017c6a194394ba825b31d97","user":{"login":"snowplow","id":1476001,"avatar_url":"https://avatars3.githubusercontent.com/u/1476001?v=4","gravatar_id":"","url":"https://api.github.com/users/snowplow","html_url":"https://github.com/snowplow","followers_url":"https://api.github.com/users/snowplow/followers","following_url":"https://api.github.com/users/snowplow/following{/other_user}","gists_url":"https://api.github.com/users/snowplow/gists{/gist_id}","starred_url":"https://api.github.com/users/snowplow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/snowplow/subscriptions","organizations_url":"https://api.github.com/users/snowplow/orgs","repos_url":"https://api.github.com/users/snowplow/repos","events_url":"https://api.github.com/users/snowplow/events{/privacy}","received_events_url":"https://api.github.com/users/snowplow/received_events","type":"Organization","site_admin":false},"repo":{"id":3591964,"name":"snowplow","full_name":"snowplow/snowplow","owner":{"login":"snowplow","id":1476001,"avatar_url":"https://avatars3.githubusercontent.com/u/1476001?v=4","gravatar_id":"","url":"https://api.github.com/users/snowplow","html_url":"https://github.com/snowplow","followers_url":"https://api.github.com/users/snowplow/followers","following_url":"https://api.github.com/users/snowplow/following{/other_user}","gists_url":"https://api.github.com/users/snowplow/gists{/gist_id}","starred_url":"https://api.github.com/users/snowplow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/snowplow/subscriptions","organizations_url":"https://api.github.com/users/snowplow/orgs","repos_url":"https://api.github.com/users/snowplow/repos","events_url":"https://api.github.com/users/snowplow/events{/privacy}","received_events_url":"https://api.github.com/users/snowplow/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/snowplow/snowplow","description":"Cloud-native web, mobile and event analytics, running on AWS and on-premise with Kafka","fork":false,"url":"https://api.github.com/repos/snowplow/snowplow","forks_url":"https://api.github.com/repos/snowplow/snowplow/forks","keys_url":"https://api.github.com/repos/snowplow/snowplow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/snowplow/snowplow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/snowplow/snowplow/teams","hooks_url":"https://api.github.com/repos/snowplow/snowplow/hooks","issue_events_url":"https://api.github.com/repos/snowplow/snowplow/issues/events{/number}","events_url":"https://api.github.com/repos/snowplow/snowplow/events","assignees_url":"https://api.github.com/repos/snowplow/snowplow/assignees{/user}","branches_url":"https://api.github.com/repos/snowplow/snowplow/branches{/branch}","tags_url":"https://api.github.com/repos/snowplow/snowplow/tags","blobs_url":"https://api.github.com/repos/snowplow/snowplow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/snowplow/snowplow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/snowplow/snowplow/git/refs{/sha}","trees_url":"https://api.github.com/repos/snowplow/snowplow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/snowplow/snowplow/statuses/{sha}","languages_url":"https://api.github.com/repos/snowplow/snowplow/languages","stargazers_url":"https://api.github.com/repos/snowplow/snowplow/stargazers","contributors_url":"https://api.github.com/repos/snowplow/snowplow/contributors","subscribers_url":"https://api.github.com/repos/snowplow/snowplow/subscribers","subscription_url":"https://api.github.com/repos/snowplow/snowplow/subscription","commits_url":"https://api.github.com/repos/snowplow/snowplow/commits{/sha}","git_commits_url":"https://api.github.com/repos/snowplow/snowplow/git/commits{/sha}","comments_url":"https://api.github.com/repos/snowplow/snowplow/comments{/number}","issue_comment_url":"https://api.github.com/repos/snowplow/snowplow/issues/comments{/number}","contents_url":"https://api.github.com/repos/snowplow/snowplow/contents/{+path}","compare_url":"https://api.github.com/repos/snowplow/snowplow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/snowplow/snowplow/merges","archive_url":"https://api.github.com/repos/snowplow/snowplow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/snowplow/snowplow/downloads","issues_url":"https://api.github.com/repos/snowplow/snowplow/issues{/number}","pulls_url":"https://api.github.com/repos/snowplow/snowplow/pulls{/number}","milestones_url":"https://api.github.com/repos/snowplow/snowplow/milestones{/number}","notifications_url":"https://api.github.com/repos/snowplow/snowplow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/snowplow/snowplow/labels{/name}","releases_url":"https://api.github.com/repos/snowplow/snowplow/releases{/id}","deployments_url":"https://api.github.com/repos/snowplow/snowplow/deployments","created_at":"2012-03-01T13:02:21Z","updated_at":"2018-05-29T09:11:49Z","pushed_at":"2018-05-28T17:45:23Z","git_url":"git://github.com/snowplow/snowplow.git","ssh_url":"git@github.com:snowplow/snowplow.git","clone_url":"https://github.com/snowplow/snowplow.git","svn_url":"https://github.com/snowplow/snowplow","homepage":"http://snowplowanalytics.com","size":22406,"stargazers_count":4062,"watchers_count":4062,"language":"Scala","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":887,"mirror_url":null,"archived":false,"open_issues_count":659,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":887,"open_issues":659,"watchers":4062,"default_branch":"master"}},"base":{"label":"snowplow:master","ref":"master","sha":"9b67ff48fbdc6dde0fa11dfd7653a8eed4196647","user":{"login":"snowplow","id":1476001,"avatar_url":"https://avatars3.githubusercontent.com/u/1476001?v=4","gravatar_id":"","url":"https://api.github.com/users/snowplow","html_url":"https://github.com/snowplow","followers_url":"https://api.github.com/users/snowplow/followers","following_url":"https://api.github.com/users/snowplow/following{/other_user}","gists_url":"https://api.github.com/users/snowplow/gists{/gist_id}","starred_url":"https://api.github.com/users/snowplow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/snowplow/subscriptions","organizations_url":"https://api.github.com/users/snowplow/orgs","repos_url":"https://api.github.com/users/snowplow/repos","events_url":"https://api.github.com/users/snowplow/events{/privacy}","received_events_url":"https://api.github.com/users/snowplow/received_events","type":"Organization","site_admin":false},"repo":{"id":3591964,"name":"snowplow","full_name":"snowplow/snowplow","owner":{"login":"snowplow","id":1476001,"avatar_url":"https://avatars3.githubusercontent.com/u/1476001?v=4","gravatar_id":"","url":"https://api.github.com/users/snowplow","html_url":"https://github.com/snowplow","followers_url":"https://api.github.com/users/snowplow/followers","following_url":"https://api.github.com/users/snowplow/following{/other_user}","gists_url":"https://api.github.com/users/snowplow/gists{/gist_id}","starred_url":"https://api.github.com/users/snowplow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/snowplow/subscriptions","organizations_url":"https://api.github.com/users/snowplow/orgs","repos_url":"https://api.github.com/users/snowplow/repos","events_url":"https://api.github.com/users/snowplow/events{/privacy}","received_events_url":"https://api.github.com/users/snowplow/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/snowplow/snowplow","description":"Cloud-native web, mobile and event analytics, running on AWS and on-premise with Kafka","fork":false,"url":"https://api.github.com/repos/snowplow/snowplow","forks_url":"https://api.github.com/repos/snowplow/snowplow/forks","keys_url":"https://api.github.com/repos/snowplow/snowplow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/snowplow/snowplow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/snowplow/snowplow/teams","hooks_url":"https://api.github.com/repos/snowplow/snowplow/hooks","issue_events_url":"https://api.github.com/repos/snowplow/snowplow/issues/events{/number}","events_url":"https://api.github.com/repos/snowplow/snowplow/events","assignees_url":"https://api.github.com/repos/snowplow/snowplow/assignees{/user}","branches_url":"https://api.github.com/repos/snowplow/snowplow/branches{/branch}","tags_url":"https://api.github.com/repos/snowplow/snowplow/tags","blobs_url":"https://api.github.com/repos/snowplow/snowplow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/snowplow/snowplow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/snowplow/snowplow/git/refs{/sha}","trees_url":"https://api.github.com/repos/snowplow/snowplow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/snowplow/snowplow/statuses/{sha}","languages_url":"https://api.github.com/repos/snowplow/snowplow/languages","stargazers_url":"https://api.github.com/repos/snowplow/snowplow/stargazers","contributors_url":"https://api.github.com/repos/snowplow/snowplow/contributors","subscribers_url":"https://api.github.com/repos/snowplow/snowplow/subscribers","subscription_url":"https://api.github.com/repos/snowplow/snowplow/subscription","commits_url":"https://api.github.com/repos/snowplow/snowplow/commits{/sha}","git_commits_url":"https://api.github.com/repos/snowplow/snowplow/git/commits{/sha}","comments_url":"https://api.github.com/repos/snowplow/snowplow/comments{/number}","issue_comment_url":"https://api.github.com/repos/snowplow/snowplow/issues/comments{/number}","contents_url":"https://api.github.com/repos/snowplow/snowplow/contents/{+path}","compare_url":"https://api.github.com/repos/snowplow/snowplow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/snowplow/snowplow/merges","archive_url":"https://api.github.com/repos/snowplow/snowplow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/snowplow/snowplow/downloads","issues_url":"https://api.github.com/repos/snowplow/snowplow/issues{/number}","pulls_url":"https://api.github.com/repos/snowplow/snowplow/pulls{/number}","milestones_url":"https://api.github.com/repos/snowplow/snowplow/milestones{/number}","notifications_url":"https://api.github.com/repos/snowplow/snowplow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/snowplow/snowplow/labels{/name}","releases_url":"https://api.github.com/repos/snowplow/snowplow/releases{/id}","deployments_url":"https://api.github.com/repos/snowplow/snowplow/deployments","created_at":"2012-03-01T13:02:21Z","updated_at":"2018-05-29T09:11:49Z","pushed_at":"2018-05-28T17:45:23Z","git_url":"git://github.com/snowplow/snowplow.git","ssh_url":"git@github.com:snowplow/snowplow.git","clone_url":"https://github.com/snowplow/snowplow.git","svn_url":"https://github.com/snowplow/snowplow","homepage":"http://snowplowanalytics.com","size":22406,"stargazers_count":4062,"watchers_count":4062,"language":"Scala","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":887,"mirror_url":null,"archived":false,"open_issues_count":659,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":887,"open_issues":659,"watchers":4062,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/snowplow/snowplow/pulls/3750"},"html":{"href":"https://github.com/snowplow/snowplow/pull/3750"},"issue":{"href":"https://api.github.com/repos/snowplow/snowplow/issues/3750"},"comments":{"href":"https://api.github.com/repos/snowplow/snowplow/issues/3750/comments"},"review_comments":{"href":"https://api.github.com/repos/snowplow/snowplow/pulls/3750/comments"},"review_comment":{"href":"https://api.github.com/repos/snowplow/snowplow/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/snowplow/snowplow/pulls/3750/commits"},"statuses":{"href":"https://api.github.com/repos/snowplow/snowplow/statuses/d57a58b08aa534b9f017c6a194394ba825b31d97"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"BenFradet"}}