-
Notifications
You must be signed in to change notification settings - Fork 731
Expand file tree
/
Copy pathleaderboards_codebase_size.pipe
More file actions
55 lines (48 loc) · 1.99 KB
/
leaderboards_codebase_size.pipe
File metadata and controls
55 lines (48 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
DESCRIPTION >
Leaderboard ranking projects by codebase size, measured as the net lines of code changed
(total insertions minus deletions) across all git commits. Only includes projects with
git platform integrations.
NODE leaderboards_codebase_size_projects
DESCRIPTION >
Retrieves all projects that have git integration enabled
SQL >
SELECT id, name, slug, segmentId, logoUrl, collectionsSlugs, isLF, status
FROM insights_projects_populated_ds
WHERE has(connectedPlatforms, 'git')
GROUP BY id, name, slug, segmentId, logoUrl, collectionsSlugs, isLF, status
NODE leaderboards_codebase_size_activities
DESCRIPTION >
Calculates net lines changed per project by summing git insertions and subtracting deletions
SQL >
SELECT segmentId, SUM(gitInsertions) - SUM(gitDeletions) AS lineDifference
FROM activityRelations_deduplicated_cleaned_bucket_union
WHERE platform = 'git' AND (gitInsertions > 0 OR gitDeletions > 0)
GROUP BY segmentId
NODE leaderboards_codebase_size_result
DESCRIPTION >
Joins project metadata with codebase size metrics and assigns rankings based on total lines changed
SQL >
SELECT
toStartOfInterval(now(), INTERVAL 1 day) as snapshotId,
row_number() OVER (ORDER BY coalesce(o.lineDifference, 0) DESC) as rank,
p.id as id,
p.segmentId as segmentId,
p.name as name,
p.slug as slug,
p.logoUrl as logoUrl,
'codebase-size' as leaderboardType,
CAST(coalesce(o.lineDifference, 0) as Float64) as value,
0.0 as previousPeriodValue,
p.collectionsSlugs as collectionsSlugs,
p.isLF as isLF,
[] as githubHandleArray,
p.status as status,
count() OVER () as totalCount
FROM leaderboards_codebase_size_projects p
INNER JOIN leaderboards_codebase_size_activities o ON p.segmentId = o.segmentId
WHERE o.lineDifference > 0
ORDER BY value DESC
TYPE COPY
TARGET_DATASOURCE leaderboards_copy_ds
COPY_MODE append
COPY_SCHEDULE 10 1 * * *