├── explores
├── .gitkeep
├── repository.explore.lkml
├── organization.explore.lkml
├── user.explore.lkml
├── event.explore.lkml
├── repository_commit.explore.lkml
├── issue.explore.lkml
└── pull_request.explore.lkml
├── views
├── .gitkeep
├── organization_user.view.lkml
├── organization.view.lkml
├── event.view.lkml
├── user.view.lkml
├── repository_commit.view.lkml
├── pull_request_activity.view.lkml
├── issue_comment.view.lkml
├── repository.view.lkml
├── issue.view.lkml
└── pull_request.view.lkml
├── dashboards
├── .gitkeep
├── user_activity.dashboard.lookml
└── overview.dashboard.lookml
├── manifest.lkml
├── marketplace.json
├── LICENSE
├── README.md
└── block_keboola_git_v2.model.lkml
/explores/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/views/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/dashboards/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/explores/repository.explore.lkml:
--------------------------------------------------------------------------------
1 | include: "/views/*.view.lkml"
2 |
3 | explore: repository {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/explores/organization.explore.lkml:
--------------------------------------------------------------------------------
1 | include: "/views/*.view.lkml"
2 |
3 | explore: organization {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/manifest.lkml:
--------------------------------------------------------------------------------
1 | project_name: "block-keboola-git"
2 |
3 | ################ Constants ################
4 |
5 | constant: CONNECTION {
6 | value: "keboola_block_git"
7 | export: override_optional
8 | }
9 |
10 | constant: SCHEMA_NAME {
11 | value: "WORKSPACE_546683285"
12 | export: override_optional
13 | }
14 |
--------------------------------------------------------------------------------
/explores/user.explore.lkml:
--------------------------------------------------------------------------------
1 | include: "/views/*.view.lkml"
2 |
3 | explore: user{
4 |
5 |
6 | join: organization_user {
7 | type: left_outer
8 | sql_on: ${user.user_id} = ${organization_user.user_id} ;;
9 | relationship: one_to_many
10 | }
11 |
12 | join: organization {
13 | type: left_outer
14 | sql_on: ${organization_user.organization_id} = ${organization.organization_id} ;;
15 | relationship: many_to_one
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/views/organization_user.view.lkml:
--------------------------------------------------------------------------------
1 | view: organization_user{
2 | sql_table_name: @{SCHEMA_NAME}."ORGANIZATION_USER" ;;
3 |
4 | dimension: organization_id {
5 | hidden: yes
6 | type: string
7 | sql: ${TABLE}."ORGANIZATION_ID" ;;
8 | }
9 |
10 | dimension: user_id {
11 | hidden: yes
12 | type: string
13 | sql: ${TABLE}."USER_ID" ;;
14 | }
15 |
16 | measure: count {
17 | type: count
18 | }
19 |
20 | # ----- Sets of fields for drilling ------
21 | set: detail {
22 | fields: [
23 | organization.organization,
24 | user.users
25 | ]
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/marketplace.json:
--------------------------------------------------------------------------------
1 | {
2 | "label": "DevOps Essentials",
3 | "category_label": "Models",
4 | "branding": {
5 | "image_uri": "https://marketplace-api.looker.com/block-icons/KeboolaBrand.png",
6 | "tagline": "Analyze your Git repositories activity and team members’ activity."
7 | },
8 |
9 | "constants": {
10 | "CONNECTION": {
11 | "label": "Connection Name",
12 | "value_constraint": "connection"
13 | },
14 | "SCHEMA_NAME": {
15 | "label": "Schema Name"
16 | }
17 | },
18 | "models": [
19 | {
20 | "name": "block_keboola_git_v2",
21 | "connection_constant": "CONNECTION"
22 | }
23 | ]
24 | }
25 |
--------------------------------------------------------------------------------
/views/organization.view.lkml:
--------------------------------------------------------------------------------
1 | view: organization {
2 | sql_table_name: @{SCHEMA_NAME}.ORGANIZATION ;;
3 |
4 | dimension: organization_id {
5 | label: "Organization ID"
6 | primary_key: yes
7 | type: string
8 | sql: ${TABLE}."ORGANIZATION_ID" ;;
9 | }
10 |
11 | dimension: organization {
12 | type: string
13 | sql: ${TABLE}."ORGANIZATION" ;;
14 | }
15 |
16 | measure: organizations {
17 | type: count
18 | drill_fields: [detail*]
19 | }
20 |
21 | # ----- Sets of fields for drilling ------
22 | set: detail {
23 | fields: [
24 | organization.organization,
25 | user.users
26 | ]
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/explores/event.explore.lkml:
--------------------------------------------------------------------------------
1 | include: "/views/*.view.lkml"
2 | explore: event{
3 |
4 |
5 | join: user {
6 | type: left_outer
7 | sql_on: ${event.user_id} = ${user.user_id} ;;
8 | relationship: many_to_one
9 | }
10 |
11 | join: organization_user {
12 | type: left_outer
13 | sql_on: ${user.user_id} = ${organization_user.user_id} ;;
14 | relationship: one_to_many
15 | }
16 |
17 | join: organization {
18 | type: left_outer
19 | sql_on: ${organization_user.organization_id} = ${organization.organization_id} ;;
20 | relationship: many_to_one
21 | }
22 |
23 | join: repository {
24 | type: left_outer
25 | sql_on: ${event.repository_id} = ${repository.repository_id} ;;
26 | relationship: many_to_one
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/explores/repository_commit.explore.lkml:
--------------------------------------------------------------------------------
1 | include: "/views/*.view.lkml"
2 |
3 | explore: repository_commit {
4 |
5 |
6 | join: user {
7 | type: left_outer
8 | sql_on: ${repository_commit.user_id} = ${user.user_id} ;;
9 | relationship: many_to_one
10 | }
11 |
12 | join: repository {
13 | type: left_outer
14 | sql_on: ${repository_commit.repository_id} = ${repository.repository_id} ;;
15 | relationship: many_to_one
16 | }
17 |
18 | join: organization_user {
19 | type: left_outer
20 | sql_on: ${user.user_id} = ${organization_user.user_id} ;;
21 | relationship: one_to_many
22 | }
23 |
24 | join: organization {
25 | type: left_outer
26 | sql_on: ${organization_user.organization_id} = ${organization.organization_id} ;;
27 | relationship: many_to_one
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/explores/issue.explore.lkml:
--------------------------------------------------------------------------------
1 | include: "/views/*.view.lkml"
2 |
3 | explore: issue {
4 |
5 |
6 | join: repository {
7 | type: left_outer
8 | sql_on: ${issue.repository_id} = ${repository.repository_id} ;;
9 | relationship: many_to_one
10 | }
11 |
12 | join: user {
13 | type: left_outer
14 | sql_on: ${issue.user_id} = ${user.user_id} ;;
15 | relationship: many_to_one
16 | }
17 |
18 | join: organization_user {
19 | type: left_outer
20 | sql_on: ${user.user_id} = ${organization_user.user_id} ;;
21 | relationship: one_to_many
22 | }
23 |
24 | join: organization {
25 | type: left_outer
26 | sql_on: ${organization_user.organization_id} = ${organization.organization_id} ;;
27 | relationship: many_to_one
28 | }
29 |
30 | join: issue_comment {
31 | type: left_outer
32 | sql_on: ${issue.issue_id} = ${issue_comment.issue_id} ;;
33 | relationship: one_to_many
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/explores/pull_request.explore.lkml:
--------------------------------------------------------------------------------
1 | include: "/views/*.view.lkml"
2 |
3 | explore: pull_request {
4 |
5 |
6 | join: user {
7 | type: left_outer
8 | sql_on: ${pull_request.user_id} = ${user.user_id} ;;
9 | relationship: many_to_one
10 | }
11 |
12 | join: repository {
13 | type: left_outer
14 | sql_on: ${pull_request.repository_id} = ${repository.repository_id} ;;
15 | relationship: many_to_one
16 | }
17 |
18 | join: organization_user {
19 | type: left_outer
20 | sql_on: ${user.user_id} = ${organization_user.user_id} ;;
21 | relationship: one_to_many
22 | }
23 |
24 | join: organization {
25 | type: left_outer
26 | sql_on: ${organization_user.organization_id} = ${organization.organization_id} ;;
27 | relationship: many_to_one
28 | }
29 |
30 | join: pull_request_activity {
31 | type: left_outer
32 | sql_on: ${pull_request.pull_request_id} = ${pull_request_activity.pull_request_id} ;;
33 | relationship: one_to_many
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | "MIT License
2 |
3 | Copyright (c) 2021 Google
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE."
22 |
--------------------------------------------------------------------------------
/views/event.view.lkml:
--------------------------------------------------------------------------------
1 | view: event {
2 | sql_table_name: @{SCHEMA_NAME}.EVENT ;;
3 | drill_fields: [event_id]
4 |
5 | dimension: event_id {
6 | label: "Event ID"
7 | primary_key: yes
8 | type: string
9 | sql: ${TABLE}."EVENT_ID" ;;
10 | html: {{ value }} ;;
11 | }
12 |
13 | dimension_group: date {
14 | type: time
15 | timeframes: [
16 | raw,
17 | time,
18 | date,
19 | week,
20 | month,
21 | quarter,
22 | year
23 | ]
24 | sql: ${TABLE}."DATE" ;;
25 | }
26 |
27 | dimension: event {
28 | type: string
29 | sql: ${TABLE}."EVENT" ;;
30 | }
31 |
32 | dimension: repository_id {
33 | type: string
34 | hidden: yes
35 | sql: ${TABLE}."REPOSITORY_ID" ;;
36 | }
37 |
38 | dimension: url {
39 | type: string
40 | sql: ${TABLE}."URL" ;;
41 | }
42 |
43 | dimension: user_id {
44 | type: string
45 | sql: ${TABLE}."USER_ID" ;;
46 | }
47 |
48 | measure: events {
49 | type: count
50 | drill_fields: [detail*]
51 | }
52 |
53 | # ----- Sets of fields for drilling ------
54 | set: detail {
55 | fields: [
56 | organization.organization,
57 | user.user,
58 | repository.repository,
59 | date_date,
60 | event,
61 | event_id
62 | ]
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/views/user.view.lkml:
--------------------------------------------------------------------------------
1 | view: user {
2 | sql_table_name: @{SCHEMA_NAME}."USER" ;;
3 |
4 | dimension: user_id {
5 | label: "User ID"
6 | primary_key: yes
7 | type: string
8 | sql: ${TABLE}."USER_ID" ;;
9 | }
10 |
11 | dimension_group: created {
12 | type: time
13 | timeframes: [
14 | raw,
15 | time,
16 | date,
17 | week,
18 | month,
19 | quarter,
20 | year
21 | ]
22 | sql: ${TABLE}."CREATED_ON" ;;
23 | }
24 |
25 | dimension: is_active {
26 | type: yesno
27 | sql: ${TABLE}."IS_ACTIVE" = 'true' ;;
28 | }
29 |
30 | dimension: is_member {
31 | type: yesno
32 | sql: ${TABLE}."IS_MEMBER" = 'true' ;;
33 | }
34 |
35 | dimension: organization_id {
36 | type: string
37 | hidden: yes
38 | sql: ${TABLE}."ORGANIZATION_ID" ;;
39 | }
40 |
41 | dimension: type {
42 | type: string
43 | sql: ${TABLE}."TYPE" ;;
44 | }
45 |
46 | dimension: user {
47 | type: string
48 | sql: ${TABLE}."USER" ;;
49 | }
50 |
51 | measure: users {
52 | type: count
53 | drill_fields: [detail*]
54 | }
55 |
56 | # ----- Sets of fields for drilling ------
57 | set: detail {
58 | fields: [
59 | organization.organization,
60 | user,
61 | issue.issues,
62 | issue_comment.issue_comments,
63 | pull_request.pull_requests,
64 | pull_request_activity.pull_request_activities,
65 | repository_commit.commits
66 | ]
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/views/repository_commit.view.lkml:
--------------------------------------------------------------------------------
1 | view: repository_commit {
2 | sql_table_name: @{SCHEMA_NAME}.REPOSITORY_COMMIT ;;
3 | drill_fields: [repository_commit_id]
4 |
5 | dimension: repository_commit_id {
6 | label: "Repository Commit ID"
7 | primary_key: yes
8 | type: string
9 | sql: ${TABLE}."REPOSITORY_COMMIT_ID" ;;
10 | html: {{ value }} ;;
11 | }
12 |
13 | dimension_group: date {
14 | type: time
15 | timeframes: [
16 | raw,
17 | time,
18 | date,
19 | week,
20 | month,
21 | quarter,
22 | year
23 | ]
24 | sql: ${TABLE}."DATE" ;;
25 | }
26 |
27 | dimension: message {
28 | type: string
29 | sql: ${TABLE}."MESSAGE" ;;
30 | }
31 |
32 | dimension: repository_id {
33 | type: string
34 | hidden: yes
35 | sql: ${TABLE}."REPOSITORY_ID" ;;
36 | }
37 |
38 | dimension: url {
39 | type: string
40 | sql: ${TABLE}."URL" ;;
41 | }
42 |
43 | dimension: user_id {
44 | type: string
45 | hidden: yes
46 | sql: ${TABLE}."USER_ID" ;;
47 | }
48 |
49 | measure: commits {
50 | type: count
51 | drill_fields: [detail*]
52 | }
53 |
54 | # ----- Sets of fields for drilling ------
55 | set: detail {
56 | fields: [
57 | organization.organization,
58 | repository.project,
59 | repository.repository,
60 | date_date,
61 | repository_commit_id,
62 | user.user,
63 | message,
64 | repository_commit_change.commit_changes
65 | ]
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/views/pull_request_activity.view.lkml:
--------------------------------------------------------------------------------
1 |
2 | view: pull_request_activity {
3 | sql_table_name: @{SCHEMA_NAME}.PULL_REQUEST_ACTIVITY ;;
4 |
5 | dimension: pull_request_activity_id {
6 | label: "Pull Request Activity ID"
7 | primary_key: yes
8 | type: string
9 | sql: ${TABLE}."PULL_REQUEST_ACTIVITY_ID" ;;
10 | }
11 |
12 | dimension_group: date {
13 | type: time
14 | timeframes: [
15 | raw,
16 | time,
17 | date,
18 | week,
19 | month,
20 | quarter,
21 | year
22 | ]
23 | sql: ${TABLE}."DATE" ;;
24 | }
25 |
26 | dimension: description {
27 | type: string
28 | sql: ${TABLE}."DESCRIPTION" ;;
29 | }
30 |
31 | dimension: pull_request_id {
32 | type: string
33 | hidden: yes
34 | sql: ${TABLE}."PULL_REQUEST_ID" ;;
35 | }
36 |
37 | dimension: reason {
38 | type: string
39 | sql: ${TABLE}."REASON" ;;
40 | }
41 |
42 | dimension: state {
43 | type: string
44 | sql: ${TABLE}."STATE" ;;
45 | }
46 |
47 | dimension: title {
48 | type: string
49 | sql: ${TABLE}."TITLE" ;;
50 | }
51 |
52 | dimension: user {
53 | type: string
54 | sql: ${TABLE}."USER" ;;
55 | }
56 |
57 | dimension: user_id {
58 | type: string
59 | hidden: yes
60 | sql: ${TABLE}."USER_ID" ;;
61 | }
62 |
63 | measure: pull_request_activities {
64 | type: count
65 | drill_fields: [detail*]
66 | }
67 |
68 | # ----- Sets of fields for drilling ------
69 | set: detail {
70 | fields: [
71 | organization.organization,
72 | repository.repository,
73 | users.user,
74 | date_date,
75 | pull_request_activity_id,
76 | title,
77 | state,
78 | reason
79 | ]
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/views/issue_comment.view.lkml:
--------------------------------------------------------------------------------
1 | view: issue_comment {
2 | sql_table_name: @{SCHEMA_NAME}.ISSUE_COMMENT ;;
3 | drill_fields: [issue_comment_id, description]
4 |
5 | dimension: issue_comment_id {
6 | label: "Issue Comment ID"
7 | primary_key: yes
8 | type: string
9 | sql: ${TABLE}."ISSUE_COMMENT_ID" ;;
10 | html: {{ value }} ;;
11 | }
12 |
13 | dimension_group: created {
14 | type: time
15 | timeframes: [
16 | raw,
17 | time,
18 | date,
19 | week,
20 | month,
21 | quarter,
22 | year
23 | ]
24 | sql: ${TABLE}."CREATED_ON" ;;
25 | }
26 |
27 | dimension: description {
28 | type: string
29 | sql: ${TABLE}."DESCRIPTION" ;;
30 | }
31 |
32 | dimension: issue_id {
33 | type: string
34 | hidden: yes
35 | sql: ${TABLE}."ISSUE_ID" ;;
36 | }
37 |
38 | dimension_group: updated {
39 | type: time
40 | timeframes: [
41 | raw,
42 | time,
43 | date,
44 | week,
45 | month,
46 | quarter,
47 | year
48 | ]
49 | sql: ${TABLE}."UPDATED_ON" ;;
50 | }
51 |
52 | dimension: url {
53 | type: string
54 | sql: ${TABLE}."URL" ;;
55 | }
56 |
57 | dimension: user {
58 | type: string
59 | sql: ${TABLE}."USER" ;;
60 | }
61 |
62 | dimension: user_id {
63 | type: string
64 | hidden: yes
65 | sql: ${TABLE}."USER_ID" ;;
66 | }
67 |
68 | measure: issue_comments {
69 | type: count
70 | drill_fields: [detail*]
71 | }
72 |
73 | # ----- Sets of fields for drilling ------
74 | set: detail {
75 | fields: [
76 | organization.organization,
77 | user.user,
78 | issue.title,
79 | issue.description,
80 | created_date,
81 | issue_comment_id,
82 | user,
83 | description
84 | ]
85 | }
86 | }
87 |
--------------------------------------------------------------------------------
/views/repository.view.lkml:
--------------------------------------------------------------------------------
1 | view: repository {
2 | sql_table_name: @{SCHEMA_NAME}.REPOSITORY ;;
3 | drill_fields: [repository]
4 |
5 | dimension: repository_id {
6 | label: "Repository ID"
7 | primary_key: yes
8 | type: string
9 | sql: ${TABLE}."REPOSITORY_ID" ;;
10 | html: {{ value }} ;;
11 | }
12 |
13 | dimension_group: created {
14 | type: time
15 | timeframes: [
16 | raw,
17 | time,
18 | date,
19 | week,
20 | month,
21 | quarter,
22 | year
23 | ]
24 | sql: ${TABLE}."CREATED_ON" ;;
25 | }
26 |
27 | dimension: description {
28 | type: string
29 | sql: ${TABLE}."DESCRIPTION" ;;
30 | }
31 |
32 | dimension: has_issues {
33 | type: yesno
34 | sql: ${TABLE}."HAS_ISSUES" = 'true' ;;
35 | }
36 |
37 | dimension: has_wiki {
38 | type: yesno
39 | sql: ${TABLE}."HAS_WIKI" = 'true' ;;
40 | }
41 |
42 | dimension: is_private {
43 | type: yesno
44 | sql: ${TABLE}."IS_PRIVATE" = 'true' ;;
45 | }
46 |
47 | dimension: language {
48 | type: string
49 | sql: ${TABLE}."LANGUAGE" ;;
50 | }
51 |
52 | dimension: project {
53 | type: string
54 | sql: ${TABLE}."PROJECT" ;;
55 | }
56 |
57 | dimension: repository {
58 | type: string
59 | sql: ${TABLE}."REPOSITORY" ;;
60 | html: {{ value }} ;;
61 | }
62 |
63 | dimension: url {
64 | type: string
65 | sql: ${TABLE}."URL" ;;
66 | }
67 |
68 | measure: repositories {
69 | type: count
70 | drill_fields: [detail*]
71 | }
72 |
73 | # ----- Sets of fields for drilling ------
74 | set: detail {
75 | fields: [
76 | organization.organization,
77 | project,
78 | repository,
79 | description,
80 | created_date,
81 | language,
82 | pull_request.pull_requests,
83 | repository_commit.commits,
84 | issue.issues
85 | ]
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Devops Essentials by Keboola
2 |
3 | ## Keboola Blocks Intro (Scaffold Prerequisite)
4 | Looker Blocks powered by Keboola are designed to work in tandem with corresponding Keboola Scaffolds in the Keboola Connection platform. Similar to Blocks in nature, Keboola Scaffolds are templatized use-cases that can be instantly deployed into the Keboola platform, providing the whole data management and processing chain required to populate your Looker dashboards.
5 |
6 | ## Block Overview
7 | This Block connects to data from Keboola “Devops” Scaffolds into Looker. Its purpose is to provide quick out-of-the-box end-to-end integration and functionality to be used either stand-alone or to be combined with other data, into scorecards, etc. In order to set up the Keboola data feed, please contact us: [here](https://get.keboola.com/lookerblocks?block=devops_essentials).
8 |
9 | ## Data and Block Structure
10 | The Block contains two LookML dashboards:
11 |
12 | * Overview for checking recent commit/pull/issues activity and identifying unresolved issues.
13 | * User Activity for tracking activity of your team members.
14 |
15 | The underlying model contains four main explores:
16 |
17 | * Repository Commit - contains commits and info about repositories.
18 | * Pull Request - contains pull requests and their activity (comments, approvals…).
19 | * Issues - contains issues and their comments.
20 | * Event - contains activity of your team members to track it in one place (commits, pulls, issues, comments etc.).
21 |
22 | As a standard, the data gets provided as a connection to Keboola-provided Snowflake, but it can be easily changed to your own DWH of choice during the setup.
23 |
24 | The **Keboola Scaffold** will set up everything for you - from the data extraction to data transformation, to setting up the Snowflake database with necessary tables for the LookML. All you need to do is set up the connection to the database in Looker and add it to the Looker model.
25 |
26 | In case you want to enrich your Looker model and dashboards with other fields or objects, including the addition of more data sources, you can modify and extend the whole data extraction and processing directly in Keboola Connection.
27 |
28 | ## Customization
29 | The LookML contents of this block can also be modified/extended to best fit all use cases.
30 | This block utilizes Refinement files for customization. For more information on using refinements to customize marketplace blocks, please see [this documentation](https://docs.looker.com/data-modeling/marketplace/customize-blocks).
31 |
--------------------------------------------------------------------------------
/views/issue.view.lkml:
--------------------------------------------------------------------------------
1 | view: issue {
2 | sql_table_name: @{SCHEMA_NAME}.ISSUE ;;
3 | drill_fields: [issue_id, title]
4 |
5 | dimension: issue_id {
6 | label: "Issue ID"
7 | primary_key: yes
8 | type: string
9 | sql: ${TABLE}."ISSUE_ID" ;;
10 | html: {{ value }} ;;
11 | }
12 |
13 | dimension_group: created {
14 | type: time
15 | timeframes: [
16 | raw,
17 | time,
18 | date,
19 | week,
20 | month,
21 | quarter,
22 | year
23 | ]
24 | sql: ${TABLE}."CREATED_ON" ;;
25 | }
26 |
27 | dimension: description {
28 | type: string
29 | sql: ${TABLE}."DESCRIPTION" ;;
30 | }
31 |
32 | dimension: kind {
33 | type: string
34 | sql: ${TABLE}."KIND" ;;
35 | }
36 |
37 | dimension: number {
38 | type: number
39 | sql: ${TABLE}."NUMBER" ;;
40 | }
41 |
42 | dimension: priority {
43 | type: string
44 | sql: ${TABLE}."PRIORITY" ;;
45 | }
46 |
47 | dimension: reporter {
48 | type: string
49 | sql: ${TABLE}."REPORTER" ;;
50 | }
51 |
52 | dimension: repository_id {
53 | type: string
54 | hidden: yes
55 | sql: ${TABLE}."REPOSITORY_ID" ;;
56 | }
57 |
58 | dimension: state {
59 | type: string
60 | sql: ${TABLE}."STATE" ;;
61 | }
62 |
63 | dimension: title {
64 | type: string
65 | sql: ${TABLE}."TITLE" ;;
66 | html: {{ value }} ;;
67 | }
68 |
69 | dimension_group: updated {
70 | type: time
71 | timeframes: [
72 | raw,
73 | time,
74 | date,
75 | week,
76 | month,
77 | quarter,
78 | year
79 | ]
80 | sql: ${TABLE}."UPDATED_ON" ;;
81 | }
82 |
83 | dimension: url {
84 | type: string
85 | sql: ${TABLE}."URL" ;;
86 | }
87 |
88 | dimension: user_id {
89 | type: string
90 | hidden: yes
91 | sql: ${TABLE}."USER_ID" ;;
92 | }
93 |
94 | dimension_group: since_created {
95 | type: duration
96 | intervals: [day]
97 | sql_start: ${TABLE}."CREATED_ON" ;;
98 | sql_end: current_date ;;
99 | drill_fields: [detail*]
100 | }
101 |
102 | dimension_group: since_updated {
103 | type: duration
104 | intervals: [day]
105 | sql_start: ${TABLE}."UPDATED_ON" ;;
106 | sql_end: current_date ;;
107 | drill_fields: [detail*]
108 | }
109 |
110 | measure: issues {
111 | type: count
112 | drill_fields: [detail*]
113 | }
114 |
115 | # ----- Sets of fields for drilling ------
116 | set: detail {
117 | fields: [
118 | organization.organization,
119 | user.user,
120 | repository.repository,
121 | issue_id,
122 | created_date,
123 | updated_date,
124 | issue_comment.issue_comments
125 | ]
126 | }
127 | }
128 |
--------------------------------------------------------------------------------
/block_keboola_git_v2.model.lkml:
--------------------------------------------------------------------------------
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 | # This Looker Block is designed to be powered by a scaffold in Keboola connection
35 | # that will acquire and transform data from HubSpot into the model expected here.
36 | # Please go to https://get.keboola.com/lookerblocks if you haven't already.
37 |
38 | # The connection name can be changed in the manifest file if desired, along with
39 | # other constants used by this block (Keboola will automatically create a connection
40 | # with this name)
41 |
42 | connection: "@{CONNECTION}"
43 |
44 | label: "Block Keboola Git Essentials"
45 |
46 | include: "/explores/*.explore.lkml"
47 | include: "/dashboards/*.dashboard.lookml"
48 |
--------------------------------------------------------------------------------
/views/pull_request.view.lkml:
--------------------------------------------------------------------------------
1 | view: pull_request {
2 | sql_table_name: @{SCHEMA_NAME}.PULL_REQUEST ;;
3 | drill_fields: [pull_request_id, title]
4 |
5 | dimension: pull_request_id {
6 | label: "Pull Request ID"
7 | primary_key: yes
8 | type: string
9 | sql: ${TABLE}."PULL_REQUEST_ID" ;;
10 | html: {{ value }} ;;
11 | }
12 |
13 | dimension_group: created {
14 | type: time
15 | timeframes: [
16 | raw,
17 | time,
18 | date,
19 | week,
20 | month,
21 | quarter,
22 | year
23 | ]
24 | sql: ${TABLE}."CREATED_ON" ;;
25 | }
26 |
27 | dimension: description {
28 | type: string
29 | sql: ${TABLE}."DESCRIPTION" ;;
30 | }
31 |
32 | dimension: repository_id {
33 | type: string
34 | hidden: yes
35 | sql: ${TABLE}."REPOSITORY_ID" ;;
36 | }
37 |
38 | dimension: state {
39 | type: string
40 | sql: ${TABLE}."STATE" ;;
41 | }
42 |
43 | dimension: title {
44 | type: string
45 | sql: ${TABLE}."TITLE" ;;
46 | html: {{ value }} ;;
47 | }
48 |
49 | dimension_group: updated {
50 | type: time
51 | timeframes: [
52 | raw,
53 | time,
54 | date,
55 | week,
56 | month,
57 | quarter,
58 | year
59 | ]
60 | sql: ${TABLE}."UPDATED_ON" ;;
61 | }
62 |
63 | dimension: url {
64 | type: string
65 | sql: ${TABLE}."URL" ;;
66 | }
67 |
68 | dimension: user_id {
69 | type: string
70 | hidden: yes
71 | sql: ${TABLE}."USER_ID" ;;
72 | }
73 |
74 | dimension_group: since_created {
75 | type: duration
76 | intervals: [day]
77 | sql_start: ${TABLE}."CREATED_ON" ;;
78 | sql_end: current_date ;;
79 | drill_fields: [detail*]
80 | }
81 |
82 | dimension_group: since_updated {
83 | type: duration
84 | intervals: [day]
85 | sql_start: ${TABLE}."UPDATED_ON" ;;
86 | sql_end: current_date ;;
87 | drill_fields: [detail*]
88 | }
89 |
90 | dimension_group: to_update {
91 | type: duration
92 | intervals: [day]
93 | sql_start: ${TABLE}."CREATED_ON" ;;
94 | sql_end: ${TABLE}."UPDATED_ON" ;;
95 | drill_fields: [detail*]
96 | }
97 |
98 | measure: days_to_merge {
99 | type: sum
100 | sql: (CASE
101 | WHEN ${state} = 'MERGED'
102 | THEN ${days_to_update}
103 | ELSE NULL
104 | END) ;;
105 | value_format: "#,##0"
106 | drill_fields: [detail*]
107 | }
108 |
109 | measure: pull_requests {
110 | type: count
111 | drill_fields: [detail*]
112 | }
113 |
114 | # ----- Sets of fields for drilling ------
115 | set: detail {
116 | fields: [
117 | organization.organization,
118 | repository.repository,
119 | users.user,
120 | created_date,
121 | updated_date,
122 | pull_request_id,
123 | title,
124 | description,
125 | pull_request_activity.pull_request_activities
126 | ]
127 | }
128 | }
129 |
--------------------------------------------------------------------------------
/dashboards/user_activity.dashboard.lookml:
--------------------------------------------------------------------------------
1 | - dashboard: users_activity
2 | title: Users Activity
3 | layout: newspaper
4 | elements:
5 | - name: 'powered by'
6 | type: text
7 | body_text:
9 | row: 0
10 | col: 18
11 | width: 6
12 | height: 2
13 | - name: 'scaffold'
14 | type: text
15 | title_text: ''
16 | subtitle_text: Git
17 | row: 0
18 | col: 0
19 | width: 6
20 | height: 2
21 | - name: 'dashboard'
22 | type: text
23 | title_text: ''
24 | subtitle_text: Users Activity
25 | body_text: ''
26 | row: 0
27 | col: 6
28 | width: 12
29 | height: 2
30 | - title: Users Overall Activity
31 | name: Users Overall Activity
32 | model: block_keboola_git_v2
33 | explore: event
34 | type: looker_column
35 | fields: [user.user, event.events, event.event]
36 | pivots: [event.event]
37 | sorts: [event.event 0, user.user]
38 | limit: 500
39 | color_application:
40 | collection_id: legacy
41 | palette_id: santa_cruz
42 | options:
43 | steps: 5
44 | x_axis_gridlines: false
45 | y_axis_gridlines: true
46 | show_view_names: false
47 | y_axes: [{label: '', orientation: left, series: [{axisId: Commit - event.events,
48 | id: Commit - event.events, name: Commit}, {axisId: Issue Comment - event.events,
49 | id: Issue Comment - event.events, name: Issue Comment}, {axisId: Issue
50 | Created - event.events, id: Issue Created - event.events, name: Issue
51 | Created}, {axisId: Pull Request Created - event.events, id: Pull Request
52 | Created - event.events, name: Pull Request Created}, {axisId: Pull Request
53 | Declined - event.events, id: Pull Request Declined - event.events, name: Pull
54 | Request Declined}, {axisId: Pull Request Merged - event.events, id: Pull
55 | Request Merged - event.events, name: Pull Request Merged}, {axisId: Pull
56 | Request Open - event.events, id: Pull Request Open - event.events, name: Pull
57 | Request Open}], showLabels: false, showValues: true, unpinAxis: false,
58 | tickDensity: default, tickDensityCustom: 5, type: linear}]
59 | show_y_axis_labels: true
60 | show_y_axis_ticks: true
61 | y_axis_tick_density: default
62 | y_axis_tick_density_custom: 5
63 | show_x_axis_label: false
64 | show_x_axis_ticks: true
65 | y_axis_scale_mode: linear
66 | x_axis_reversed: false
67 | y_axis_reversed: false
68 | plot_size_by_field: false
69 | trellis: ''
70 | stacking: normal
71 | limit_displayed_rows: false
72 | legend_position: center
73 | point_style: none
74 | series_colors: {}
75 | show_value_labels: true
76 | label_density: 25
77 | x_axis_scale: auto
78 | y_axis_combined: true
79 | reference_lines: []
80 | ordering: none
81 | show_null_labels: false
82 | show_totals_labels: true
83 | show_silhouette: false
84 | totals_color: "#353b49"
85 | listen:
86 | Date: event.date_date
87 | Organization: organization.organization
88 | User: user.user
89 | row: 2
90 | col: 0
91 | width: 12
92 | height: 7
93 | - title: Users Pull Requests
94 | name: Users Pull Requests
95 | model: block_keboola_git_v2
96 | explore: pull_request
97 | type: looker_column
98 | fields: [user.user, pull_request.pull_requests, pull_request.state]
99 | pivots: [pull_request.state]
100 | sorts: [pull_request.pull_requests desc 0, pull_request.state]
101 | limit: 500
102 | color_application:
103 | collection_id: legacy
104 | palette_id: santa_cruz
105 | options:
106 | steps: 5
107 | x_axis_gridlines: false
108 | y_axis_gridlines: true
109 | show_view_names: false
110 | show_y_axis_labels: true
111 | show_y_axis_ticks: true
112 | y_axis_tick_density: default
113 | y_axis_tick_density_custom: 5
114 | show_x_axis_label: true
115 | show_x_axis_ticks: true
116 | y_axis_scale_mode: linear
117 | x_axis_reversed: false
118 | y_axis_reversed: false
119 | plot_size_by_field: false
120 | trellis: ''
121 | stacking: normal
122 | limit_displayed_rows: false
123 | legend_position: center
124 | point_style: none
125 | series_colors:
126 | DECLINED - pull_request.pull_requests: "#ed6168"
127 | MERGED - pull_request.pull_requests: "#49cec1"
128 | OPEN - pull_request.pull_requests: "#1ea8df"
129 | show_value_labels: true
130 | label_density: 25
131 | x_axis_scale: auto
132 | y_axis_combined: true
133 | reference_lines: []
134 | ordering: none
135 | show_null_labels: false
136 | show_totals_labels: true
137 | show_silhouette: false
138 | totals_color: "#353b49"
139 | listen:
140 | Date: pull_request.created_date
141 | Organization: organization.organization
142 | User: user.user
143 | row: 9
144 | col: 0
145 | width: 12
146 | height: 7
147 | - title: Repositories Users Are Developing In (Commits/Pulls)
148 | name: Repositories Users Are Developing In (Commits/Pulls)
149 | model: block_keboola_git_v2
150 | explore: event
151 | type: looker_column
152 | fields: [user.user, repository.repositories, repository.language]
153 | pivots: [repository.language]
154 | filters:
155 | event.event: Commit,Pull Request Created
156 | event.events: ">0"
157 | sorts: [user.user, repository.language]
158 | limit: 500
159 | color_application:
160 | collection_id: legacy
161 | palette_id: santa_cruz
162 | options:
163 | steps: 5
164 | x_axis_gridlines: false
165 | y_axis_gridlines: true
166 | show_view_names: false
167 | y_axes: [{label: '', orientation: left, series: [{axisId: Commit - event.events,
168 | id: Commit - event.events, name: Commit}, {axisId: Issue Comment - event.events,
169 | id: Issue Comment - event.events, name: Issue Comment}, {axisId: Issue
170 | Created - event.events, id: Issue Created - event.events, name: Issue
171 | Created}, {axisId: Pull Request Created - event.events, id: Pull Request
172 | Created - event.events, name: Pull Request Created}, {axisId: Pull Request
173 | Declined - event.events, id: Pull Request Declined - event.events, name: Pull
174 | Request Declined}, {axisId: Pull Request Merged - event.events, id: Pull
175 | Request Merged - event.events, name: Pull Request Merged}, {axisId: Pull
176 | Request Open - event.events, id: Pull Request Open - event.events, name: Pull
177 | Request Open}], showLabels: false, showValues: true, unpinAxis: false,
178 | tickDensity: default, tickDensityCustom: 5, type: linear}]
179 | show_y_axis_labels: true
180 | show_y_axis_ticks: true
181 | y_axis_tick_density: default
182 | y_axis_tick_density_custom: 5
183 | show_x_axis_label: false
184 | show_x_axis_ticks: true
185 | y_axis_scale_mode: linear
186 | x_axis_reversed: false
187 | y_axis_reversed: false
188 | plot_size_by_field: false
189 | trellis: ''
190 | stacking: normal
191 | limit_displayed_rows: false
192 | legend_position: center
193 | point_style: none
194 | series_colors: {}
195 | series_labels:
196 | " - repository.repositories": unknown
197 | show_value_labels: true
198 | label_density: 25
199 | x_axis_scale: auto
200 | y_axis_combined: true
201 | reference_lines: []
202 | ordering: none
203 | show_null_labels: false
204 | show_totals_labels: true
205 | show_silhouette: false
206 | totals_color: "#353b49"
207 | listen:
208 | Date: event.date_date
209 | Organization: organization.organization
210 | User: user.user
211 | row: 2
212 | col: 12
213 | width: 12
214 | height: 7
215 | - title: Users Commits
216 | name: Users Commits
217 | model: block_keboola_git_v2
218 | explore: repository_commit
219 | type: looker_column
220 | fields: [repository_commit.commits, user.user, repository.language]
221 | pivots: [repository.language]
222 | sorts: [repository_commit.commits desc 0, repository.language]
223 | limit: 500
224 | color_application:
225 | collection_id: legacy
226 | palette_id: santa_cruz
227 | options:
228 | steps: 5
229 | x_axis_gridlines: false
230 | y_axis_gridlines: true
231 | show_view_names: false
232 | y_axes: [{label: '', orientation: left, series: [{axisId: php - repository_commit.commits,
233 | id: php - repository_commit.commits, name: php}, {axisId: python - repository_commit.commits,
234 | id: python - repository_commit.commits, name: python}, {axisId: unknown
235 | - repository_commit.commits, id: unknown - repository_commit.commits,
236 | name: unknown}], showLabels: false, showValues: true, unpinAxis: false,
237 | tickDensity: default, tickDensityCustom: 5, type: linear}]
238 | show_y_axis_labels: true
239 | show_y_axis_ticks: true
240 | y_axis_tick_density: default
241 | y_axis_tick_density_custom: 5
242 | show_x_axis_label: false
243 | show_x_axis_ticks: true
244 | y_axis_scale_mode: linear
245 | x_axis_reversed: false
246 | y_axis_reversed: false
247 | plot_size_by_field: false
248 | trellis: ''
249 | stacking: normal
250 | limit_displayed_rows: false
251 | legend_position: center
252 | point_style: none
253 | show_value_labels: true
254 | label_density: 25
255 | x_axis_scale: auto
256 | y_axis_combined: true
257 | ordering: none
258 | show_null_labels: false
259 | show_totals_labels: true
260 | show_silhouette: false
261 | totals_color: "#353b49"
262 | listen:
263 | Date: repository_commit.date_date
264 | Organization: organization.organization
265 | User: user.user
266 | row: 16
267 | col: 0
268 | width: 12
269 | height: 7
270 | - title: Users Assigned Issues
271 | name: Users Assigned Issues
272 | model: block_keboola_git_v2
273 | explore: issue
274 | type: looker_column
275 | fields: [user.user, issue.kind, issue.issues]
276 | pivots: [issue.kind]
277 | sorts: [issue.issues desc 0, issue.kind]
278 | limit: 500
279 | color_application:
280 | collection_id: legacy
281 | palette_id: santa_cruz
282 | options:
283 | steps: 5
284 | x_axis_gridlines: false
285 | y_axis_gridlines: true
286 | show_view_names: false
287 | y_axes: [{label: '', orientation: left, series: [{axisId: bug - issue.issues,
288 | id: bug - issue.issues, name: bug}, {axisId: enhancement - issue.issues,
289 | id: enhancement - issue.issues, name: enhancement}, {axisId: proposal
290 | - issue.issues, id: proposal - issue.issues, name: proposal}, {axisId: task
291 | - issue.issues, id: task - issue.issues, name: task}], showLabels: false,
292 | showValues: true, unpinAxis: false, tickDensity: default, tickDensityCustom: 5,
293 | type: linear}]
294 | show_y_axis_labels: true
295 | show_y_axis_ticks: true
296 | y_axis_tick_density: default
297 | y_axis_tick_density_custom: 5
298 | show_x_axis_label: false
299 | show_x_axis_ticks: true
300 | y_axis_scale_mode: linear
301 | x_axis_reversed: false
302 | y_axis_reversed: false
303 | plot_size_by_field: false
304 | trellis: ''
305 | stacking: normal
306 | limit_displayed_rows: false
307 | legend_position: center
308 | point_style: none
309 | show_value_labels: true
310 | label_density: 25
311 | x_axis_scale: auto
312 | y_axis_combined: true
313 | ordering: none
314 | show_null_labels: false
315 | show_totals_labels: true
316 | show_silhouette: false
317 | totals_color: "#353b49"
318 | listen:
319 | Date: issue.created_date
320 | Organization: organization.organization
321 | User: user.user
322 | row: 16
323 | col: 12
324 | width: 12
325 | height: 7
326 | - title: Users Activities Above Pull Requests (Reviews)
327 | name: Users Activities Above Pull Requests (Reviews)
328 | model: block_keboola_git_v2
329 | explore: pull_request
330 | type: looker_column
331 | fields: [pull_request_activity.pull_request_activities, pull_request_activity.user,
332 | pull_request_activity.state]
333 | pivots: [pull_request_activity.state]
334 | sorts: [pull_request_activity.pull_request_activities desc 0, pull_request_activity.state]
335 | limit: 500
336 | color_application:
337 | collection_id: legacy
338 | palette_id: santa_cruz
339 | options:
340 | steps: 5
341 | x_axis_gridlines: false
342 | y_axis_gridlines: true
343 | show_view_names: false
344 | show_y_axis_labels: true
345 | show_y_axis_ticks: true
346 | y_axis_tick_density: default
347 | y_axis_tick_density_custom: 5
348 | show_x_axis_label: true
349 | show_x_axis_ticks: true
350 | y_axis_scale_mode: linear
351 | x_axis_reversed: false
352 | y_axis_reversed: false
353 | plot_size_by_field: false
354 | trellis: ''
355 | stacking: normal
356 | limit_displayed_rows: false
357 | legend_position: center
358 | point_style: none
359 | series_colors:
360 | DECLINED - pull_request_activity.pull_request_activities: "#ed6168"
361 | MERGED - pull_request_activity.pull_request_activities: "#49cec1"
362 | show_value_labels: true
363 | label_density: 25
364 | x_axis_scale: auto
365 | y_axis_combined: true
366 | reference_lines: []
367 | ordering: none
368 | show_null_labels: false
369 | show_totals_labels: true
370 | show_silhouette: false
371 | totals_color: "#353b49"
372 | listen:
373 | Date: pull_request_activity.date_date
374 | Organization: organization.organization
375 | User: pull_request_activity.user
376 | row: 9
377 | col: 12
378 | width: 12
379 | height: 7
380 | filters:
381 | - name: Date
382 | title: Date
383 | type: date_filter
384 | default_value: 3 months
385 | allow_multiple_values: true
386 | required: false
387 | - name: Organization
388 | title: Organization
389 | type: field_filter
390 | default_value: ''
391 | allow_multiple_values: true
392 | required: false
393 | model: block_keboola_git_v2
394 | explore: organization
395 | listens_to_filters: []
396 | field: organization.organization
397 | - name: User
398 | title: User
399 | type: field_filter
400 | default_value: "-External User"
401 | allow_multiple_values: true
402 | required: false
403 | model: block_keboola_git_v2
404 | explore: user
405 | listens_to_filters: [Organization]
406 | field: user.user
--------------------------------------------------------------------------------
/dashboards/overview.dashboard.lookml:
--------------------------------------------------------------------------------
1 | - dashboard: overview
2 | title: Overview
3 | layout: newspaper
4 | elements:
5 | - name: 'powered by'
6 | type: text
7 | body_text:
9 | row: 0
10 | col: 18
11 | width: 6
12 | height: 2
13 | - name: 'block'
14 | type: text
15 | title_text: ''
16 | subtitle_text: Git
17 | row: 0
18 | col: 0
19 | width: 6
20 | height: 2
21 | - name: 'dashboard'
22 | type: text
23 | title_text: ''
24 | subtitle_text: Overview
25 | body_text: ''
26 | row: 0
27 | col: 6
28 | width: 12
29 | height: 2
30 | - title: Overall Activity
31 | name: Overall Activity
32 | model: block_keboola_git_v2
33 | explore: event
34 | type: looker_area
35 | fields: [event.date_week, event.events, event.event]
36 | pivots: [event.event]
37 | fill_fields: [event.date_week]
38 | sorts: [event.date_week desc, event.event]
39 | limit: 500
40 | color_application:
41 | collection_id: legacy
42 | palette_id: santa_cruz
43 | options:
44 | steps: 5
45 | x_axis_gridlines: false
46 | y_axis_gridlines: true
47 | show_view_names: false
48 | y_axes: [{label: '', orientation: left, series: [{axisId: Commit - event.events,
49 | id: Commit - event.events, name: Commit}, {axisId: Issue Comment - event.events,
50 | id: Issue Comment - event.events, name: Issue Comment}, {axisId: Issue
51 | Created - event.events, id: Issue Created - event.events, name: Issue
52 | Created}, {axisId: Pull Request Created - event.events, id: Pull Request
53 | Created - event.events, name: Pull Request Created}, {axisId: Pull Request
54 | Declined - event.events, id: Pull Request Declined - event.events, name: Pull
55 | Request Declined}, {axisId: Pull Request Merged - event.events, id: Pull
56 | Request Merged - event.events, name: Pull Request Merged}, {axisId: Pull
57 | Request Open - event.events, id: Pull Request Open - event.events, name: Pull
58 | Request Open}], showLabels: false, showValues: true, unpinAxis: false,
59 | tickDensity: default, tickDensityCustom: 5, type: linear}]
60 | show_y_axis_labels: true
61 | show_y_axis_ticks: true
62 | y_axis_tick_density: default
63 | y_axis_tick_density_custom: 5
64 | show_x_axis_label: false
65 | show_x_axis_ticks: true
66 | y_axis_scale_mode: linear
67 | x_axis_reversed: false
68 | y_axis_reversed: false
69 | plot_size_by_field: false
70 | trellis: ''
71 | stacking: normal
72 | limit_displayed_rows: false
73 | legend_position: center
74 | series_types: {}
75 | point_style: circle_outline
76 | show_value_labels: true
77 | label_density: 25
78 | x_axis_scale: auto
79 | y_axis_combined: true
80 | show_null_points: true
81 | interpolation: linear
82 | show_totals_labels: true
83 | show_silhouette: false
84 | totals_color: "#353b49"
85 | ordering: none
86 | show_null_labels: false
87 | listen:
88 | Date: event.date_date
89 | Organization: organization.organization
90 | User: user.user
91 | row: 4
92 | col: 0
93 | width: 24
94 | height: 7
95 | - title: Commits
96 | name: Commits KPI
97 | model: block_keboola_git_v2
98 | explore: repository_commit
99 | type: single_value
100 | fields: [repository_commit.commits]
101 | limit: 500
102 | listen:
103 | Date: repository_commit.date_date
104 | Organization: organization.organization
105 | User: user.user
106 | row: 2
107 | col: 12
108 | width: 6
109 | height: 2
110 | - title: Pull Requests
111 | name: Pull Requests KPI
112 | model: block_keboola_git_v2
113 | explore: pull_request
114 | type: single_value
115 | fields: [pull_request.pull_requests]
116 | limit: 500
117 | listen:
118 | Date: pull_request.created_date
119 | Organization: organization.organization
120 | User: user.user
121 | row: 2
122 | col: 6
123 | width: 6
124 | height: 2
125 | - title: Issues
126 | name: Issues KPI
127 | model: block_keboola_git_v2
128 | explore: issue
129 | type: single_value
130 | fields: [issue.issues]
131 | limit: 500
132 | listen:
133 | Date: issue.created_date
134 | Organization: organization.organization
135 | User: user.user
136 | row: 2
137 | col: 18
138 | width: 6
139 | height: 2
140 | - title: New Repositories
141 | name: New Repositories
142 | model: block_keboola_git_v2
143 | explore: repository
144 | type: single_value
145 | fields: [repository.repositories]
146 | limit: 500
147 | listen:
148 | Date: repository.created_date
149 | row: 2
150 | col: 0
151 | width: 6
152 | height: 2
153 | - name: Pull Requests
154 | type: text
155 | title_text: Pull Requests
156 | row: 18
157 | col: 0
158 | width: 24
159 | height: 2
160 | - title: Pull Requests Trend
161 | name: Pull Requests Trend
162 | model: block_keboola_git_v2
163 | explore: pull_request
164 | type: looker_column
165 | fields: [pull_request.pull_requests, pull_request.state, pull_request.created_week]
166 | pivots: [pull_request.state]
167 | fill_fields: [pull_request.created_week]
168 | sorts: [pull_request.state]
169 | limit: 500
170 | color_application:
171 | collection_id: legacy
172 | palette_id: santa_cruz
173 | options:
174 | steps: 5
175 | x_axis_gridlines: false
176 | y_axis_gridlines: true
177 | show_view_names: false
178 | y_axes: [{label: '', orientation: left, series: [{axisId: DECLINED - pull_request.pull_requests,
179 | id: DECLINED - pull_request.pull_requests, name: DECLINED}, {axisId: MERGED
180 | - pull_request.pull_requests, id: MERGED - pull_request.pull_requests,
181 | name: MERGED}, {axisId: OPEN - pull_request.pull_requests, id: OPEN -
182 | pull_request.pull_requests, name: OPEN}], showLabels: false, showValues: true,
183 | unpinAxis: false, tickDensity: default, tickDensityCustom: 5, type: linear}]
184 | show_y_axis_labels: true
185 | show_y_axis_ticks: true
186 | y_axis_tick_density: default
187 | y_axis_tick_density_custom: 5
188 | show_x_axis_label: false
189 | show_x_axis_ticks: true
190 | y_axis_scale_mode: linear
191 | x_axis_reversed: false
192 | y_axis_reversed: false
193 | plot_size_by_field: false
194 | trellis: ''
195 | stacking: normal
196 | limit_displayed_rows: false
197 | legend_position: center
198 | series_types: {}
199 | point_style: none
200 | series_colors:
201 | DECLINED - pull_request.pull_requests: "#ed6168"
202 | MERGED - pull_request.pull_requests: "#49cec1"
203 | OPEN - pull_request.pull_requests: "#1ea8df"
204 | show_value_labels: true
205 | label_density: 25
206 | x_axis_scale: auto
207 | y_axis_combined: true
208 | ordering: none
209 | show_null_labels: false
210 | show_totals_labels: true
211 | show_silhouette: false
212 | totals_color: "#353b49"
213 | listen:
214 | Date: pull_request.created_date
215 | Organization: organization.organization
216 | User: user.user
217 | row: 20
218 | col: 12
219 | width: 12
220 | height: 7
221 | - title: Pull Requests by Repository (TOP 10)
222 | name: Pull Requests by Repository (TOP 10)
223 | model: block_keboola_git_v2
224 | explore: pull_request
225 | type: looker_bar
226 | fields: [pull_request.pull_requests, pull_request.state, repository.repository]
227 | pivots: [pull_request.state]
228 | sorts: [pull_request.state 0, pull_request.pull_requests desc 3]
229 | limit: 10
230 | row_total: right
231 | color_application:
232 | collection_id: legacy
233 | palette_id: santa_cruz
234 | options:
235 | steps: 5
236 | x_axis_gridlines: false
237 | y_axis_gridlines: true
238 | show_view_names: false
239 | y_axes: [{label: '', orientation: left, series: [{axisId: DECLINED - pull_request.pull_requests,
240 | id: DECLINED - pull_request.pull_requests, name: DECLINED}, {axisId: MERGED
241 | - pull_request.pull_requests, id: MERGED - pull_request.pull_requests,
242 | name: MERGED}, {axisId: OPEN - pull_request.pull_requests, id: OPEN -
243 | pull_request.pull_requests, name: OPEN}], showLabels: false, showValues: true,
244 | unpinAxis: false, tickDensity: default, tickDensityCustom: 5, type: linear}]
245 | show_y_axis_labels: true
246 | show_y_axis_ticks: true
247 | y_axis_tick_density: default
248 | y_axis_tick_density_custom: 5
249 | show_x_axis_label: false
250 | show_x_axis_ticks: true
251 | y_axis_scale_mode: linear
252 | x_axis_reversed: false
253 | y_axis_reversed: false
254 | plot_size_by_field: false
255 | trellis: ''
256 | stacking: normal
257 | limit_displayed_rows: false
258 | legend_position: center
259 | series_types: {}
260 | point_style: none
261 | series_colors:
262 | DECLINED - pull_request.pull_requests: "#ed6168"
263 | MERGED - pull_request.pull_requests: "#49cec1"
264 | OPEN - pull_request.pull_requests: "#1ea8df"
265 | show_value_labels: false
266 | label_density: 25
267 | x_axis_scale: auto
268 | y_axis_combined: true
269 | ordering: none
270 | show_null_labels: false
271 | show_totals_labels: true
272 | show_silhouette: false
273 | totals_color: "#353b49"
274 | listen:
275 | Date: pull_request.created_date
276 | Organization: organization.organization
277 | User: user.user
278 | row: 20
279 | col: 0
280 | width: 12
281 | height: 7
282 | - name: Commits
283 | type: text
284 | title_text: Commits
285 | row: 27
286 | col: 0
287 | width: 24
288 | height: 2
289 | - title: Issues Trend
290 | name: Issues Trend
291 | model: block_keboola_git_v2
292 | explore: issue
293 | type: looker_column
294 | fields: [issue.issues, issue.created_week, issue.kind]
295 | pivots: [issue.kind]
296 | fill_fields: [issue.created_week]
297 | sorts: [issue.created_week desc, issue.kind]
298 | limit: 500
299 | color_application:
300 | collection_id: legacy
301 | palette_id: santa_cruz
302 | options:
303 | steps: 5
304 | x_axis_gridlines: false
305 | y_axis_gridlines: true
306 | show_view_names: false
307 | y_axes: [{label: '', orientation: left, series: [{axisId: bug - issue.issues,
308 | id: bug - issue.issues, name: bug}, {axisId: enhancement - issue.issues,
309 | id: enhancement - issue.issues, name: enhancement}, {axisId: proposal
310 | - issue.issues, id: proposal - issue.issues, name: proposal}, {axisId: task
311 | - issue.issues, id: task - issue.issues, name: task}], showLabels: false,
312 | showValues: true, unpinAxis: false, tickDensity: default, tickDensityCustom: 5,
313 | type: linear}]
314 | show_y_axis_labels: true
315 | show_y_axis_ticks: true
316 | y_axis_tick_density: default
317 | y_axis_tick_density_custom: 5
318 | show_x_axis_label: false
319 | show_x_axis_ticks: true
320 | y_axis_scale_mode: linear
321 | x_axis_reversed: false
322 | y_axis_reversed: false
323 | plot_size_by_field: false
324 | trellis: ''
325 | stacking: normal
326 | limit_displayed_rows: false
327 | legend_position: center
328 | series_types: {}
329 | point_style: none
330 | series_colors:
331 | bug - issue.issues: "#ed6168"
332 | proposal - issue.issues: "#e9b404"
333 | enhancement - issue.issues: "#49cec1"
334 | task - issue.issues: "#1ea8df"
335 | show_value_labels: true
336 | label_density: 25
337 | x_axis_scale: auto
338 | y_axis_combined: true
339 | ordering: none
340 | show_null_labels: false
341 | show_totals_labels: true
342 | show_silhouette: false
343 | totals_color: "#353b49"
344 | listen:
345 | Date: issue.created_date
346 | Organization: organization.organization
347 | User: user.user
348 | row: 38
349 | col: 12
350 | width: 12
351 | height: 7
352 | - name: Issues
353 | type: text
354 | title_text: Issues
355 | row: 36
356 | col: 0
357 | width: 24
358 | height: 2
359 | - title: Issues by Repository (TOP 10)
360 | name: Issues by Repository (TOP 10)
361 | model: block_keboola_git_v2
362 | explore: issue
363 | type: looker_bar
364 | fields: [issue.issues, issue.kind, repository.repository]
365 | pivots: [issue.kind]
366 | sorts: [issue.kind 0, issue.issues desc 4]
367 | limit: 10
368 | row_total: right
369 | color_application:
370 | collection_id: legacy
371 | palette_id: santa_cruz
372 | options:
373 | steps: 5
374 | x_axis_gridlines: false
375 | y_axis_gridlines: true
376 | show_view_names: false
377 | y_axes: [{label: '', orientation: left, series: [{axisId: bug - issue.issues,
378 | id: bug - issue.issues, name: bug}, {axisId: enhancement - issue.issues,
379 | id: enhancement - issue.issues, name: enhancement}, {axisId: proposal
380 | - issue.issues, id: proposal - issue.issues, name: proposal}, {axisId: task
381 | - issue.issues, id: task - issue.issues, name: task}], showLabels: false,
382 | showValues: true, unpinAxis: false, tickDensity: default, tickDensityCustom: 5,
383 | type: linear}]
384 | show_y_axis_labels: true
385 | show_y_axis_ticks: true
386 | y_axis_tick_density: default
387 | y_axis_tick_density_custom: 5
388 | show_x_axis_label: false
389 | show_x_axis_ticks: true
390 | y_axis_scale_mode: linear
391 | x_axis_reversed: false
392 | y_axis_reversed: false
393 | plot_size_by_field: false
394 | trellis: ''
395 | stacking: normal
396 | limit_displayed_rows: false
397 | legend_position: center
398 | series_types: {}
399 | point_style: none
400 | series_colors:
401 | bug - issue.issues: "#ed6168"
402 | proposal - issue.issues: "#e9b404"
403 | enhancement - issue.issues: "#49cec1"
404 | task - issue.issues: "#1ea8df"
405 | show_value_labels: true
406 | label_density: 25
407 | x_axis_scale: auto
408 | y_axis_combined: true
409 | ordering: none
410 | show_null_labels: false
411 | show_totals_labels: true
412 | show_silhouette: false
413 | totals_color: "#353b49"
414 | listen:
415 | Date: issue.created_date
416 | Organization: organization.organization
417 | User: user.user
418 | row: 38
419 | col: 0
420 | width: 12
421 | height: 7
422 | - title: Issues Open For More Than 30 Days
423 | name: Issues Open For More Than 30 Days
424 | model: block_keboola_git_v2
425 | explore: issue
426 | type: table
427 | fields: [repository.repository, issue.title, issue.kind, issue.days_since_created,
428 | issue.days_since_updated]
429 | filters:
430 | issue.state: new
431 | issue.days_since_created: ">30"
432 | sorts: [issue.days_since_created desc]
433 | limit: 500
434 | show_view_names: false
435 | show_row_numbers: false
436 | truncate_column_names: false
437 | hide_totals: false
438 | hide_row_totals: false
439 | table_theme: gray
440 | limit_displayed_rows: false
441 | enable_conditional_formatting: true
442 | conditional_formatting: [{type: along a scale..., value: !!null '', background_color: "#62bad4",
443 | font_color: !!null '', color_application: {collection_id: legacy, palette_id: legacy_sequential3,
444 | options: {steps: 5, reverse: true, constraints: {min: {type: number, value: 30}}}},
445 | bold: false, italic: false, strikethrough: false, fields: !!null ''}]
446 | conditional_formatting_include_totals: false
447 | conditional_formatting_include_nulls: false
448 | listen:
449 | Organization: organization.organization
450 | User: user.user
451 | row: 11
452 | col: 0
453 | width: 12
454 | height: 5
455 | - title: Commits by Repository (TOP 10)
456 | name: Commits by Repository (TOP 10)
457 | model: block_keboola_git_v2
458 | explore: repository_commit
459 | type: looker_bar
460 | fields: [repository.repository, repository.language, repository_commit.commits]
461 | pivots: [repository.language]
462 | sorts: [repository_commit.commits desc 3, repository.language 0]
463 | limit: 10
464 | row_total: right
465 | color_application:
466 | collection_id: legacy
467 | palette_id: santa_cruz
468 | options:
469 | steps: 5
470 | x_axis_gridlines: false
471 | y_axis_gridlines: true
472 | show_view_names: false
473 | y_axes: [{label: '', orientation: bottom, series: [{axisId: repository_commit.commits,
474 | id: php - repository_commit.commits, name: php}, {axisId: repository_commit.commits,
475 | id: python - repository_commit.commits, name: python}, {axisId: repository_commit.commits,
476 | id: unknown - repository_commit.commits, name: unknown}, {axisId: repository_commit.commits,
477 | id: Row Total - repository_commit.commits, name: Row Total}], showLabels: false,
478 | showValues: true, unpinAxis: false, tickDensity: default, tickDensityCustom: 5,
479 | type: linear}]
480 | show_y_axis_labels: true
481 | show_y_axis_ticks: true
482 | y_axis_tick_density: default
483 | y_axis_tick_density_custom: 5
484 | show_x_axis_label: false
485 | show_x_axis_ticks: true
486 | y_axis_scale_mode: linear
487 | x_axis_reversed: false
488 | y_axis_reversed: false
489 | plot_size_by_field: false
490 | trellis: ''
491 | stacking: normal
492 | limit_displayed_rows: false
493 | legend_position: center
494 | series_types: {}
495 | point_style: none
496 | show_value_labels: false
497 | label_density: 25
498 | x_axis_scale: auto
499 | y_axis_combined: true
500 | ordering: none
501 | show_null_labels: false
502 | show_totals_labels: true
503 | show_silhouette: false
504 | totals_color: "#353b49"
505 | listen:
506 | Date: repository_commit.date_date
507 | Organization: organization.organization
508 | User: user.user
509 | row: 29
510 | col: 0
511 | width: 12
512 | height: 7
513 | - title: Commits Trend
514 | name: Commits Trend
515 | model: block_keboola_git_v2
516 | explore: repository_commit
517 | type: looker_column
518 | fields: [repository.language, repository_commit.date_week, repository_commit.commits]
519 | pivots: [repository.language]
520 | fill_fields: [repository_commit.date_week]
521 | sorts: [repository_commit.date_week desc, repository.language]
522 | limit: 500
523 | color_application:
524 | collection_id: legacy
525 | palette_id: santa_cruz
526 | options:
527 | steps: 5
528 | x_axis_gridlines: false
529 | y_axis_gridlines: true
530 | show_view_names: false
531 | y_axes: [{label: '', orientation: left, series: [{axisId: php - repository_commit.commits,
532 | id: php - repository_commit.commits, name: php}, {axisId: python - repository_commit.commits,
533 | id: python - repository_commit.commits, name: python}, {axisId: unknown
534 | - repository_commit.commits, id: unknown - repository_commit.commits,
535 | name: unknown}], showLabels: false, showValues: true, unpinAxis: false,
536 | tickDensity: default, tickDensityCustom: 5, type: linear}]
537 | show_y_axis_labels: true
538 | show_y_axis_ticks: true
539 | y_axis_tick_density: default
540 | y_axis_tick_density_custom: 5
541 | show_x_axis_label: false
542 | show_x_axis_ticks: true
543 | y_axis_scale_mode: linear
544 | x_axis_reversed: false
545 | y_axis_reversed: false
546 | plot_size_by_field: false
547 | trellis: ''
548 | stacking: normal
549 | limit_displayed_rows: false
550 | legend_position: center
551 | series_types: {}
552 | point_style: none
553 | show_value_labels: true
554 | label_density: 25
555 | x_axis_scale: auto
556 | y_axis_combined: true
557 | ordering: none
558 | show_null_labels: false
559 | show_totals_labels: true
560 | show_silhouette: false
561 | totals_color: "#353b49"
562 | show_null_points: true
563 | interpolation: linear
564 | listen:
565 | Date: repository_commit.date_date
566 | Organization: organization.organization
567 | User: user.user
568 | row: 29
569 | col: 12
570 | width: 12
571 | height: 7
572 | - title: Pull Requests Stalled For More Than 2 Days
573 | name: Pull Requests Stalled For More Than 2 Days
574 | model: block_keboola_git_v2
575 | explore: pull_request
576 | type: table
577 | fields: [repository.repository, pull_request.title, pull_request.days_since_updated]
578 | filters:
579 | pull_request.state: OPEN
580 | pull_request.days_since_updated: ">2"
581 | sorts: [pull_request.days_since_updated desc]
582 | limit: 500
583 | show_view_names: false
584 | show_row_numbers: true
585 | truncate_column_names: false
586 | hide_totals: false
587 | hide_row_totals: false
588 | table_theme: gray
589 | limit_displayed_rows: false
590 | enable_conditional_formatting: true
591 | conditional_formatting: [{type: along a scale..., value: !!null '', background_color: "#62bad4",
592 | font_color: !!null '', color_application: {collection_id: legacy, palette_id: legacy_sequential3,
593 | options: {steps: 5, reverse: true, constraints: {min: {type: number, value: 2}}}},
594 | bold: false, italic: false, strikethrough: false, fields: !!null ''}]
595 | conditional_formatting_include_totals: false
596 | conditional_formatting_include_nulls: false
597 | series_types: {}
598 | listen:
599 | Organization: organization.organization
600 | User: user.user
601 | row: 11
602 | col: 12
603 | width: 12
604 | height: 7
605 | filters:
606 | - name: Date
607 | title: Date
608 | type: date_filter
609 | default_value: 3 months
610 | allow_multiple_values: true
611 | required: false
612 | - name: Organization
613 | title: Organization
614 | type: field_filter
615 | default_value: ''
616 | allow_multiple_values: true
617 | required: false
618 | model: block_keboola_git_v2
619 | explore: organization
620 | listens_to_filters: []
621 | field: organization.organization
622 | - name: User
623 | title: User
624 | type: field_filter
625 | default_value: ''
626 | allow_multiple_values: true
627 | required: false
628 | model: block_keboola_git_v2
629 | explore: user
630 | listens_to_filters: [Organization]
631 | field: user.user
--------------------------------------------------------------------------------