{"action":"created","comment":{"url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/pulls/comments/197648674","pull_request_review_id":131431695,"id":197648674,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5NzY0ODY3NA==","diff_hunk":"@@ -27,47 +28,61 @@ Here are four examples of services provided with increasing specificity:\n \n \n ### Expected performance\n-Imagine you find a magic data genie and you ask for the most detailed sales data in the world. You start flipping through the data and everything looks AMAZING... until you realize the data is two years old. That wish could have used a detailed definition of expected performance. This is the area of the SLA where we move from \"what\" will be delivered to \"how\" it will be delivered.\n+Imagine you find a magic data genie and you ask for the most detailed sales data in the world. You start flipping through the data and everything looks AMAZING... until you realize the data is two years old. That wish could have used a definition of expected performance. This is the area of the SLA where we move from \"what\" will be delivered to \"how\" it will be delivered.\n \n Here are some common aspects of expected performance to include in your SLA:\n * Data freshness: How current is the data? Is the data live, updated every hour or ready at 7am every morning? A potential approach is to categorize KPIs / models / data sources using \"tiers of freshness\" (e.g., intraday, daily, weekly) \n * Query speed: Query speed is a challenging aspect to quantify as your data warehouse most likely supports several different use cases in your data warehouse (types of data and queries). Average query run time is a good place to start, but you may need to create a more nuanced metric (e.g., X% of queries finish in <Y seconds)\n-* Data reliability / quality: Certainly you aspire to produce correct numbers, but it may not be possible to ensure perfection. I recommend tiering KPIs with descending levels of reliability - from your \"bullet proof\" metrics down to the numbers you put in the data warehouse for someone, but have not QA'd yet. I also recommend investing in the [Data Quality Flywheel]({{< relref \"data-dies-in-darkness.md\" >}})\n-* Ease of use / documentation: This can be a general commitment to deliver the data in a way that is simple and easy to use. However, you can also commit to producing detailed documentation (e.g., tool tips in the BI, data dictionary)\n+* Data reliability / quality: Certainly you aspire to produce correct numbers, but it may not be possible to ensure perfection. I recommend tiering KPIs with descending levels of reliability - from your \"bullet proof\" metrics down to the numbers you put in the data warehouse for someone, but have not QA'd yet. I also recommend investing in the [Data Quality Flywheel]({{< relref \"data-dies-in-darkness.md\" >}}) to make data quality everyone's responsibility\n+* Ease of use / documentation: This can be a general commitment to deliver the data in a way that is simple and easy to use. However, you can also commit to producing detailed documentation (e.g., tool tips in your business intelligence tool, data dictionary)\n \n While you should strive to build a robust analytics stack, you may never achieve the same reliability as your company's production level systems. For example, it is reasonable to expect that the systems that run the website of an ecommerce company will be more robust than their data warehouse. It costs a lot more when the website is down than when the data in the data warehouse is a few hours staler than usual. You could certainly build a robust data warehouse with production system level reliability - it all comes down to whether it makes sense to do this given your limited resources.\n \n-The challenge, however, changes when you have [intelligent applications]({{< relref \"data-platform.md\" >}}) in production that utilize your data warehouse. In this case you must define and deliver on a significantly more robust SLA.\n+The challenge, however, changes when you have [intelligent applications]({{< relref \"data-platform.md\" >}}) in production that utilize your data warehouse (e.g., automated post purchase emails powered by your data warehouse). In this case you must define and deliver on a significantly more robust SLA. Supporting production systems doesn't just require more resources, it requires an entirely different mentality.\n \n ### Problem reporting\n-Despite our best efforts, something will go wrong and the Data team might not be the first to discover it. Clear problem reporting procedures eliminates confusion and ensures the right people know about this issue (avoid situations like \"but I told Steve about the issue with X KPI last week\"). This can be as simple as a Google form, a data warehouse issues email alias or a slack channel. When possible, try to avoid in person communication (or at least make sure you send an email or slack to memorialize the in person discussion) - this will be helpful if you need to write a post mortem.\n+Despite your best efforts, something will go wrong and the Data team might not be the first to discover it (hopefully it is something small!). Clear problem reporting procedures eliminates confusion and ensure the right people know about this issue (avoid situations like \"but I told Steve about the issue with X KPI last week\" or \"my most important KPI looks wrong and my Data team point of contact is on vacation\"). ","path":"content/post/data-warehouse-sla-p2.md","position":50,"original_position":50,"commit_id":"5c49b8d7c700fc5b799cad563d6d8fcbcb693851","original_commit_id":"5c49b8d7c700fc5b799cad563d6d8fcbcb693851","user":{"login":"ilanman","id":2523556,"node_id":"MDQ6VXNlcjI1MjM1NTY=","avatar_url":"https://avatars3.githubusercontent.com/u/2523556?v=4","gravatar_id":"","url":"https://api.github.com/users/ilanman","html_url":"https://github.com/ilanman","followers_url":"https://api.github.com/users/ilanman/followers","following_url":"https://api.github.com/users/ilanman/following{/other_user}","gists_url":"https://api.github.com/users/ilanman/gists{/gist_id}","starred_url":"https://api.github.com/users/ilanman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ilanman/subscriptions","organizations_url":"https://api.github.com/users/ilanman/orgs","repos_url":"https://api.github.com/users/ilanman/repos","events_url":"https://api.github.com/users/ilanman/events{/privacy}","received_events_url":"https://api.github.com/users/ilanman/received_events","type":"User","site_admin":false},"body":"This is critical. Should problems be tiered or treated equally? e.g., Junior marketing analyst looking at a specific report vs. head of Ops thinks that weekly user growth (which the board cares about) is negative and therefore should be investigated. ","created_at":"2018-06-24T18:27:59Z","updated_at":"2018-06-24T18:44:10Z","html_url":"https://github.com/locallyoptimistic/LocallyOptimistic/pull/108#discussion_r197648674","pull_request_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/pulls/108","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/pulls/comments/197648674"},"html":{"href":"https://github.com/locallyoptimistic/LocallyOptimistic/pull/108#discussion_r197648674"},"pull_request":{"href":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/pulls/108"}}},"pull_request":{"url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/pulls/108","id":196961947,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk2OTYxOTQ3","html_url":"https://github.com/locallyoptimistic/LocallyOptimistic/pull/108","diff_url":"https://github.com/locallyoptimistic/LocallyOptimistic/pull/108.diff","patch_url":"https://github.com/locallyoptimistic/LocallyOptimistic/pull/108.patch","issue_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/issues/108","number":108,"state":"open","locked":false,"title":"DW SLA p2","user":{"login":"sbreitenother","id":12800593,"node_id":"MDQ6VXNlcjEyODAwNTkz","avatar_url":"https://avatars1.githubusercontent.com/u/12800593?v=4","gravatar_id":"","url":"https://api.github.com/users/sbreitenother","html_url":"https://github.com/sbreitenother","followers_url":"https://api.github.com/users/sbreitenother/followers","following_url":"https://api.github.com/users/sbreitenother/following{/other_user}","gists_url":"https://api.github.com/users/sbreitenother/gists{/gist_id}","starred_url":"https://api.github.com/users/sbreitenother/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sbreitenother/subscriptions","organizations_url":"https://api.github.com/users/sbreitenother/orgs","repos_url":"https://api.github.com/users/sbreitenother/repos","events_url":"https://api.github.com/users/sbreitenother/events{/privacy}","received_events_url":"https://api.github.com/users/sbreitenother/received_events","type":"User","site_admin":false},"body":"I need to polish a bit more, but would love some feedback!","created_at":"2018-06-24T18:00:35Z","updated_at":"2018-06-24T18:44:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bb282eea53809f0c09b15d5d6c5d2c0ff50cceea","assignee":null,"assignees":[],"requested_reviewers":[{"login":"swiftsam","id":658203,"node_id":"MDQ6VXNlcjY1ODIwMw==","avatar_url":"https://avatars3.githubusercontent.com/u/658203?v=4","gravatar_id":"","url":"https://api.github.com/users/swiftsam","html_url":"https://github.com/swiftsam","followers_url":"https://api.github.com/users/swiftsam/followers","following_url":"https://api.github.com/users/swiftsam/following{/other_user}","gists_url":"https://api.github.com/users/swiftsam/gists{/gist_id}","starred_url":"https://api.github.com/users/swiftsam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/swiftsam/subscriptions","organizations_url":"https://api.github.com/users/swiftsam/orgs","repos_url":"https://api.github.com/users/swiftsam/repos","events_url":"https://api.github.com/users/swiftsam/events{/privacy}","received_events_url":"https://api.github.com/users/swiftsam/received_events","type":"User","site_admin":false},{"login":"mikekaminsky","id":5394529,"node_id":"MDQ6VXNlcjUzOTQ1Mjk=","avatar_url":"https://avatars2.githubusercontent.com/u/5394529?v=4","gravatar_id":"","url":"https://api.github.com/users/mikekaminsky","html_url":"https://github.com/mikekaminsky","followers_url":"https://api.github.com/users/mikekaminsky/followers","following_url":"https://api.github.com/users/mikekaminsky/following{/other_user}","gists_url":"https://api.github.com/users/mikekaminsky/gists{/gist_id}","starred_url":"https://api.github.com/users/mikekaminsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikekaminsky/subscriptions","organizations_url":"https://api.github.com/users/mikekaminsky/orgs","repos_url":"https://api.github.com/users/mikekaminsky/repos","events_url":"https://api.github.com/users/mikekaminsky/events{/privacy}","received_events_url":"https://api.github.com/users/mikekaminsky/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/pulls/108/commits","review_comments_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/pulls/108/comments","review_comment_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/pulls/comments{/number}","comments_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/issues/108/comments","statuses_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/statuses/5c49b8d7c700fc5b799cad563d6d8fcbcb693851","head":{"label":"locallyoptimistic:data_warehouse_2","ref":"data_warehouse_2","sha":"5c49b8d7c700fc5b799cad563d6d8fcbcb693851","user":{"login":"locallyoptimistic","id":38887376,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM4ODg3Mzc2","avatar_url":"https://avatars1.githubusercontent.com/u/38887376?v=4","gravatar_id":"","url":"https://api.github.com/users/locallyoptimistic","html_url":"https://github.com/locallyoptimistic","followers_url":"https://api.github.com/users/locallyoptimistic/followers","following_url":"https://api.github.com/users/locallyoptimistic/following{/other_user}","gists_url":"https://api.github.com/users/locallyoptimistic/gists{/gist_id}","starred_url":"https://api.github.com/users/locallyoptimistic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/locallyoptimistic/subscriptions","organizations_url":"https://api.github.com/users/locallyoptimistic/orgs","repos_url":"https://api.github.com/users/locallyoptimistic/repos","events_url":"https://api.github.com/users/locallyoptimistic/events{/privacy}","received_events_url":"https://api.github.com/users/locallyoptimistic/received_events","type":"Organization","site_admin":false},"repo":{"id":120381457,"node_id":"MDEwOlJlcG9zaXRvcnkxMjAzODE0NTc=","name":"LocallyOptimistic","full_name":"locallyoptimistic/LocallyOptimistic","owner":{"login":"locallyoptimistic","id":38887376,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM4ODg3Mzc2","avatar_url":"https://avatars1.githubusercontent.com/u/38887376?v=4","gravatar_id":"","url":"https://api.github.com/users/locallyoptimistic","html_url":"https://github.com/locallyoptimistic","followers_url":"https://api.github.com/users/locallyoptimistic/followers","following_url":"https://api.github.com/users/locallyoptimistic/following{/other_user}","gists_url":"https://api.github.com/users/locallyoptimistic/gists{/gist_id}","starred_url":"https://api.github.com/users/locallyoptimistic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/locallyoptimistic/subscriptions","organizations_url":"https://api.github.com/users/locallyoptimistic/orgs","repos_url":"https://api.github.com/users/locallyoptimistic/repos","events_url":"https://api.github.com/users/locallyoptimistic/events{/privacy}","received_events_url":"https://api.github.com/users/locallyoptimistic/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/locallyoptimistic/LocallyOptimistic","description":null,"fork":false,"url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic","forks_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/forks","keys_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/teams","hooks_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/hooks","issue_events_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/issues/events{/number}","events_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/events","assignees_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/assignees{/user}","branches_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/branches{/branch}","tags_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/tags","blobs_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/git/refs{/sha}","trees_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/statuses/{sha}","languages_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/languages","stargazers_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/stargazers","contributors_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/contributors","subscribers_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/subscribers","subscription_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/subscription","commits_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/commits{/sha}","git_commits_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/git/commits{/sha}","comments_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/comments{/number}","issue_comment_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/issues/comments{/number}","contents_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/contents/{+path}","compare_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/merges","archive_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/downloads","issues_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/issues{/number}","pulls_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/pulls{/number}","milestones_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/milestones{/number}","notifications_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/labels{/name}","releases_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/releases{/id}","deployments_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/deployments","created_at":"2018-02-06T00:48:45Z","updated_at":"2018-06-23T00:37:05Z","pushed_at":"2018-06-24T18:00:35Z","git_url":"git://github.com/locallyoptimistic/LocallyOptimistic.git","ssh_url":"git@github.com:locallyoptimistic/LocallyOptimistic.git","clone_url":"https://github.com/locallyoptimistic/LocallyOptimistic.git","svn_url":"https://github.com/locallyoptimistic/LocallyOptimistic","homepage":null,"size":55583,"stargazers_count":2,"watchers_count":2,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"archived":false,"open_issues_count":15,"license":null,"forks":5,"open_issues":15,"watchers":2,"default_branch":"master"}},"base":{"label":"locallyoptimistic:master","ref":"master","sha":"ca050e370a6e21a59327da2635a168d7620e4f3f","user":{"login":"locallyoptimistic","id":38887376,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM4ODg3Mzc2","avatar_url":"https://avatars1.githubusercontent.com/u/38887376?v=4","gravatar_id":"","url":"https://api.github.com/users/locallyoptimistic","html_url":"https://github.com/locallyoptimistic","followers_url":"https://api.github.com/users/locallyoptimistic/followers","following_url":"https://api.github.com/users/locallyoptimistic/following{/other_user}","gists_url":"https://api.github.com/users/locallyoptimistic/gists{/gist_id}","starred_url":"https://api.github.com/users/locallyoptimistic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/locallyoptimistic/subscriptions","organizations_url":"https://api.github.com/users/locallyoptimistic/orgs","repos_url":"https://api.github.com/users/locallyoptimistic/repos","events_url":"https://api.github.com/users/locallyoptimistic/events{/privacy}","received_events_url":"https://api.github.com/users/locallyoptimistic/received_events","type":"Organization","site_admin":false},"repo":{"id":120381457,"node_id":"MDEwOlJlcG9zaXRvcnkxMjAzODE0NTc=","name":"LocallyOptimistic","full_name":"locallyoptimistic/LocallyOptimistic","owner":{"login":"locallyoptimistic","id":38887376,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM4ODg3Mzc2","avatar_url":"https://avatars1.githubusercontent.com/u/38887376?v=4","gravatar_id":"","url":"https://api.github.com/users/locallyoptimistic","html_url":"https://github.com/locallyoptimistic","followers_url":"https://api.github.com/users/locallyoptimistic/followers","following_url":"https://api.github.com/users/locallyoptimistic/following{/other_user}","gists_url":"https://api.github.com/users/locallyoptimistic/gists{/gist_id}","starred_url":"https://api.github.com/users/locallyoptimistic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/locallyoptimistic/subscriptions","organizations_url":"https://api.github.com/users/locallyoptimistic/orgs","repos_url":"https://api.github.com/users/locallyoptimistic/repos","events_url":"https://api.github.com/users/locallyoptimistic/events{/privacy}","received_events_url":"https://api.github.com/users/locallyoptimistic/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/locallyoptimistic/LocallyOptimistic","description":null,"fork":false,"url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic","forks_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/forks","keys_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/teams","hooks_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/hooks","issue_events_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/issues/events{/number}","events_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/events","assignees_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/assignees{/user}","branches_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/branches{/branch}","tags_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/tags","blobs_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/git/refs{/sha}","trees_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/statuses/{sha}","languages_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/languages","stargazers_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/stargazers","contributors_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/contributors","subscribers_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/subscribers","subscription_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/subscription","commits_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/commits{/sha}","git_commits_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/git/commits{/sha}","comments_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/comments{/number}","issue_comment_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/issues/comments{/number}","contents_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/contents/{+path}","compare_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/merges","archive_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/downloads","issues_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/issues{/number}","pulls_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/pulls{/number}","milestones_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/milestones{/number}","notifications_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/labels{/name}","releases_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/releases{/id}","deployments_url":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/deployments","created_at":"2018-02-06T00:48:45Z","updated_at":"2018-06-23T00:37:05Z","pushed_at":"2018-06-24T18:00:35Z","git_url":"git://github.com/locallyoptimistic/LocallyOptimistic.git","ssh_url":"git@github.com:locallyoptimistic/LocallyOptimistic.git","clone_url":"https://github.com/locallyoptimistic/LocallyOptimistic.git","svn_url":"https://github.com/locallyoptimistic/LocallyOptimistic","homepage":null,"size":55583,"stargazers_count":2,"watchers_count":2,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"archived":false,"open_issues_count":15,"license":null,"forks":5,"open_issues":15,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/pulls/108"},"html":{"href":"https://github.com/locallyoptimistic/LocallyOptimistic/pull/108"},"issue":{"href":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/issues/108"},"comments":{"href":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/issues/108/comments"},"review_comments":{"href":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/pulls/108/comments"},"review_comment":{"href":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/pulls/108/commits"},"statuses":{"href":"https://api.github.com/repos/locallyoptimistic/LocallyOptimistic/statuses/5c49b8d7c700fc5b799cad563d6d8fcbcb693851"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"ilanman"}}