{"action":"created","comment":{"url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/pulls/comments/244002534","pull_request_review_id":187901492,"id":244002534,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0NDAwMjUzNA==","diff_hunk":"@@ -0,0 +1,184 @@\n+---\n+title: \"Converting Looker PDTs to dbt models: Reasons why (and why not)\"\n+date: \"2018-12-25\"\n+author: \"Dylan Baker\"\n+---\n+\n+Over the past few years, Looker has become a market-leading BI tool. Its data governance and self-service capabilities have now become paramount to thousands of BI stacks. For many, the Third Wave of BI (TM Frank Bien) is well and truly here.\n+\n+Persistent derived tables (PDTs) are a big part of Looker's success. They allow businesses to quickly transform their data with simple SQL `select` statement, abstracting lots of the data engineering that might otherwise be required. They allow you to easily materialize those models as tables in your data warehouse, speeding up the query times for your end users. \n+\n+They are addictive. Build a few PDTs, define an explore. Push. Build a few more. Push. Re-define the calculation behind a dimension. Push. Like most addictions though, there comes a point where you realise it may be detrimental to your health and well-being. Well, that of your BI stack anyway. \n+\n+Models can start getting slow, without the ability to optimise fully. Models can get repetitive, with very portions of code written out over and over. Models can break, without the ability to test their output.\n+\n+## Enter: dbt.\n+\n+dbt is to PDTs what Reeses is to peanut butter slathered on store-brand chocolate: broadly the same thing, but one far better executed that the other.\n+\n+From Tristan Handy, the CEO and founder of Fishtown Analytics who build dbt:\n+\n+> dbt is the T in ELT. It doesn’t extract or load data, but it’s extremely good at transforming data that’s already loaded into your warehouse. This “transform after load” architecture is becoming known as ELT (extract, load, transform).\n+> Every model is exactly one SELECT query, and this query defines the resulting data set.\n+\n+Sounds pretty similar, right? It is. dbt simply allows you to abide by certain principals that PDTs don't. dbt allows you some flexibity that PDTs don't.\n+\n+In this article, I'm going to cover some of the issues with doing all of the transformative modelling in Looker. I'll describe the pitfalls that may befall you and I'll lay out an argument for why dbt may be a better option for some of your modelling. In the next part of this series, I'll outline the practical steps of actually moving your PDTs into dbt.\n+\n+## A quick note\n+\n+Before I go any further, I want to remark that I wholeheartedly believe that Looker is a fantastic BI tool. It has been transformative for my work at a number of different businesses. It has powered most of the reporting I have done in the past three years. It is great. I fully intend to work with Looker for years to come. I wholly endorse it. \n+\n+It excels at data governance. It excels at self-service. It excels at integrating with other tools. It's just not the best tool for certain types of data modelling.\n+\n+It may also be right for your business's modelling _right now_. It's a great way to get started with data modelling if you've never done it before. It removes a few steps of complication that having another tool in the mix adds.\n+\n+So, with that said, here are the instances where I would recommend a move to dbt and the instances where Looker is going to better serve your needs.\n+\n+## Performance problems and incremental models\n+\n+Incredibly often, the issue that brings people from PDTs to dbt is the performance of their models. Most of the time, this stems from one of two problems.\n+\n+The **first** is in inability to [build PDTs incrementally](https://discourse.looker.com/t/incremental-pdts/7620). \n+\n+Imagine you've recently set up Heap, Segment, Snowplow or some other solution for event tracking. Initially, you've only got a few days of data, then a few weeks, then a few months. Every time your PDT needs to rebuild, it rebuilds the _whole_ data set. You're data from day 1 hasn't changed, but it has to be included in the data that gets refreshed. Gradually, this causes the model to rebuild more and more slowly, frustrating your end users who just want to know how many times people viewed the product page for your new special flying mattress yesterday.\n+\n+With dbt, you can build models incrementally, only building or rebuilding the rows that have been created or changed since you last ran the model. This can substantially speed up the build of your models. It will also greatly reduce the load on your database when the models build, allowing other queries to be served more quickly. \n+\n+The **second** problem is a tendency to never build intermediary PDTs to speed up model builds.\n+\n+There is a tendency in Looker to only build views (and therefore PDTs) that are necessary as a component of an explore. Often though, it would be beneficial for the speed of your rebuilds to break one long model into a handful of tables and then reference those in a final query. `base_pdt` -> `intermediary_pdt` -> `final_pdt` can often be quicker than if all the logic exists in one final larger table. It's not that this can't be done in Looker - it's just that it feel wrong to generate all those views in Looker if they aren't directly for analytics purposes\t. \n+\n+The workflow described above is common place in dbt. Ultimately, it creates a separation between the preparation of data and the LookML that instructs Looker how to expose your final modelled output. \n+\n+## Testing your models\n+\n+Another feature that dbt brings to the table is model testing, similar to unit tests present in most software development languages. \n+\n+Looker's data governance capabilities are fantastic. They ensure that everyone is looking at the same data - the same metrics. However, it doesn't ensure that the data feeding those metrics is correct. If someone makes a mistake in the SQL, everyone is still looking at the same metric, that metric just isn't accurate anymore. \n+\n+Imagine the following situation. You use Salesforce as your CRM and you have a LookML view called `sf_account`:\n+\n+{{< highlight sql >}}\n+\n+select \n+\ta.id,\n+\ta.name\n+from salesforce.sf_account a\n+\n+{{< /highlight >}}\n+\n+Everything is working correctly. You're completely confident in the data generated in your reports.\n+\n+Then, you decide you want to add the stage name from the related Salesforce opportunities to the model. Absent-mindedly, you forget that Accounts -> Opportunities is a one-to-many relationship. You make the following change and all your data from the `sf_account` view is suddently fanned out, distorting metrics in all your reports. \n+\n+{{< highlight sql >}}\n+\n+select \n+\ta.id,\n+\ta.name\n+from salesforce.sf_account a\n+left join salesforce.sf_opportunity o\n+\ton o.accountid = a.id\n+\n+{{< /highlight >}}\n+\n+The ID column was supposed to be your unique primary key and now it isn't. There is currently no automated mechanism in Looker to test the output of that query. No way of knowing that a record for ID `176` is now there 5 times, one for each opportunity generated for that account.","path":"content/posts/looker-pdt-to-dbt-part-one.md","position":86,"original_position":86,"commit_id":"961c0fd76c254ef9bede10f0c083b79ea0e409c9","original_commit_id":"961c0fd76c254ef9bede10f0c083b79ea0e409c9","user":{"login":"clrcrl","id":20294432,"node_id":"MDQ6VXNlcjIwMjk0NDMy","avatar_url":"https://avatars2.githubusercontent.com/u/20294432?v=4","gravatar_id":"","url":"https://api.github.com/users/clrcrl","html_url":"https://github.com/clrcrl","followers_url":"https://api.github.com/users/clrcrl/followers","following_url":"https://api.github.com/users/clrcrl/following{/other_user}","gists_url":"https://api.github.com/users/clrcrl/gists{/gist_id}","starred_url":"https://api.github.com/users/clrcrl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clrcrl/subscriptions","organizations_url":"https://api.github.com/users/clrcrl/orgs","repos_url":"https://api.github.com/users/clrcrl/repos","events_url":"https://api.github.com/users/clrcrl/events{/privacy}","received_events_url":"https://api.github.com/users/clrcrl/received_events","type":"User","site_admin":false},"body":"Edits:\r\n* `knowing that a record for ID `176` is now there 5 times` -> `knowing that ID `176` now has five records`\r\n\r\n```suggestion\r\n The ID column was supposed to be your unique primary key and now it isn't. There is currently no automated mechanism in Looker to test the output of that query. No way of knowing that ID `176` now has five records, one for each opportunity generated for that account.\r\n```","created_at":"2018-12-26T14:27:17Z","updated_at":"2018-12-26T14:39:25Z","html_url":"https://github.com/dbanalyticsco/dbanalytics.co/pull/1#discussion_r244002534","pull_request_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/pulls/1","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/pulls/comments/244002534"},"html":{"href":"https://github.com/dbanalyticsco/dbanalytics.co/pull/1#discussion_r244002534"},"pull_request":{"href":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/pulls/1","id":240868967,"node_id":"MDExOlB1bGxSZXF1ZXN0MjQwODY4OTY3","html_url":"https://github.com/dbanalyticsco/dbanalytics.co/pull/1","diff_url":"https://github.com/dbanalyticsco/dbanalytics.co/pull/1.diff","patch_url":"https://github.com/dbanalyticsco/dbanalytics.co/pull/1.patch","issue_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/issues/1","number":1,"state":"open","locked":false,"title":"Converting Looker PDTs to dbt (part one - reasons why)","user":{"login":"DylanBaker","id":10001014,"node_id":"MDQ6VXNlcjEwMDAxMDE0","avatar_url":"https://avatars0.githubusercontent.com/u/10001014?v=4","gravatar_id":"","url":"https://api.github.com/users/DylanBaker","html_url":"https://github.com/DylanBaker","followers_url":"https://api.github.com/users/DylanBaker/followers","following_url":"https://api.github.com/users/DylanBaker/following{/other_user}","gists_url":"https://api.github.com/users/DylanBaker/gists{/gist_id}","starred_url":"https://api.github.com/users/DylanBaker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DylanBaker/subscriptions","organizations_url":"https://api.github.com/users/DylanBaker/orgs","repos_url":"https://api.github.com/users/DylanBaker/repos","events_url":"https://api.github.com/users/DylanBaker/events{/privacy}","received_events_url":"https://api.github.com/users/DylanBaker/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-12-25T12:11:43Z","updated_at":"2018-12-26T14:39:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"666790c63e9c2db4acb35d641dcca09bc21bdfb1","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/pulls/1/commits","review_comments_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/pulls/1/comments","review_comment_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/issues/1/comments","statuses_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/statuses/961c0fd76c254ef9bede10f0c083b79ea0e409c9","head":{"label":"dbanalyticsco:post/pdt-to-dbt-part1","ref":"post/pdt-to-dbt-part1","sha":"961c0fd76c254ef9bede10f0c083b79ea0e409c9","user":{"login":"dbanalyticsco","id":44863117,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ0ODYzMTE3","avatar_url":"https://avatars1.githubusercontent.com/u/44863117?v=4","gravatar_id":"","url":"https://api.github.com/users/dbanalyticsco","html_url":"https://github.com/dbanalyticsco","followers_url":"https://api.github.com/users/dbanalyticsco/followers","following_url":"https://api.github.com/users/dbanalyticsco/following{/other_user}","gists_url":"https://api.github.com/users/dbanalyticsco/gists{/gist_id}","starred_url":"https://api.github.com/users/dbanalyticsco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dbanalyticsco/subscriptions","organizations_url":"https://api.github.com/users/dbanalyticsco/orgs","repos_url":"https://api.github.com/users/dbanalyticsco/repos","events_url":"https://api.github.com/users/dbanalyticsco/events{/privacy}","received_events_url":"https://api.github.com/users/dbanalyticsco/received_events","type":"Organization","site_admin":false},"repo":{"id":156677948,"node_id":"MDEwOlJlcG9zaXRvcnkxNTY2Nzc5NDg=","name":"dbanalytics.co","full_name":"dbanalyticsco/dbanalytics.co","private":false,"owner":{"login":"dbanalyticsco","id":44863117,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ0ODYzMTE3","avatar_url":"https://avatars1.githubusercontent.com/u/44863117?v=4","gravatar_id":"","url":"https://api.github.com/users/dbanalyticsco","html_url":"https://github.com/dbanalyticsco","followers_url":"https://api.github.com/users/dbanalyticsco/followers","following_url":"https://api.github.com/users/dbanalyticsco/following{/other_user}","gists_url":"https://api.github.com/users/dbanalyticsco/gists{/gist_id}","starred_url":"https://api.github.com/users/dbanalyticsco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dbanalyticsco/subscriptions","organizations_url":"https://api.github.com/users/dbanalyticsco/orgs","repos_url":"https://api.github.com/users/dbanalyticsco/repos","events_url":"https://api.github.com/users/dbanalyticsco/events{/privacy}","received_events_url":"https://api.github.com/users/dbanalyticsco/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/dbanalyticsco/dbanalytics.co","description":"Website for dbanaltics.co","fork":false,"url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co","forks_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/forks","keys_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/teams","hooks_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/hooks","issue_events_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/issues/events{/number}","events_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/events","assignees_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/assignees{/user}","branches_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/branches{/branch}","tags_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/tags","blobs_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/git/refs{/sha}","trees_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/statuses/{sha}","languages_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/languages","stargazers_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/stargazers","contributors_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/contributors","subscribers_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/subscribers","subscription_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/subscription","commits_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/commits{/sha}","git_commits_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/git/commits{/sha}","comments_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/comments{/number}","issue_comment_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/issues/comments{/number}","contents_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/contents/{+path}","compare_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/merges","archive_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/downloads","issues_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/issues{/number}","pulls_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/pulls{/number}","milestones_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/milestones{/number}","notifications_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/labels{/name}","releases_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/releases{/id}","deployments_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/deployments","created_at":"2018-11-08T08:56:20Z","updated_at":"2018-12-23T16:49:33Z","pushed_at":"2018-12-26T12:08:18Z","git_url":"git://github.com/dbanalyticsco/dbanalytics.co.git","ssh_url":"git@github.com:dbanalyticsco/dbanalytics.co.git","clone_url":"https://github.com/dbanalyticsco/dbanalytics.co.git","svn_url":"https://github.com/dbanalyticsco/dbanalytics.co","homepage":null,"size":2453,"stargazers_count":1,"watchers_count":1,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"license":null,"forks":0,"open_issues":1,"watchers":1,"default_branch":"master"}},"base":{"label":"dbanalyticsco:master","ref":"master","sha":"858597da700bdc0b50343937bce6df7f57fc6252","user":{"login":"dbanalyticsco","id":44863117,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ0ODYzMTE3","avatar_url":"https://avatars1.githubusercontent.com/u/44863117?v=4","gravatar_id":"","url":"https://api.github.com/users/dbanalyticsco","html_url":"https://github.com/dbanalyticsco","followers_url":"https://api.github.com/users/dbanalyticsco/followers","following_url":"https://api.github.com/users/dbanalyticsco/following{/other_user}","gists_url":"https://api.github.com/users/dbanalyticsco/gists{/gist_id}","starred_url":"https://api.github.com/users/dbanalyticsco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dbanalyticsco/subscriptions","organizations_url":"https://api.github.com/users/dbanalyticsco/orgs","repos_url":"https://api.github.com/users/dbanalyticsco/repos","events_url":"https://api.github.com/users/dbanalyticsco/events{/privacy}","received_events_url":"https://api.github.com/users/dbanalyticsco/received_events","type":"Organization","site_admin":false},"repo":{"id":156677948,"node_id":"MDEwOlJlcG9zaXRvcnkxNTY2Nzc5NDg=","name":"dbanalytics.co","full_name":"dbanalyticsco/dbanalytics.co","private":false,"owner":{"login":"dbanalyticsco","id":44863117,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ0ODYzMTE3","avatar_url":"https://avatars1.githubusercontent.com/u/44863117?v=4","gravatar_id":"","url":"https://api.github.com/users/dbanalyticsco","html_url":"https://github.com/dbanalyticsco","followers_url":"https://api.github.com/users/dbanalyticsco/followers","following_url":"https://api.github.com/users/dbanalyticsco/following{/other_user}","gists_url":"https://api.github.com/users/dbanalyticsco/gists{/gist_id}","starred_url":"https://api.github.com/users/dbanalyticsco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dbanalyticsco/subscriptions","organizations_url":"https://api.github.com/users/dbanalyticsco/orgs","repos_url":"https://api.github.com/users/dbanalyticsco/repos","events_url":"https://api.github.com/users/dbanalyticsco/events{/privacy}","received_events_url":"https://api.github.com/users/dbanalyticsco/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/dbanalyticsco/dbanalytics.co","description":"Website for dbanaltics.co","fork":false,"url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co","forks_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/forks","keys_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/teams","hooks_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/hooks","issue_events_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/issues/events{/number}","events_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/events","assignees_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/assignees{/user}","branches_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/branches{/branch}","tags_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/tags","blobs_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/git/refs{/sha}","trees_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/statuses/{sha}","languages_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/languages","stargazers_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/stargazers","contributors_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/contributors","subscribers_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/subscribers","subscription_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/subscription","commits_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/commits{/sha}","git_commits_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/git/commits{/sha}","comments_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/comments{/number}","issue_comment_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/issues/comments{/number}","contents_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/contents/{+path}","compare_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/merges","archive_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/downloads","issues_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/issues{/number}","pulls_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/pulls{/number}","milestones_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/milestones{/number}","notifications_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/labels{/name}","releases_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/releases{/id}","deployments_url":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/deployments","created_at":"2018-11-08T08:56:20Z","updated_at":"2018-12-23T16:49:33Z","pushed_at":"2018-12-26T12:08:18Z","git_url":"git://github.com/dbanalyticsco/dbanalytics.co.git","ssh_url":"git@github.com:dbanalyticsco/dbanalytics.co.git","clone_url":"https://github.com/dbanalyticsco/dbanalytics.co.git","svn_url":"https://github.com/dbanalyticsco/dbanalytics.co","homepage":null,"size":2453,"stargazers_count":1,"watchers_count":1,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"license":null,"forks":0,"open_issues":1,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/pulls/1"},"html":{"href":"https://github.com/dbanalyticsco/dbanalytics.co/pull/1"},"issue":{"href":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/issues/1"},"comments":{"href":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/dbanalyticsco/dbanalytics.co/statuses/961c0fd76c254ef9bede10f0c083b79ea0e409c9"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"clrcrl"}}