Skip to content

Instantly share code, notes, and snippets.

@sminnee
Created May 14, 2019 05:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sminnee/562c19c466479dc2e6cf8fee0032b0e0 to your computer and use it in GitHub Desktop.
Save sminnee/562c19c466479dc2e6cf8fee0032b0e0 to your computer and use it in GitHub Desktop.
diff --git a/ss_dbt/models/platform/github_metrics.sql b/ss_dbt/models/platform/github_metrics.sql
index 0d80597..0135570 100644
--- a/ss_dbt/models/platform/github_metrics.sql
+++ b/ss_dbt/models/platform/github_metrics.sql
@@ -11,8 +11,8 @@ SELECT
coalesce(issues_closed, 0) AS issues_closed,
coalesce(bugs_created, 0) AS bugs_created,
coalesce(bugs_closed, 0) AS bugs_closed,
- coalesce(bugs_created, 0) AS enhancements_created,
- coalesce(bugs_closed, 0) AS enhancements_closed,
+ coalesce(enhancements_created, 0) AS enhancements_created,
+ coalesce(enhancements_closed, 0) AS enhancements_closed,
coalesce(docissues_created, 0) AS docissues_created,
coalesce(docissues_closed, 0) AS docissues_closed,
coalesce(notype_created, 0) AS notype_created,
@@ -22,92 +22,41 @@ SELECT
coalesce(prs_closed, 0) AS prs_closed,
-- Backlog sizes at end of week
- (
- SELECT COUNT(*)
- FROM {{ ref('github_issues') }}
- WHERE created_at < weeks.weeks + INTERVAL '7 day' AND (closed_at IS NULL OR closed_at > weeks.weeks + INTERVAL '7 day')
- AND repository = repos.repository
- AND NOT is_pr
- ) issues_total_open,
- (
- SELECT COUNT(*)
- FROM {{ ref('github_issues') }}
- WHERE closed_at < weeks.weeks + INTERVAL '7 day'
- AND repository = repos.repository
- AND NOT is_pr
- ) issues_total_closed,
- (
- SELECT COUNT(*)
- FROM github_data.issues i INNER JOIN github_data.issues__labels il ON il._sdc_source_key_id = i.id AND il.name = 'type/bug'
- WHERE created_at < weeks.weeks + INTERVAL '7 day' AND (closed_at IS NULL OR closed_at > weeks.weeks + INTERVAL '7 day')
- AND _sdc_repository = repos.repository
- AND pull_request__url IS NULL
- ) bugs_total_open,
- (
- SELECT COUNT(*)
- FROM github_data.issues i INNER JOIN github_data.issues__labels il ON il._sdc_source_key_id = i.id AND il.name = 'type/bug'
- WHERE closed_at < weeks.weeks + INTERVAL '7 day'
- AND _sdc_repository = repos.repository
- AND pull_request__url IS NULL
- ) bugs_total_closed,
- (
- SELECT COUNT(*)
- FROM github_data.issues i INNER JOIN github_data.issues__labels il ON il._sdc_source_key_id = i.id AND il.name IN ('type/enhancement', 'feature', 'enhancement')
- WHERE created_at < weeks.weeks + INTERVAL '7 day' AND (closed_at IS NULL OR closed_at > weeks.weeks + INTERVAL '7 day')
- AND _sdc_repository = repos.repository
- AND pull_request__url IS NULL
- ) enhancements_total_open,
- (
- SELECT COUNT(*)
- FROM github_data.issues i INNER JOIN github_data.issues__labels il ON il._sdc_source_key_id = i.id AND il.name IN ('type/enhancement', 'feature', 'enhancement')
- WHERE closed_at < weeks.weeks + INTERVAL '7 day'
- AND _sdc_repository = repos.repository
- AND pull_request__url IS NULL
- ) enhancements_total_closed,
- (
- SELECT COUNT(*)
- FROM github_data.issues i INNER JOIN github_data.issues__labels il ON il._sdc_source_key_id = i.id AND il.name = 'type/docs'
- WHERE created_at < weeks.weeks + INTERVAL '7 day' AND (closed_at IS NULL OR closed_at > weeks.weeks + INTERVAL '7 day')
- AND _sdc_repository = repos.repository
- AND pull_request__url IS NULL
- ) docissues_total_open,
- (
- SELECT COUNT(*)
- FROM github_data.issues i INNER JOIN github_data.issues__labels il ON il._sdc_source_key_id = i.id AND il.name = 'type/docs'
- WHERE closed_at < weeks.weeks + INTERVAL '7 day'
- AND _sdc_repository = repos.repository
- AND pull_request__url IS NULL
- ) docissues_total_closed,
- (
- SELECT COUNT(*)
- FROM {{ ref('github_issues') }}
- WHERE created_at < weeks.weeks + INTERVAL '7 day' AND (closed_at IS NULL OR closed_at > weeks.weeks + INTERVAL '7 day')
- AND repository = repos.repository
- AND NOT is_pr
- AND type IS NULL
- ) notype_total_open,
- (
- SELECT COUNT(*)
- FROM {{ ref('github_issues') }}
- WHERE closed_at < weeks.weeks + INTERVAL '7 day'
- AND repository = repos.repository
- AND NOT is_pr
- AND type IS NULL
- ) notype_total_closed,
- (
- SELECT COUNT(*)
- FROM {{ ref('github_issues') }}
- WHERE created_at < weeks.weeks + INTERVAL '7 day' AND (closed_at IS NULL OR closed_at > weeks.weeks + INTERVAL '7 day')
- AND repository = repos.repository
- AND is_pr
- ) prs_total_open,
- (
- SELECT COUNT(*)
- FROM {{ ref('github_issues') }}
- WHERE closed_at < weeks.weeks + INTERVAL '7 day'
- AND repository = repos.repository
- AND is_pr
- ) prs_total_closed,
+ SUM(issues_created) OVER (PARTITION BY created.repository ORDER BY created.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row)
+ - COALESCE(SUM(issues_closed) OVER (PARTITION BY closed.repository ORDER BY closed.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row), 0)
+ AS issues_total_open,
+ COALESCE(SUM(issues_closed) OVER (PARTITION BY closed.repository ORDER BY closed.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row), 0)
+ AS issues_total_closed,
+
+ SUM(bugs_created) OVER (PARTITION BY created.repository ORDER BY created.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row)
+ - COALESCE(SUM(bugs_closed) OVER (PARTITION BY closed.repository ORDER BY closed.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row), 0)
+ AS bugs_total_open,
+ COALESCE(SUM(bugs_closed) OVER (PARTITION BY closed.repository ORDER BY closed.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row), 0)
+ AS bugs_total_closed,
+
+ SUM(enhancements_created) OVER (PARTITION BY created.repository ORDER BY created.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row)
+ - COALESCE(SUM(enhancements_closed) OVER (PARTITION BY closed.repository ORDER BY closed.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row), 0)
+ AS enhancements_total_open,
+ COALESCE(SUM(enhancements_closed) OVER (PARTITION BY closed.repository ORDER BY closed.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row), 0)
+ AS enhancements_total_closed,
+
+ SUM(docissues_created) OVER (PARTITION BY created.repository ORDER BY created.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row)
+ - COALESCE(SUM(docissues_closed) OVER (PARTITION BY closed.repository ORDER BY closed.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row), 0)
+ AS docissues_total_open,
+ COALESCE(SUM(docissues_closed) OVER (PARTITION BY closed.repository ORDER BY closed.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row), 0)
+ AS docissues_total_closed,
+
+ SUM(notype_created) OVER (PARTITION BY created.repository ORDER BY created.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row)
+ - COALESCE(SUM(notype_closed) OVER (PARTITION BY closed.repository ORDER BY closed.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row), 0)
+ AS notype_total_open,
+ COALESCE(SUM(notype_closed) OVER (PARTITION BY closed.repository ORDER BY closed.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row), 0)
+ AS notype_total_closed,
+
+ SUM(prs_created) OVER (PARTITION BY created.repository ORDER BY created.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row)
+ - COALESCE(SUM(prs_closed) OVER (PARTITION BY closed.repository ORDER BY closed.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row), 0)
+ AS prs_total_open,
+ COALESCE(SUM(prs_closed) OVER (PARTITION BY closed.repository ORDER BY closed.week ASC ROWS BETWEEN unbounded preceding AND CURRENT row), 0)
+ AS prs_total_closed,
gmd.total_triaged,
gmd.total_untriaged,
@@ -127,7 +76,7 @@ LEFT JOIN (
count(*) FILTER (WHERE NOT is_pr) AS issues_created,
count(*) FILTER (WHERE is_pr) AS prs_created,
count(*) FILTER (WHERE NOT is_pr AND type = 'bug') AS bugs_created,
- count(*) FILTER (WHERE NOT is_pr AND type = 'enhancement') AS enhancments_created,
+ count(*) FILTER (WHERE NOT is_pr AND type = 'enhancement') AS enhancements_created,
count(*) FILTER (WHERE NOT is_pr AND type = 'docs') AS docissues_created,
count(*) FILTER (WHERE NOT is_pr AND type IS NULL) AS notype_created
FROM {{ ref('github_issues') }}
@@ -140,7 +89,7 @@ LEFT JOIN (
count(*) FILTER (WHERE NOT is_pr) AS issues_closed,
count(*) FILTER (WHERE is_pr) AS prs_closed,
count(*) FILTER (WHERE NOT is_pr AND type = 'bug') AS bugs_closed,
- count(*) FILTER (WHERE NOT is_pr AND type = 'enhancement') AS enhancments_closed,
+ count(*) FILTER (WHERE NOT is_pr AND type = 'enhancement') AS enhancements_closed,
count(*) FILTER (WHERE NOT is_pr AND type = 'docs') AS docissues_closed,
count(*) FILTER (WHERE NOT is_pr AND type IS NULL) AS notype_closed
FROM {{ ref('github_issues') }}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment