diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1bfbf45..34aaf6c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,12 +1,12 @@ --- repos: - repo: git://github.com/Lucas-C/pre-commit-hooks - rev: v1.1.10 + rev: v1.1.13 hooks: - id: remove-tabs - repo: git://github.com/pre-commit/pre-commit-hooks - rev: v4.0.1 + rev: v4.1.0 hooks: - id: trailing-whitespace - id: check-merge-conflict @@ -27,7 +27,7 @@ repos: - id: pydocstyle - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.0.1 + rev: v4.1.0 hooks: - id: check-toml - id: check-yaml @@ -35,19 +35,19 @@ repos: - id: trailing-whitespace - repo: https://github.com/pre-commit/mirrors-mypy - rev: v0.902 + rev: v0.931 hooks: - id: mypy exclude: '^(docs|tasks|tests)|setup\.py' args: [--ignore-missing-imports] - repo: https://github.com/psf/black - rev: 21.6b0 + rev: 22.1.0 hooks: - id: black - repo: https://github.com/tomcatling/black-nb - rev: '0.5.0' + rev: '0.7' hooks: - id: black-nb @@ -58,7 +58,7 @@ repos: # - id: check-manifest - repo: https://github.com/s-weigand/flake8-nb - rev: v0.3.0 + rev: v0.4.0 hooks: - id: flake8-nb additional_dependencies: ['pep8-naming'] diff --git a/docs/conf.py b/docs/conf.py index 4b14c92..b24b60c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -40,7 +40,7 @@ master_doc = "index" # General information about the project. -project = u"project-template" +project = "project-template" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -183,8 +183,8 @@ ( "index", "project-template.tex", - u"project-template Documentation", - u"aicoe-aiops", + "project-template Documentation", + "aicoe-aiops", "manual", ), ] @@ -218,8 +218,8 @@ ( "index", "project-template", - u"project-template Documentation", - [u"aicoe-aiops"], + "project-template Documentation", + ["aicoe-aiops"], 1, ) ] @@ -237,8 +237,8 @@ ( "index", "project-template", - u"project-template Documentation", - u"aicoe-aiops", + "project-template Documentation", + "aicoe-aiops", "project-template", "template for the team to use", "Miscellaneous", diff --git a/notebooks/GitHub_Data_EDA.ipynb b/notebooks/GitHub_Data_EDA.ipynb new file mode 100644 index 0000000..fc68833 --- /dev/null +++ b/notebooks/GitHub_Data_EDA.ipynb @@ -0,0 +1,4895 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "56c73832-0234-4bf7-82e6-293a878aa434", + "metadata": {}, + "source": [ + "# GitHub Data for Open Services Initiatives\n", + "\n", + "In this notebook we will quickly walk through how to access and start analyzing the Issue/PR data for all the sub-projects under different SIGs of the Open Services Group. We also explore the various fields in the Issue/PR dataset and the features that we can derive from them in order to calculate metrics to measure and track the progress and contribution made across the Open Services group." + ] + }, + { + "cell_type": "markdown", + "id": "82b487bf-13ed-4016-9391-0242dd07e5a8", + "metadata": {}, + "source": [ + "## Data Collection\n", + "\n", + "The Thoth team already developed a tool for fetching and collecting data from GitHub repositories, [MI tool](https://github.com/thoth-station/mi). Using this tool, we will fetch the GitHub issue/PR data for all the repos mentioned in [sigs.yaml](https://github.com/open-services-group/community/blob/main/sigs.yaml) and store them to Ceph. We will then access the data from Ceph into the notebook and explore the various fields in the data that can be used to derive metrics. We would like to automate this data collection in the future, so that the notebook can be run daily on the most recent data for which we plan to integrate the [MI scheduler](https://github.com/thoth-station/mi-scheduler) tool into our metrics processing pipeline." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "3cef1725-6e0c-41b6-90d7-2e7f6439cab4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import os\n", + "import boto3\n", + "import json\n", + "import pandas as pd\n", + "from dotenv import load_dotenv, find_dotenv\n", + "\n", + "load_dotenv(find_dotenv())" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "fd77e1e9-02e6-41cc-acdd-0e82b68026b5", + "metadata": {}, + "outputs": [], + "source": [ + "## CEPH Bucket variables\n", + "## Create a .env file on your local with the correct configs,\n", + "s3_endpoint_url = os.getenv(\"S3_ENDPOINT\")\n", + "s3_access_key = os.getenv(\"S3_ACCESS_KEY\")\n", + "s3_secret_key = os.getenv(\"S3_SECRET_KEY\")\n", + "s3_bucket = os.getenv(\"S3_BUCKET\")\n", + "s3_path = os.getenv(\"S3_PROJECT_KEY\", \"open-services-group/metrics/github\")\n", + "s3_input_data_path = \"raw_data\"\n", + "REMOTE = os.getenv(\"REMOTE\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "4e935557-1d33-4ac2-b5d2-9933edb3db2f", + "metadata": {}, + "outputs": [], + "source": [ + "s3 = boto3.resource(\n", + " \"s3\",\n", + " endpoint_url=s3_endpoint_url,\n", + " aws_access_key_id=s3_access_key,\n", + " aws_secret_access_key=s3_secret_key,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "577d2cd3-77da-4679-b556-e0b166ee8300", + "metadata": {}, + "outputs": [], + "source": [ + "# Function to read data from Ceph\n", + "def read_data_from_ceph(s3_file_path):\n", + " print(\"Getting dataset from Ceph\")\n", + " content = s3.Object(s3_bucket, s3_file_path)\n", + " file = content.get()[\"Body\"].read().decode(\"utf-8\")\n", + " data = json.loads(file)\n", + " separated_list = data.splitlines()\n", + " data_dict = {\n", + " str(i): json.loads(separated_list[i]) for i in range(0, len(separated_list))\n", + " }\n", + " df = pd.DataFrame(data_dict).T\n", + " return df" + ] + }, + { + "cell_type": "markdown", + "id": "9ccd1c3a-d41e-4dd7-ab5f-ed8245e4d7fa", + "metadata": {}, + "source": [ + "Lets now fetch the PR/Issue data for all the sub-projecs defined under the following SIGs/WGs:\n", + "\n", + "* **SIG Data Science** comprises of the following sub-projects:\n", + " * [OS Climate](https://github.com/open-services-group/community/blob/main/sigs.yaml#L93)\n", + " * [Operate First Data Science Community](https://github.com/aicoe-aiops/operate-first-data-science-community)\n", + " * [Metrics](https://github.com/open-services-group/metrics)\n", + " \n", + "* **SIG Community Experience** comprises of the following sub-projects:\n", + " * [ComCom](https://github.com/open-services-group/community/main)\n", + " * [GovOrg](https://github.com/open-services-group/community/main)\n", + " * [Metrics Strategic](https://github.com/open-services-group/community/main)\n", + " \n", + "* **SIG Services** comprises of the following sub-projects:\n", + " * [AICoE-CD](https://github.com/AICoE/aicoe-cd)\n", + " * [AICoE-CI](https://github.com/AICoE/aicoe-ci)\n", + " * Project Meteor\n", + " * https://github.com/AICoE/meteor\n", + " * https://github.com/AICoE/meteor-operator\n", + " * [Project Thoth](https://github.com/thoth-station/core)\n", + " * [Seraph](https://github.com/AICoE/seraph)\n", + " \n", + "* **WG BYON Build Pipelines** comprises of the following sub-project:\n", + " * [BYON](https://github.com/open-services-group/byon)\n", + " \n", + "* **[WG DevSecOps](https://github.com/open-services-group/devsecops)**" + ] + }, + { + "cell_type": "markdown", + "id": "47db5842-042d-48dd-b1cf-e347d5ae5883", + "metadata": {}, + "source": [ + "## SIG Data Science\n", + "\n", + "The Data Science SIG comprises of 3 sub-projects." + ] + }, + { + "cell_type": "markdown", + "id": "b33394e0-f907-49e7-823f-73e4311ebb65", + "metadata": {}, + "source": [ + "Lets look at the sub-project `OS Climate` and fetch all its relevant Issue/PR data" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "05a3e64d-78bc-4adb-a712-5d7f019e2c74", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Getting dataset from Ceph\n", + "Getting dataset from Ceph\n" + ] + } + ], + "source": [ + "os_climate_issues = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/os-climate/aicoe-osc-demo/Issue.json\"\n", + ")\n", + "os_climate_prs = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/os-climate/aicoe-osc-demo/PullRequest.json\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "07ecbacb-4dd2-410c-b997-bcdf0be36104", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodycreated_bycreated_atclosed_byclosed_atlabelsinteractionsid
0Prepare GPU image for training teacher network...**Is your feature request related to a problem...pacospace1644527768NoneNone{'enhancement': {'color': 'a2eeef', 'labeled_a...{'pacospace': 8}128
1Value Error related to S3 in demo2 notebookValue Error related to S3 at Import in when ru...andraNew1641590227andraNew1642091274{'bug': {'color': 'd73a4a', 'labeled_at': 1641...{'andraNew': 123, 'erikerlandson': 90, 'chauha...127
2Create JupyterbookAdd _toc.yaml and _config.yml for the repo and...oindrillac1639764581oindrillac1640024593{}{}125
3Should we state which base image tag is used i...See: https://github.com/os-climate/aicoe-osc-d...pacospace1639086094MichaelClifford1639189607{}{'chauhankaranraj': 71, 'pacospace': 39}122
4Use overlays for building images**Is your feature request related to a problem...chauhankaranraj1639077221NoneNone{'enhancement': {'color': 'a2eeef', 'labeled_a...{'pacospace': 19, 'chauhankaranraj': 40}121
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 Prepare GPU image for training teacher network... \n", + "1 Value Error related to S3 in demo2 notebook \n", + "2 Create Jupyterbook \n", + "3 Should we state which base image tag is used i... \n", + "4 Use overlays for building images \n", + "\n", + " body created_by \\\n", + "0 **Is your feature request related to a problem... pacospace \n", + "1 Value Error related to S3 at Import in when ru... andraNew \n", + "2 Add _toc.yaml and _config.yml for the repo and... oindrillac \n", + "3 See: https://github.com/os-climate/aicoe-osc-d... pacospace \n", + "4 **Is your feature request related to a problem... chauhankaranraj \n", + "\n", + " created_at closed_by closed_at \\\n", + "0 1644527768 None None \n", + "1 1641590227 andraNew 1642091274 \n", + "2 1639764581 oindrillac 1640024593 \n", + "3 1639086094 MichaelClifford 1639189607 \n", + "4 1639077221 None None \n", + "\n", + " labels \\\n", + "0 {'enhancement': {'color': 'a2eeef', 'labeled_a... \n", + "1 {'bug': {'color': 'd73a4a', 'labeled_at': 1641... \n", + "2 {} \n", + "3 {} \n", + "4 {'enhancement': {'color': 'a2eeef', 'labeled_a... \n", + "\n", + " interactions id \n", + "0 {'pacospace': 8} 128 \n", + "1 {'andraNew': 123, 'erikerlandson': 90, 'chauha... 127 \n", + "2 {} 125 \n", + "3 {'chauhankaranraj': 71, 'pacospace': 39} 122 \n", + "4 {'pacospace': 19, 'chauhankaranraj': 40} 121 " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "os_climate_issues.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "6002facc-f4b5-4d63-87c0-b43268e2a069", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodysizecreated_bycreated_atclosed_atclosed_bymerged_atmerged_bycommits_numberchanged_files_numberinteractionsreviewslabelscommitschanged_filesfirst_review_atfirst_approve_atid
0Add manifests for GPU image buildSigned-off-by: Francesco Murdaca <fmurdaca@red...XLpacospace1644855027NoneNoneNoneNone19{'pacospace': 22}{'881638114': {'author': 'erikerlandson', 'wor...[][d2af49daf938560856f315e573cd9e54e92aa570][manifests/.sops.yaml, manifests/README.md, ma...16448637651644863765129
1Updated documentationcloses #125 \\r\\ncloses #110 \\r\\n\\r\\nJupyterBoo...Moindrillac16397772001640024594oindrillac1640024593oindrillac15{'oindrillac': 13, 'chauhankaranraj': 18}{'835457435': {'author': 'aakankshaduggal', 'w...[][523e26606333956764986a296149ca56edf56b40][README.md, _config.yml, _toc.yml, notebooks/d...16397787431639793939126
2Update READMEThis PR \\r\\n- updates the README to mention th...XSchauhankaranraj16395327081639591055MichaelClifford1639591055MichaelClifford11{'MichaelClifford': 1}{}[][ad9668f096e1e5ebc5b123d1c6df4ea5ed98af5a][notebooks/demo2/README.md]NoneNone124
3Use specific versions instead of latest for im...Closes #122Schauhankaranraj16390947501639189607MichaelClifford1639189607MichaelClifford13{'MichaelClifford': 1}{'828089083': {'author': 'oindrillac', 'words_...[][c0666de738d99cf9a40e2867fc8f4e51a305d086][Dockerfile, notebooks/demo2/inference.pipelin...16390948971639094897123
4Finalize Demo 2 readmeThis PR adds Superset dashboard link to the Re...XSShreyanand16389826451639079020MichaelClifford1639079020MichaelClifford11{'MichaelClifford': 1}{'827649205': {'author': 'chauhankaranraj', 'w...[][ce265997ec1e5bf368d804f571e660edb261a77a][notebooks/demo2/README.md]16390728731639072873119
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 Add manifests for GPU image build \n", + "1 Updated documentation \n", + "2 Update README \n", + "3 Use specific versions instead of latest for im... \n", + "4 Finalize Demo 2 readme \n", + "\n", + " body size created_by \\\n", + "0 Signed-off-by: Francesco Murdaca \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodycreated_bycreated_atclosed_byclosed_atlabelsinteractionsid
0[Metric] - Create a visualization DashboardSubissue for #35 \\r\\n\\r\\n- [ ] Get started wit...aakankshaduggal1645050878NoneNone{}{}45
1Operate First Data Science Community Meetup #7## Please provide the following info about you...aakankshaduggal1644528835NoneNone{}{}42
2update calendar inviteNoneMichaelClifford1644445287MichaelClifford1644454274{}{}41
3reach out to external speakersNoneMichaelClifford1644445029NoneNone{}{}40
4[Metric] Collect engagement metrics on tweets ...We want to view metrics such as Likes/Retweets...oindrillac1644371111NoneNone{}{}38
\n", + "" + ], + "text/plain": [ + " title \\\n", + "0 [Metric] - Create a visualization Dashboard \n", + "1 Operate First Data Science Community Meetup #7 \n", + "2 update calendar invite \n", + "3 reach out to external speakers \n", + "4 [Metric] Collect engagement metrics on tweets ... \n", + "\n", + " body created_by \\\n", + "0 Subissue for #35 \\r\\n\\r\\n- [ ] Get started wit... aakankshaduggal \n", + "1 ## Please provide the following info about you... aakankshaduggal \n", + "2 None MichaelClifford \n", + "3 None MichaelClifford \n", + "4 We want to view metrics such as Likes/Retweets... oindrillac \n", + "\n", + " created_at closed_by closed_at labels interactions id \n", + "0 1645050878 None None {} {} 45 \n", + "1 1644528835 None None {} {} 42 \n", + "2 1644445287 MichaelClifford 1644454274 {} {} 41 \n", + "3 1644445029 None None {} {} 40 \n", + "4 1644371111 None None {} {} 38 " + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "opf_ds_community_issues.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "02c6f510-c6c0-4861-8626-6ac62c93c7ae", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodysizecreated_bycreated_atclosed_atclosed_bymerged_atmerged_bycommits_numberchanged_files_numberinteractionsreviewslabelscommitschanged_filesfirst_review_atfirst_approve_atid
0Add actionable items to the issue_templateResolve #29Maakankshaduggal16449778871645053971sesheta1645053971sesheta12{'MichaelClifford': 62, 'aakankshaduggal': 68,...{'883681332': {'author': 'oindrillac', 'words_...[size/M, approved][f85849656ec1b8dba052514b97675d9e366eb926][.github/ISSUE_TEMPLATE/event_template.md, .gi...1644979349164498000444
1Update Agenda for meetup 6NoneSaakankshaduggal16445362031644538630sesheta1644538630sesheta11{'MichaelClifford': 13, 'sesheta': 65}{'879321299': {'author': 'suppathak', 'words_c...[size/S, approved, lgtm][e166675a1c01c9072f1aaf01d08069e2f05ab019][docs/content.md]1644538067None43
2Add the privacy policy for the Opf DS Communit...This PR resolves #28Maakankshaduggal1644439870NoneNoneNoneNone11{'sesheta': 73, 'aakankshaduggal': 75, 'eriker...{'877832604': {'author': 'suppathak', 'words_c...[size/M, lgtm][b6b707fa49d80d99bad8823083eabab424f6962d][docs/privacy-policy.md]1644446751None39
3Added a notebook for exploring data obfuscatio...In this notebook, we explored an obfuscation t...XXLsuppathak16443701231645053734sesheta1645053733sesheta11{'review-notebook-app[bot]': 29, 'MichaelCliff...{'877691435': {'author': 'oindrillac', 'words_...[approved, size/XXL][4fac57b106ef08df2dd73ea1e875887f7da4ef6e][notebooks/data_obfuscation.ipynb]1644440520None33
4Add sample attendees dataThis PR adds a sample data for #27XLaakankshaduggal16440044811644346518sesheta1644346518sesheta12{'MichaelClifford': 25, 'aakankshaduggal': 87,...{'873193483': {'author': 'oindrillac', 'words_...[approved, size/XL][92202e4bd6330edc99659b3794011f555c168735][data/raw/sample_data.csv, notebooks/create_da...1644004656164400465632
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 Add actionable items to the issue_template \n", + "1 Update Agenda for meetup 6 \n", + "2 Add the privacy policy for the Opf DS Communit... \n", + "3 Added a notebook for exploring data obfuscatio... \n", + "4 Add sample attendees data \n", + "\n", + " body size created_by \\\n", + "0 Resolve #29 M aakankshaduggal \n", + "1 None S aakankshaduggal \n", + "2 This PR resolves #28 M aakankshaduggal \n", + "3 In this notebook, we explored an obfuscation t... XXL suppathak \n", + "4 This PR adds a sample data for #27 XL aakankshaduggal \n", + "\n", + " created_at closed_at closed_by merged_at merged_by commits_number \\\n", + "0 1644977887 1645053971 sesheta 1645053971 sesheta 1 \n", + "1 1644536203 1644538630 sesheta 1644538630 sesheta 1 \n", + "2 1644439870 None None None None 1 \n", + "3 1644370123 1645053734 sesheta 1645053733 sesheta 1 \n", + "4 1644004481 1644346518 sesheta 1644346518 sesheta 1 \n", + "\n", + " changed_files_number interactions \\\n", + "0 2 {'MichaelClifford': 62, 'aakankshaduggal': 68,... \n", + "1 1 {'MichaelClifford': 13, 'sesheta': 65} \n", + "2 1 {'sesheta': 73, 'aakankshaduggal': 75, 'eriker... \n", + "3 1 {'review-notebook-app[bot]': 29, 'MichaelCliff... \n", + "4 2 {'MichaelClifford': 25, 'aakankshaduggal': 87,... \n", + "\n", + " reviews \\\n", + "0 {'883681332': {'author': 'oindrillac', 'words_... \n", + "1 {'879321299': {'author': 'suppathak', 'words_c... \n", + "2 {'877832604': {'author': 'suppathak', 'words_c... \n", + "3 {'877691435': {'author': 'oindrillac', 'words_... \n", + "4 {'873193483': {'author': 'oindrillac', 'words_... \n", + "\n", + " labels commits \\\n", + "0 [size/M, approved] [f85849656ec1b8dba052514b97675d9e366eb926] \n", + "1 [size/S, approved, lgtm] [e166675a1c01c9072f1aaf01d08069e2f05ab019] \n", + "2 [size/M, lgtm] [b6b707fa49d80d99bad8823083eabab424f6962d] \n", + "3 [approved, size/XXL] [4fac57b106ef08df2dd73ea1e875887f7da4ef6e] \n", + "4 [approved, size/XL] [92202e4bd6330edc99659b3794011f555c168735] \n", + "\n", + " changed_files first_review_at \\\n", + "0 [.github/ISSUE_TEMPLATE/event_template.md, .gi... 1644979349 \n", + "1 [docs/content.md] 1644538067 \n", + "2 [docs/privacy-policy.md] 1644446751 \n", + "3 [notebooks/data_obfuscation.ipynb] 1644440520 \n", + "4 [data/raw/sample_data.csv, notebooks/create_da... 1644004656 \n", + "\n", + " first_approve_at id \n", + "0 1644980004 44 \n", + "1 None 43 \n", + "2 None 39 \n", + "3 None 33 \n", + "4 1644004656 32 " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "opf_ds_community_prs.head()" + ] + }, + { + "cell_type": "markdown", + "id": "bf755f63-9e62-46e0-bdf0-10aff6e43dbe", + "metadata": {}, + "source": [ + "Lets look at the sub-project `Metrics` and fetch all its relevant Issue/PR data" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "d41a2b1f-f363-49cf-b5b6-f3ee5715e774", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Getting dataset from Ceph\n", + "Getting dataset from Ceph\n" + ] + } + ], + "source": [ + "metric_issues = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/open-services-group/metrics/Issue.json\"\n", + ")\n", + "metric_prs = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/open-services-group/metrics/PullRequest.json\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "62584d03-7a27-454b-8041-6470448648a0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodycreated_bycreated_atclosed_byclosed_atlabelsinteractionsid
0Collect metrics for all sub-projects in the OS...Collect GitHub data using MI scheduler i.e iss...hemajv1644955949NoneNone{}{'oindrillac': 78, 'hemajv': 102}13
1Spike: Define OKR completionThis issue is created to discuss different app...Shreyanand1644275165NoneNone{}{'MichaelClifford': 33, 'Shreyanand': 24, 'hem...10
2Project workflow diagramCreate an architecture diagram describing the ...hemajv1644274319hemajv1644974040{}{'oindrillac': 30, 'hemajv': 39, 'MichaelCliff...9
3Update ReadmeUpdate the Readme to reflect project goals, re...Shreyanand1644272140sesheta1644973068{}{}8
4[EPIC] VisualizationCreate dashboards/reports to visualize metrics...hemajv1643934285NoneNone{}{}7
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 Collect metrics for all sub-projects in the OS... \n", + "1 Spike: Define OKR completion \n", + "2 Project workflow diagram \n", + "3 Update Readme \n", + "4 [EPIC] Visualization \n", + "\n", + " body created_by created_at \\\n", + "0 Collect GitHub data using MI scheduler i.e iss... hemajv 1644955949 \n", + "1 This issue is created to discuss different app... Shreyanand 1644275165 \n", + "2 Create an architecture diagram describing the ... hemajv 1644274319 \n", + "3 Update the Readme to reflect project goals, re... Shreyanand 1644272140 \n", + "4 Create dashboards/reports to visualize metrics... hemajv 1643934285 \n", + "\n", + " closed_by closed_at labels \\\n", + "0 None None {} \n", + "1 None None {} \n", + "2 hemajv 1644974040 {} \n", + "3 sesheta 1644973068 {} \n", + "4 None None {} \n", + "\n", + " interactions id \n", + "0 {'oindrillac': 78, 'hemajv': 102} 13 \n", + "1 {'MichaelClifford': 33, 'Shreyanand': 24, 'hem... 10 \n", + "2 {'oindrillac': 30, 'hemajv': 39, 'MichaelCliff... 9 \n", + "3 {} 8 \n", + "4 {} 7 " + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "metric_issues.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "c6051f6f-c541-4516-b0ad-98be2a25bb6d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodysizecreated_bycreated_atclosed_atclosed_bymerged_atmerged_bycommits_numberchanged_files_numberinteractionsreviewslabelscommitschanged_filesfirst_review_atfirst_approve_atid
0Automatic update of dependencies by Kebechet f...Kebechet has updated the dependencies to the l...Skhebhut[bot]1644974885NoneNoneNoneNone11{'sesheta': 202}{}[size/S, needs-ok-to-test, bot][5848f25cc267af83c7ac8267b738f3884f4c5745][Pipfile.lock]NoneNone15
1Update READMEResolves #8Mhemajv16449624531644973068sesheta1644973068sesheta12{'sesheta': 65}{'883344363': {'author': 'oindrillac', 'words_...[lgtm, size/M, approved][09a63cf6c1b8d058d14c3ca831be672232c4b91e][README.md, docs/imgs/project_architecture.jpeg]1644962849164497300214
2Update OWNERScc @ShreyanandShemajv16444480661644872377sesheta1644872377sesheta11{'MichaelClifford': 11, 'sesheta': 65, 'harsha...{}[size/S, approved][6dff26159faa30e67808db422db9131fb67888e6][OWNERS]NoneNone12
3Automatic update of dependencies by Kebechet f...Kebechet has updated the dependencies to the l...Lkhebhut[bot]16444336461644974742sesheta1644974742sesheta11{'sesheta': 182, 'goern': 1, 'khebhut[bot]': 1...{}[size/L, approved, bot, ok-to-test][6de8ba9b62f3414c02442605a5445a6401bf5e1b][Pipfile.lock]NoneNone11
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 Automatic update of dependencies by Kebechet f... \n", + "1 Update README \n", + "2 Update OWNERS \n", + "3 Automatic update of dependencies by Kebechet f... \n", + "\n", + " body size created_by \\\n", + "0 Kebechet has updated the dependencies to the l... S khebhut[bot] \n", + "1 Resolves #8 M hemajv \n", + "2 cc @Shreyanand S hemajv \n", + "3 Kebechet has updated the dependencies to the l... L khebhut[bot] \n", + "\n", + " created_at closed_at closed_by merged_at merged_by commits_number \\\n", + "0 1644974885 None None None None 1 \n", + "1 1644962453 1644973068 sesheta 1644973068 sesheta 1 \n", + "2 1644448066 1644872377 sesheta 1644872377 sesheta 1 \n", + "3 1644433646 1644974742 sesheta 1644974742 sesheta 1 \n", + "\n", + " changed_files_number interactions \\\n", + "0 1 {'sesheta': 202} \n", + "1 2 {'sesheta': 65} \n", + "2 1 {'MichaelClifford': 11, 'sesheta': 65, 'harsha... \n", + "3 1 {'sesheta': 182, 'goern': 1, 'khebhut[bot]': 1... \n", + "\n", + " reviews \\\n", + "0 {} \n", + "1 {'883344363': {'author': 'oindrillac', 'words_... \n", + "2 {} \n", + "3 {} \n", + "\n", + " labels \\\n", + "0 [size/S, needs-ok-to-test, bot] \n", + "1 [lgtm, size/M, approved] \n", + "2 [size/S, approved] \n", + "3 [size/L, approved, bot, ok-to-test] \n", + "\n", + " commits \\\n", + "0 [5848f25cc267af83c7ac8267b738f3884f4c5745] \n", + "1 [09a63cf6c1b8d058d14c3ca831be672232c4b91e] \n", + "2 [6dff26159faa30e67808db422db9131fb67888e6] \n", + "3 [6de8ba9b62f3414c02442605a5445a6401bf5e1b] \n", + "\n", + " changed_files first_review_at \\\n", + "0 [Pipfile.lock] None \n", + "1 [README.md, docs/imgs/project_architecture.jpeg] 1644962849 \n", + "2 [OWNERS] None \n", + "3 [Pipfile.lock] None \n", + "\n", + " first_approve_at id \n", + "0 None 15 \n", + "1 1644973002 14 \n", + "2 None 12 \n", + "3 None 11 " + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "metric_prs.head()" + ] + }, + { + "cell_type": "markdown", + "id": "328c02fa-1f43-47e9-b8ed-b9d498d8a441", + "metadata": {}, + "source": [ + "## SIG Community Experience\n", + "\n", + "This SIG comprises of 3 sub-projects ComCom, GovOrg and Metrics Strategic that are all residing in a single repository i.e `open-services-group/community`. Let's fetch all the Issue/PRs for this repo." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "1ed96d61-e8a0-4ccc-9aaf-b897331dd3ec", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Getting dataset from Ceph\n", + "Getting dataset from Ceph\n" + ] + } + ], + "source": [ + "sig_community_issues = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/open-services-group/community/Issue.json\"\n", + ")\n", + "sig_community_prs = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/open-services-group/community/PullRequest.json\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "2943fdfa-2a7d-4e67-b149-4db81d08fb33", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodycreated_bycreated_atclosed_byclosed_atlabelsinteractionsid
0[SPGovOrg] ADR TopicsCollecting and sorting ADR Topicsschwesig1644962887NoneNone{}{'schwesig': 234}69
1charter.md Clarify the relationship with the M...Metrics Strategic vs Metrics\\n[Metrics](https:...schwesig1644601990NoneNone{}{}66
2Define 5+ core KPIsNoneschwesig1644599725NoneNone{'priority/critical-urgent': {'color': 'e11d21...{'schwesig': 3, 'sesheta': 47}65
3Setup Regular Meeting SP GovOrg- [ ] finding a time slot\\n- [ ] add to google...schwesig1644599149NoneNone{'priority/critical-urgent': {'color': 'e11d21...{'schwesig': 4}64
4Setup Regular Meeting SP ComCom- [ ] finding a time slot\\n- [ ] add to goog...schwesig1644599139NoneNone{'priority/critical-urgent': {'color': 'e11d21...{'schwesig': 5}63
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 [SPGovOrg] ADR Topics \n", + "1 charter.md Clarify the relationship with the M... \n", + "2 Define 5+ core KPIs \n", + "3 Setup Regular Meeting SP GovOrg \n", + "4 Setup Regular Meeting SP ComCom \n", + "\n", + " body created_by created_at \\\n", + "0 Collecting and sorting ADR Topics schwesig 1644962887 \n", + "1 Metrics Strategic vs Metrics\\n[Metrics](https:... schwesig 1644601990 \n", + "2 None schwesig 1644599725 \n", + "3 - [ ] finding a time slot\\n- [ ] add to google... schwesig 1644599149 \n", + "4 - [ ] finding a time slot\\n- [ ] add to goog... schwesig 1644599139 \n", + "\n", + " closed_by closed_at labels \\\n", + "0 None None {} \n", + "1 None None {} \n", + "2 None None {'priority/critical-urgent': {'color': 'e11d21... \n", + "3 None None {'priority/critical-urgent': {'color': 'e11d21... \n", + "4 None None {'priority/critical-urgent': {'color': 'e11d21... \n", + "\n", + " interactions id \n", + "0 {'schwesig': 234} 69 \n", + "1 {} 66 \n", + "2 {'schwesig': 3, 'sesheta': 47} 65 \n", + "3 {'schwesig': 4} 64 \n", + "4 {'schwesig': 5} 63 " + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sig_community_issues.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "5cce0963-b784-4cd0-9a0f-08de326a7df4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodysizecreated_bycreated_atclosed_atclosed_bymerged_atmerged_bycommits_numberchanged_files_numberinteractionsreviewslabelscommitschanged_filesfirst_review_atfirst_approve_atid
0Added details to WG BYON ReadmeAdded some additional details to the BYON WG R...XSoindrillac16448821061645044002sesheta1645044002sesheta12{'sesheta': 65}{'882603479': {'author': 'pacospace', 'words_c...[lgtm, approved, size/XS][4ced068b7d3d598f2625a0fa9365f7132eff72f6][sigs.yaml, wg-byon-build-pipelines/README.md]1644930772164504361568
1Change ds-sig meeting time from 10 to 11SSIA :)XSMichaelClifford16448737101644947372sesheta1644947372sesheta13{'MichaelClifford': 4, 'sesheta': 74}{'881889567': {'author': 'pacospace', 'words_c...[lgtm, approved, size/XS][a7269770e909b22a77a195deace410a183566dcd][sig-data-science/README.md, sig-list.md, sigs...1644874267164487426767
2Fix a couple of recent changesThe update to `sig-list.md` from [#52](https:/...XScodificat16445973211644603432sesheta1644603432sesheta22{'sesheta': 65}{'880160348': {'author': 'schwesig', 'words_co...[lgtm, approved, size/XS][12512a57075369b8151cae730e9daa7cfadbf62b, c50...[sig-list.md, sigs.yaml]1644603267164460326757
3Small fix to readmesmall fix needed which was missed in #51 \\r\\n\\...XShemajv16445329131644537555sesheta1644537555sesheta11{'hemajv': 17, 'oindrillac': 3, 'schwesig': 1,...{'879240679': {'author': 'oindrillac', 'words_...[lgtm, approved, size/XS][3cf0ede6e9e7ad6a7d56447b8a14c59a9834a9a4][sig-data-science/README.md]1644534508None55
4Add Samuel to OSG community@tumidoXSSamoKopecky16445042641644509713sesheta1644509713sesheta11{'sesheta': 182}{'878683172': {'author': 'tumido', 'words_coun...[lgtm, approved, size/XS, ok-to-test][f948fec4f5fa97dfc1be0184ebef70627241bf33][github-config.yaml]1644509507164450950754
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 Added details to WG BYON Readme \n", + "1 Change ds-sig meeting time from 10 to 11 \n", + "2 Fix a couple of recent changes \n", + "3 Small fix to readme \n", + "4 Add Samuel to OSG community \n", + "\n", + " body size created_by \\\n", + "0 Added some additional details to the BYON WG R... XS oindrillac \n", + "1 SSIA :) XS MichaelClifford \n", + "2 The update to `sig-list.md` from [#52](https:/... XS codificat \n", + "3 small fix needed which was missed in #51 \\r\\n\\... XS hemajv \n", + "4 @tumido XS SamoKopecky \n", + "\n", + " created_at closed_at closed_by merged_at merged_by commits_number \\\n", + "0 1644882106 1645044002 sesheta 1645044002 sesheta 1 \n", + "1 1644873710 1644947372 sesheta 1644947372 sesheta 1 \n", + "2 1644597321 1644603432 sesheta 1644603432 sesheta 2 \n", + "3 1644532913 1644537555 sesheta 1644537555 sesheta 1 \n", + "4 1644504264 1644509713 sesheta 1644509713 sesheta 1 \n", + "\n", + " changed_files_number interactions \\\n", + "0 2 {'sesheta': 65} \n", + "1 3 {'MichaelClifford': 4, 'sesheta': 74} \n", + "2 2 {'sesheta': 65} \n", + "3 1 {'hemajv': 17, 'oindrillac': 3, 'schwesig': 1,... \n", + "4 1 {'sesheta': 182} \n", + "\n", + " reviews \\\n", + "0 {'882603479': {'author': 'pacospace', 'words_c... \n", + "1 {'881889567': {'author': 'pacospace', 'words_c... \n", + "2 {'880160348': {'author': 'schwesig', 'words_co... \n", + "3 {'879240679': {'author': 'oindrillac', 'words_... \n", + "4 {'878683172': {'author': 'tumido', 'words_coun... \n", + "\n", + " labels \\\n", + "0 [lgtm, approved, size/XS] \n", + "1 [lgtm, approved, size/XS] \n", + "2 [lgtm, approved, size/XS] \n", + "3 [lgtm, approved, size/XS] \n", + "4 [lgtm, approved, size/XS, ok-to-test] \n", + "\n", + " commits \\\n", + "0 [4ced068b7d3d598f2625a0fa9365f7132eff72f6] \n", + "1 [a7269770e909b22a77a195deace410a183566dcd] \n", + "2 [12512a57075369b8151cae730e9daa7cfadbf62b, c50... \n", + "3 [3cf0ede6e9e7ad6a7d56447b8a14c59a9834a9a4] \n", + "4 [f948fec4f5fa97dfc1be0184ebef70627241bf33] \n", + "\n", + " changed_files first_review_at \\\n", + "0 [sigs.yaml, wg-byon-build-pipelines/README.md] 1644930772 \n", + "1 [sig-data-science/README.md, sig-list.md, sigs... 1644874267 \n", + "2 [sig-list.md, sigs.yaml] 1644603267 \n", + "3 [sig-data-science/README.md] 1644534508 \n", + "4 [github-config.yaml] 1644509507 \n", + "\n", + " first_approve_at id \n", + "0 1645043615 68 \n", + "1 1644874267 67 \n", + "2 1644603267 57 \n", + "3 None 55 \n", + "4 1644509507 54 " + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sig_community_prs.head()" + ] + }, + { + "cell_type": "markdown", + "id": "ccf3e98c-1b83-4d24-9a1e-e56b1c481e47", + "metadata": {}, + "source": [ + "## SIG Services\n", + "The SIG Services comprises of 5 sub-projects. Let's look at the `AICoE CD` project repo and fetch its relevant issue/PR data." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "877b966c-1d92-46fd-9782-157afe2ca26f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Getting dataset from Ceph\n", + "Getting dataset from Ceph\n" + ] + } + ], + "source": [ + "aicoe_cd_issues = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/AICoE/aicoe-cd/Issue.json\"\n", + ")\n", + "aicoe_cd_prs = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/AICoE/aicoe-cd/PullRequest.json\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "ce7fbb4b-6752-4f11-88a8-c619f34ed471", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodycreated_bycreated_atclosed_byclosed_atlabelsinteractionsid
0stage-thoth-prescriptions-refresh-job app is n...**Describe the bug**\\r\\nstage-thoth-prescripti...pacospace1642447357NoneNone{}{}746
1No requirements file found for runtime environ...Please create requirements file for environmen...khebhut[bot]1634064023harshad161634066165{'bot': {'color': '698b69', 'labeled_at': 1634...{}708
2No requirements file found for runtime environ...Please create requirements file for environmen...khebhut[bot]1634063990harshad161634066165{'bot': {'color': '698b69', 'labeled_at': 1634...{}707
3No requirements file found for runtime environ...Please create requirements file for environmen...khebhut[bot]1634062726harshad161634066166{'bot': {'color': '698b69', 'labeled_at': 1634...{}706
4No requirements file found for runtime environ...Please create requirements file for environmen...khebhut[bot]1634062695harshad161634066166{'bot': {'color': '698b69', 'labeled_at': 1634...{}705
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 stage-thoth-prescriptions-refresh-job app is n... \n", + "1 No requirements file found for runtime environ... \n", + "2 No requirements file found for runtime environ... \n", + "3 No requirements file found for runtime environ... \n", + "4 No requirements file found for runtime environ... \n", + "\n", + " body created_by \\\n", + "0 **Describe the bug**\\r\\nstage-thoth-prescripti... pacospace \n", + "1 Please create requirements file for environmen... khebhut[bot] \n", + "2 Please create requirements file for environmen... khebhut[bot] \n", + "3 Please create requirements file for environmen... khebhut[bot] \n", + "4 Please create requirements file for environmen... khebhut[bot] \n", + "\n", + " created_at closed_by closed_at \\\n", + "0 1642447357 None None \n", + "1 1634064023 harshad16 1634066165 \n", + "2 1634063990 harshad16 1634066165 \n", + "3 1634062726 harshad16 1634066166 \n", + "4 1634062695 harshad16 1634066166 \n", + "\n", + " labels interactions id \n", + "0 {} {} 746 \n", + "1 {'bot': {'color': '698b69', 'labeled_at': 1634... {} 708 \n", + "2 {'bot': {'color': '698b69', 'labeled_at': 1634... {} 707 \n", + "3 {'bot': {'color': '698b69', 'labeled_at': 1634... {} 706 \n", + "4 {'bot': {'color': '698b69', 'labeled_at': 1634... {} 705 " + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "aicoe_cd_issues.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "1b9b2cac-7aae-4755-93d6-8fabf5752241", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodysizecreated_bycreated_atclosed_atclosed_bymerged_atmerged_bycommits_numberchanged_files_numberinteractionsreviewslabelscommitschanged_filesfirst_review_atfirst_approve_atid
0Remove application definition for dh-prod-rsyslog## This Pull Request implements\\r\\n\\r\\nExplain...Saccorvin16449508291644951115accorvin1644951115accorvin13{'sesheta': 73, 'rimolive': 1}{'883011542': {'author': 'anishasthana', 'word...[size/S, lgtm][8125f2d7569ce5fec7df21ae5e77cc4d524aeff7][manifests/overlays/prod/applications/data_hub...1644951037None763
1Add application definition for s3 webserver## This Pull Request implements\\r\\n\\r\\nExplain...Saccorvin16448620751644862302sesheta1644862302sesheta13{'rimolive': 1, 'sesheta': 65}{'881605021': {'author': 'lucferbux', 'words_c...[approved, size/S, lgtm][6f87bec013e91afde417139f978d3dd4b23f3006][manifests/overlays/prod/applications/data_hub...16448622061644862206762
2Add argo-workflows App for OCP4 cluster## This Pull Request implements\\r\\n\\r\\nExplain...Sgmfrasca16445446141644545000sesheta1644545000sesheta11{'rimolive': 1, 'sesheta': 74, 'accorvin': 1}{}[approved, size/S][70c32ee30528e9f7f79cbfb51815ab144e4d9735][manifests/overlays/prod/applications/data_hub...NoneNone761
3Added workflow_dispatch to actions script## This Pull Request implements\\r\\n\\r\\nAdded w...XSlucferbux16443532401644353573lucferbux1644353573lucferbux11{'sesheta': 65}{'876250434': {'author': 'HumairAK', 'words_co...[size/XS, approved, lgtm][e4590eb7e2d6ed1cc72e0768492b365933d38371][.github/workflows/ci.yaml]16443534461644353446760
4Added github actions to automate pages deployment## This Pull Request implements\\r\\n\\r\\nAdded G...Slucferbux16443477231644348674sesheta1644348674sesheta11{'accorvin': 1, 'sesheta': 74}{'876094785': {'author': 'anishasthana', 'word...[approved, size/S][645ee47bea4847da55e2f8262f42f2164bb2dfc8][.github/workflows/ci.yaml]16443478331644348165759
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 Remove application definition for dh-prod-rsyslog \n", + "1 Add application definition for s3 webserver \n", + "2 Add argo-workflows App for OCP4 cluster \n", + "3 Added workflow_dispatch to actions script \n", + "4 Added github actions to automate pages deployment \n", + "\n", + " body size created_by \\\n", + "0 ## This Pull Request implements\\r\\n\\r\\nExplain... S accorvin \n", + "1 ## This Pull Request implements\\r\\n\\r\\nExplain... S accorvin \n", + "2 ## This Pull Request implements\\r\\n\\r\\nExplain... S gmfrasca \n", + "3 ## This Pull Request implements\\r\\n\\r\\nAdded w... XS lucferbux \n", + "4 ## This Pull Request implements\\r\\n\\r\\nAdded G... S lucferbux \n", + "\n", + " created_at closed_at closed_by merged_at merged_by commits_number \\\n", + "0 1644950829 1644951115 accorvin 1644951115 accorvin 1 \n", + "1 1644862075 1644862302 sesheta 1644862302 sesheta 1 \n", + "2 1644544614 1644545000 sesheta 1644545000 sesheta 1 \n", + "3 1644353240 1644353573 lucferbux 1644353573 lucferbux 1 \n", + "4 1644347723 1644348674 sesheta 1644348674 sesheta 1 \n", + "\n", + " changed_files_number interactions \\\n", + "0 3 {'sesheta': 73, 'rimolive': 1} \n", + "1 3 {'rimolive': 1, 'sesheta': 65} \n", + "2 1 {'rimolive': 1, 'sesheta': 74, 'accorvin': 1} \n", + "3 1 {'sesheta': 65} \n", + "4 1 {'accorvin': 1, 'sesheta': 74} \n", + "\n", + " reviews \\\n", + "0 {'883011542': {'author': 'anishasthana', 'word... \n", + "1 {'881605021': {'author': 'lucferbux', 'words_c... \n", + "2 {} \n", + "3 {'876250434': {'author': 'HumairAK', 'words_co... \n", + "4 {'876094785': {'author': 'anishasthana', 'word... \n", + "\n", + " labels commits \\\n", + "0 [size/S, lgtm] [8125f2d7569ce5fec7df21ae5e77cc4d524aeff7] \n", + "1 [approved, size/S, lgtm] [6f87bec013e91afde417139f978d3dd4b23f3006] \n", + "2 [approved, size/S] [70c32ee30528e9f7f79cbfb51815ab144e4d9735] \n", + "3 [size/XS, approved, lgtm] [e4590eb7e2d6ed1cc72e0768492b365933d38371] \n", + "4 [approved, size/S] [645ee47bea4847da55e2f8262f42f2164bb2dfc8] \n", + "\n", + " changed_files first_review_at \\\n", + "0 [manifests/overlays/prod/applications/data_hub... 1644951037 \n", + "1 [manifests/overlays/prod/applications/data_hub... 1644862206 \n", + "2 [manifests/overlays/prod/applications/data_hub... None \n", + "3 [.github/workflows/ci.yaml] 1644353446 \n", + "4 [.github/workflows/ci.yaml] 1644347833 \n", + "\n", + " first_approve_at id \n", + "0 None 763 \n", + "1 1644862206 762 \n", + "2 None 761 \n", + "3 1644353446 760 \n", + "4 1644348165 759 " + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "aicoe_cd_prs.head()" + ] + }, + { + "cell_type": "markdown", + "id": "ca3615b1-765c-490e-bf03-dbc4a0ad62dc", + "metadata": {}, + "source": [ + "Let's look at the `AICoE CI` project repo and fetch its relevant issue/PR data." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "5258d0f3-b241-49bb-a3b7-d8a7cb8ae667", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Getting dataset from Ceph\n", + "Getting dataset from Ceph\n" + ] + } + ], + "source": [ + "aicoe_ci_issues = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/AICoE/aicoe-ci/Issue.json\"\n", + ")\n", + "aicoe_ci_prs = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/AICoE/aicoe-ci/PullRequest.json\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "0e5b9a0a-25eb-480b-a3de-d10343fb4086", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodycreated_bycreated_atclosed_byclosed_atlabelsinteractionsid
0Help with Sesheta invite### GitHub Repo\\n\\nhttps://github.com/os-clima...negillett1644529527harshad161644871770{'bot': {'color': '698b69', 'labeled_at': 1644...{'goern': 14, 'negillett': 75, 'harshad16': 70}160
1Pull images from private registries**Is your feature request related to a problem...samuelvl1644009860NoneNone{'kind/feature': {'color': 'c7def8', 'labeled_...{'anishasthana': 3}159
2Help with Sesheta invite### GitHub Repo\\n\\nhttps://github.com/theckang...theckang1641974866harshad161642020740{'bot': {'color': '698b69', 'labeled_at': 1641...{'harshad16': 5}155
3Create a general documentation for Thoth CI/CD...**Is your feature request related to a problem...mayaCostantini1637857637NoneNone{'documentation': {'color': '0075ca', 'labeled...{'codificat': 15, 'sesheta': 59, 'mayaCostanti...153
4Add Tekton Chains to AICoE-CI deployment on op1stchains is pretty easy to add:\\r\\n\\r\\n`kubectl ...goern1635173641NoneNone{'kind/feature': {'color': 'c7def8', 'labeled_...{'harshad16': 105, 'sesheta': 38, 'codificat':...150
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 Help with Sesheta invite \n", + "1 Pull images from private registries \n", + "2 Help with Sesheta invite \n", + "3 Create a general documentation for Thoth CI/CD... \n", + "4 Add Tekton Chains to AICoE-CI deployment on op1st \n", + "\n", + " body created_by \\\n", + "0 ### GitHub Repo\\n\\nhttps://github.com/os-clima... negillett \n", + "1 **Is your feature request related to a problem... samuelvl \n", + "2 ### GitHub Repo\\n\\nhttps://github.com/theckang... theckang \n", + "3 **Is your feature request related to a problem... mayaCostantini \n", + "4 chains is pretty easy to add:\\r\\n\\r\\n`kubectl ... goern \n", + "\n", + " created_at closed_by closed_at \\\n", + "0 1644529527 harshad16 1644871770 \n", + "1 1644009860 None None \n", + "2 1641974866 harshad16 1642020740 \n", + "3 1637857637 None None \n", + "4 1635173641 None None \n", + "\n", + " labels \\\n", + "0 {'bot': {'color': '698b69', 'labeled_at': 1644... \n", + "1 {'kind/feature': {'color': 'c7def8', 'labeled_... \n", + "2 {'bot': {'color': '698b69', 'labeled_at': 1641... \n", + "3 {'documentation': {'color': '0075ca', 'labeled... \n", + "4 {'kind/feature': {'color': 'c7def8', 'labeled_... \n", + "\n", + " interactions id \n", + "0 {'goern': 14, 'negillett': 75, 'harshad16': 70} 160 \n", + "1 {'anishasthana': 3} 159 \n", + "2 {'harshad16': 5} 155 \n", + "3 {'codificat': 15, 'sesheta': 59, 'mayaCostanti... 153 \n", + "4 {'harshad16': 105, 'sesheta': 38, 'codificat':... 150 " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "aicoe_ci_issues.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "06fb3f0c-b971-46a1-bb92-695e3f17358b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodysizecreated_bycreated_atclosed_atclosed_bymerged_atmerged_bycommits_numberchanged_files_numberinteractionsreviewslabelscommitschanged_filesfirst_review_atfirst_approve_atid
0:city_sunrise: Allow arch build with overlays ...Allow arch build with overlays feature\\r\\nSign...Lharshad1616448974911644897704sesheta1644897704sesheta14{'harshad16': 5, 'sesheta': 65}{}[approved, size/L][1a503b352dd5a23b7bd24457b6f568c7f47da29f][pipeline/overlays-release-pipeline.yaml, task...NoneNone161
1Clean up unused Tasks## This introduces a breaking change\\r\\n\\r\\nHo...XLcodificat1643169805NoneNoneNoneNone111{'sesheta': 73}{}[size/XL][0341f01b10276a2628a93654f41ece5bccdb78cd][kustomization.yaml, setup-instance/kustomizat...NoneNone158
2Using the python -m build for generating packa...Using the python -m build for generating packa...Sharshad1616425630821642563182harshad161642563182harshad1613{'sesheta': 73}{}[size/S][0dcf2a83ab5bb9db8a106801d19c7581a2546bad][.prow.yaml, tasks/issue-pypi-release-task.yam...NoneNone157
3Add resources for container build steps## Related Issues and Dependencies\\r\\n\\r\\nFixe...Scodificat16422002051642200806harshad161642200806harshad1612{'sesheta': 65}{'853201587': {'author': 'harshad16', 'words_c...[size/S, approved][4624e4e8eb675908e1fb64605ea11a1c5b000f82][tasks/issue-release-task.yaml, tasks/tag-buil...16422007921642200792156
4Propogate requirements info to a specific dirPropogate requirements info to a specific dir\\...Mharshad1616395081881639573215harshad161639573215harshad1615{'sesheta': 79}{'831991575': {'author': 'fridex', 'words_coun...[size/M][84f265a166c0fdb87d8b3171f1735b00445e94b7][docs/gather-metrics-deployments-pipeline.md, ...16395309191639530919154
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 :city_sunrise: Allow arch build with overlays ... \n", + "1 Clean up unused Tasks \n", + "2 Using the python -m build for generating packa... \n", + "3 Add resources for container build steps \n", + "4 Propogate requirements info to a specific dir \n", + "\n", + " body size created_by \\\n", + "0 Allow arch build with overlays feature\\r\\nSign... L harshad16 \n", + "1 ## This introduces a breaking change\\r\\n\\r\\nHo... XL codificat \n", + "2 Using the python -m build for generating packa... S harshad16 \n", + "3 ## Related Issues and Dependencies\\r\\n\\r\\nFixe... S codificat \n", + "4 Propogate requirements info to a specific dir\\... M harshad16 \n", + "\n", + " created_at closed_at closed_by merged_at merged_by commits_number \\\n", + "0 1644897491 1644897704 sesheta 1644897704 sesheta 1 \n", + "1 1643169805 None None None None 1 \n", + "2 1642563082 1642563182 harshad16 1642563182 harshad16 1 \n", + "3 1642200205 1642200806 harshad16 1642200806 harshad16 1 \n", + "4 1639508188 1639573215 harshad16 1639573215 harshad16 1 \n", + "\n", + " changed_files_number interactions \\\n", + "0 4 {'harshad16': 5, 'sesheta': 65} \n", + "1 11 {'sesheta': 73} \n", + "2 3 {'sesheta': 73} \n", + "3 2 {'sesheta': 65} \n", + "4 5 {'sesheta': 79} \n", + "\n", + " reviews labels \\\n", + "0 {} [approved, size/L] \n", + "1 {} [size/XL] \n", + "2 {} [size/S] \n", + "3 {'853201587': {'author': 'harshad16', 'words_c... [size/S, approved] \n", + "4 {'831991575': {'author': 'fridex', 'words_coun... [size/M] \n", + "\n", + " commits \\\n", + "0 [1a503b352dd5a23b7bd24457b6f568c7f47da29f] \n", + "1 [0341f01b10276a2628a93654f41ece5bccdb78cd] \n", + "2 [0dcf2a83ab5bb9db8a106801d19c7581a2546bad] \n", + "3 [4624e4e8eb675908e1fb64605ea11a1c5b000f82] \n", + "4 [84f265a166c0fdb87d8b3171f1735b00445e94b7] \n", + "\n", + " changed_files first_review_at \\\n", + "0 [pipeline/overlays-release-pipeline.yaml, task... None \n", + "1 [kustomization.yaml, setup-instance/kustomizat... None \n", + "2 [.prow.yaml, tasks/issue-pypi-release-task.yam... None \n", + "3 [tasks/issue-release-task.yaml, tasks/tag-buil... 1642200792 \n", + "4 [docs/gather-metrics-deployments-pipeline.md, ... 1639530919 \n", + "\n", + " first_approve_at id \n", + "0 None 161 \n", + "1 None 158 \n", + "2 None 157 \n", + "3 1642200792 156 \n", + "4 1639530919 154 " + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "aicoe_ci_prs.head()" + ] + }, + { + "cell_type": "markdown", + "id": "7c448aa7-d14f-41fa-8148-08f25afda289", + "metadata": {}, + "source": [ + "Let's look at the `Meteor` project repos and fetch its relevant issue/PR data." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "79120fee-b645-4f75-927d-013a2ab67fb4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Getting dataset from Ceph\n", + "Getting dataset from Ceph\n", + "Getting dataset from Ceph\n", + "Getting dataset from Ceph\n" + ] + } + ], + "source": [ + "meteor_issues = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/AICoE/meteor/Issue.json\"\n", + ")\n", + "meteor_prs = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/AICoE/meteor/PullRequest.json\"\n", + ")\n", + "meteor_operator_issues = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/AICoE/meteor-operator/Issue.json\"\n", + ")\n", + "meteor_operator_prs = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/AICoE/meteor-operator/PullRequest.json\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "a8094ff9-7737-4078-8410-6d1514de42b7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodycreated_bycreated_atclosed_byclosed_atlabelsinteractionsid
0jupyterbook and jupyterhub pipelines build fails```\\r\\nSTEP-BUILD\\r\\n\\r\\n+ mkdir -p .tekton_me...pacospace1638293738tumido1638300197{'priority/critical-urgent': {'color': 'e11d21...{'tumido': 36}233
1when inserting URL to meteor shower and click ...**Describe the bug**\\r\\nwhen inserting URL to ...pacospace1638280403pacospace1642181665{'priority/critical-urgent': {'color': 'e11d21...{'tumido': 58, 'pacospace': 29}230
2Load the list of pipelines from `Shower` resou...Follow up to https://github.com/AICoE/meteor-o...tumido1638240205NoneNone{}{}228
3\"no space left on device\" error while building...While using https://shower.meteor.zone/ to bui...MichaelClifford1636157830tumido1638242749{'kind/bug': {'color': 'e11d21', 'labeled_at':...{'MichaelClifford': 4, 'tumido': 83, 'goern': 3}207
4meteor pipeline for JH image is not copying th...1. Go to https://shower.meteor.zone/\\r\\n2. Ins...pacospace1635944256NoneNone{'lifecycle/stale': {'color': '795548', 'label...{'tumido': 25, 'pacospace': 39, 'sesheta': 38}200
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 jupyterbook and jupyterhub pipelines build fails \n", + "1 when inserting URL to meteor shower and click ... \n", + "2 Load the list of pipelines from `Shower` resou... \n", + "3 \"no space left on device\" error while building... \n", + "4 meteor pipeline for JH image is not copying th... \n", + "\n", + " body created_by \\\n", + "0 ```\\r\\nSTEP-BUILD\\r\\n\\r\\n+ mkdir -p .tekton_me... pacospace \n", + "1 **Describe the bug**\\r\\nwhen inserting URL to ... pacospace \n", + "2 Follow up to https://github.com/AICoE/meteor-o... tumido \n", + "3 While using https://shower.meteor.zone/ to bui... MichaelClifford \n", + "4 1. Go to https://shower.meteor.zone/\\r\\n2. Ins... pacospace \n", + "\n", + " created_at closed_by closed_at \\\n", + "0 1638293738 tumido 1638300197 \n", + "1 1638280403 pacospace 1642181665 \n", + "2 1638240205 None None \n", + "3 1636157830 tumido 1638242749 \n", + "4 1635944256 None None \n", + "\n", + " labels \\\n", + "0 {'priority/critical-urgent': {'color': 'e11d21... \n", + "1 {'priority/critical-urgent': {'color': 'e11d21... \n", + "2 {} \n", + "3 {'kind/bug': {'color': 'e11d21', 'labeled_at':... \n", + "4 {'lifecycle/stale': {'color': '795548', 'label... \n", + "\n", + " interactions id \n", + "0 {'tumido': 36} 233 \n", + "1 {'tumido': 58, 'pacospace': 29} 230 \n", + "2 {} 228 \n", + "3 {'MichaelClifford': 4, 'tumido': 83, 'goern': 3} 207 \n", + "4 {'tumido': 25, 'pacospace': 39, 'sesheta': 38} 200 " + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meteor_issues.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "06dcd8e2-644d-42f9-ab43-4b704631e424", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodycreated_bycreated_atclosed_byclosed_atlabelsinteractionsid
0Add other useful fields. apiVersion, kind, uid?'https://github.com/AICoE/meteor-operator/blob/...todo[bot]1638280656tumido1638281102{'todo :spiral_notepad:': {'color': '00B0D8', ...{'tumido': 16}58
1Add other useful fields. apiVersion, kind, uid?'https://github.com/AICoE/meteor-operator/blob/...todo[bot]1638280653tumido1638281095{'todo :spiral_notepad:': {'color': '00B0D8', ...{'tumido': 16}57
2Configure button labels in the pipeline resour...Follow up after https://github.com/AICoE/meteo...tumido1638244936NoneNone{}{}56
3Reconcile Comas dynamicallyCurrently a list of namespaces is hardcoded to...tumido1638244018sesheta1639686267{}{}55
4Allow selective on/off of individual pipelines...Follow up after https://github.com/AICoE/meteo...tumido1638240006NoneNone{}{}53
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 Add other useful fields. apiVersion, kind, uid?' \n", + "1 Add other useful fields. apiVersion, kind, uid?' \n", + "2 Configure button labels in the pipeline resour... \n", + "3 Reconcile Comas dynamically \n", + "4 Allow selective on/off of individual pipelines... \n", + "\n", + " body created_by created_at \\\n", + "0 https://github.com/AICoE/meteor-operator/blob/... todo[bot] 1638280656 \n", + "1 https://github.com/AICoE/meteor-operator/blob/... todo[bot] 1638280653 \n", + "2 Follow up after https://github.com/AICoE/meteo... tumido 1638244936 \n", + "3 Currently a list of namespaces is hardcoded to... tumido 1638244018 \n", + "4 Follow up after https://github.com/AICoE/meteo... tumido 1638240006 \n", + "\n", + " closed_by closed_at labels \\\n", + "0 tumido 1638281102 {'todo :spiral_notepad:': {'color': '00B0D8', ... \n", + "1 tumido 1638281095 {'todo :spiral_notepad:': {'color': '00B0D8', ... \n", + "2 None None {} \n", + "3 sesheta 1639686267 {} \n", + "4 None None {} \n", + "\n", + " interactions id \n", + "0 {'tumido': 16} 58 \n", + "1 {'tumido': 16} 57 \n", + "2 {} 56 \n", + "3 {} 55 \n", + "4 {} 53 " + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meteor_operator_issues.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "d1164fa5-01c0-44a3-aeab-68578082540a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodysizecreated_bycreated_atclosed_atclosed_bymerged_atmerged_bycommits_numberchanged_files_numberinteractionsreviewslabelscommitschanged_filesfirst_review_atfirst_approve_atid
0chore(deps-dev): Bump eslint-config-next from ...Bumps [eslint-config-next](https://github.com/...Mdependabot[bot]1643746681NoneNoneNoneNone12{'sesheta': 202}{}[size/M, needs-ok-to-test, ok-to-test][bc37f3bb7186408ae9d3d9a8e1fd2ede7efc4692][package-lock.json, package.json]NoneNone276
1chore(deps): Bump next from 12.0.8 to 12.0.10Bumps [next](https://github.com/vercel/next.js...Ldependabot[bot]1643746664NoneNoneNoneNone12{'sesheta': 202}{}[size/L, needs-ok-to-test, ok-to-test][7a6776efd2b2b2182d501a4c6d475fe59fdc8efd][package-lock.json, package.json]NoneNone275
2chore(deps): Bump @patternfly/patternfly from ...Bumps [@patternfly/patternfly](https://github....XSdependabot[bot]1643660628NoneNoneNoneNone12{'sesheta': 202}{}[size/XS, needs-ok-to-test, ok-to-test][3985f557fa0d88567d304fbec5589dfdae4c39e6][package-lock.json, package.json]NoneNone274
3chore(deps): Bump @patternfly/react-core from ...Bumps [@patternfly/react-core](https://github....Mdependabot[bot]1643660586NoneNoneNoneNone12{'sesheta': 202}{}[size/M, needs-ok-to-test, ok-to-test][d00a255277b8dd9f8cd72f34a2d5a97c5d8a8fb0][package-lock.json, package.json]NoneNone273
4chore(deps): Bump next from 12.0.8 to 12.0.9Bumps [next](https://github.com/vercel/next.js...Ldependabot[bot]16433157051643746667dependabot[bot]NoneNone12{'sesheta': 191, 'dependabot[bot]': 3}{'867784089': {'author': 'tumido', 'words_coun...[size/L, approved, ok-to-test][74708327e609ffec1ce2ce829fb8cb8924cbdd05][package-lock.json, package.json]16436504671643650467272
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 chore(deps-dev): Bump eslint-config-next from ... \n", + "1 chore(deps): Bump next from 12.0.8 to 12.0.10 \n", + "2 chore(deps): Bump @patternfly/patternfly from ... \n", + "3 chore(deps): Bump @patternfly/react-core from ... \n", + "4 chore(deps): Bump next from 12.0.8 to 12.0.9 \n", + "\n", + " body size created_by \\\n", + "0 Bumps [eslint-config-next](https://github.com/... M dependabot[bot] \n", + "1 Bumps [next](https://github.com/vercel/next.js... L dependabot[bot] \n", + "2 Bumps [@patternfly/patternfly](https://github.... XS dependabot[bot] \n", + "3 Bumps [@patternfly/react-core](https://github.... M dependabot[bot] \n", + "4 Bumps [next](https://github.com/vercel/next.js... L dependabot[bot] \n", + "\n", + " created_at closed_at closed_by merged_at merged_by commits_number \\\n", + "0 1643746681 None None None None 1 \n", + "1 1643746664 None None None None 1 \n", + "2 1643660628 None None None None 1 \n", + "3 1643660586 None None None None 1 \n", + "4 1643315705 1643746667 dependabot[bot] None None 1 \n", + "\n", + " changed_files_number interactions \\\n", + "0 2 {'sesheta': 202} \n", + "1 2 {'sesheta': 202} \n", + "2 2 {'sesheta': 202} \n", + "3 2 {'sesheta': 202} \n", + "4 2 {'sesheta': 191, 'dependabot[bot]': 3} \n", + "\n", + " reviews \\\n", + "0 {} \n", + "1 {} \n", + "2 {} \n", + "3 {} \n", + "4 {'867784089': {'author': 'tumido', 'words_coun... \n", + "\n", + " labels \\\n", + "0 [size/M, needs-ok-to-test, ok-to-test] \n", + "1 [size/L, needs-ok-to-test, ok-to-test] \n", + "2 [size/XS, needs-ok-to-test, ok-to-test] \n", + "3 [size/M, needs-ok-to-test, ok-to-test] \n", + "4 [size/L, approved, ok-to-test] \n", + "\n", + " commits \\\n", + "0 [bc37f3bb7186408ae9d3d9a8e1fd2ede7efc4692] \n", + "1 [7a6776efd2b2b2182d501a4c6d475fe59fdc8efd] \n", + "2 [3985f557fa0d88567d304fbec5589dfdae4c39e6] \n", + "3 [d00a255277b8dd9f8cd72f34a2d5a97c5d8a8fb0] \n", + "4 [74708327e609ffec1ce2ce829fb8cb8924cbdd05] \n", + "\n", + " changed_files first_review_at first_approve_at id \n", + "0 [package-lock.json, package.json] None None 276 \n", + "1 [package-lock.json, package.json] None None 275 \n", + "2 [package-lock.json, package.json] None None 274 \n", + "3 [package-lock.json, package.json] None None 273 \n", + "4 [package-lock.json, package.json] 1643650467 1643650467 272 " + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meteor_prs.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "2bcfc979-1798-4612-9551-6d45395b5639", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodysizecreated_bycreated_atclosed_atclosed_bymerged_atmerged_bycommits_numberchanged_files_numberinteractionsreviewslabelscommitschanged_filesfirst_review_atfirst_approve_atid
0feat: Use externalServices for ComasResolves: https://github.com/AICoE/meteor-oper...Stumido16394354961639686267sesheta1639686267sesheta12{'tumido': 1, 'sesheta': 65}{}[approved, size/S, lgtm][8ee640e968f1d0a58f278a84fbfb963c23d73ef5][api/v1alpha1/zz_generated.deepcopy.go, contro...NoneNone62
1Additional improvements of the OCP UI for MeteorMainly cosmetic changes for more interactive a...Ltumido16394323831639434108sesheta1639434108sesheta524{'tumido': 1, 'sesheta': 65}{}[approved, size/L, lgtm][2f27f77d07bc218cc56ee66b11c5f424ec2017ca, f3f...[api/v1alpha1/common.go, api/v1alpha1/meteor_t...NoneNone61
2refactor: Move phase const to common.go and re...- Phases are not `Meteor` resource specific an...Stumido16384749551638906644tumido1638906644tumido13{'tumido': 1, 'sesheta': 68}{'821834609': {'author': 'harshad16', 'words_c...[approved, size/S, lgtm][03f3bd708d85a3973d3437c124c2c5ba8023e520][api/v1alpha1/common.go, api/v1alpha1/meteor_t...1638485274163848527460
3Update bundle prescription![image](https://user-images.githubusercontent...XLtumido16382895671638464194sesheta1638464194sesheta618{'pacospace': 39, 'tumido': 20, 'sesheta': 65}{}[size/XL, approved, lgtm][42bb5be6d3461a2017200e8cb69a8ac53d57318d, 9fc...[api/v1alpha1/coma_types.go, api/v1alpha1/mete...NoneNone59
4feat: Rename MeteorComa to ComaFollow up to #46 \\r\\n\\r\\n`s/MeteorComa/Coma/` ...XLtumido16382433441638280649sesheta1638280649sesheta119{'todo[bot]': 100, 'tumido': 1, 'sesheta': 65}{}[size/XL, approved, lgtm][434672fd39141098725f5fbe2423ad043704bd44][Makefile, PROJECT, api/v1alpha1/coma_types.go...NoneNone54
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 feat: Use externalServices for Comas \n", + "1 Additional improvements of the OCP UI for Meteor \n", + "2 refactor: Move phase const to common.go and re... \n", + "3 Update bundle prescription \n", + "4 feat: Rename MeteorComa to Coma \n", + "\n", + " body size created_by \\\n", + "0 Resolves: https://github.com/AICoE/meteor-oper... S tumido \n", + "1 Mainly cosmetic changes for more interactive a... L tumido \n", + "2 - Phases are not `Meteor` resource specific an... S tumido \n", + "3 ![image](https://user-images.githubusercontent... XL tumido \n", + "4 Follow up to #46 \\r\\n\\r\\n`s/MeteorComa/Coma/` ... XL tumido \n", + "\n", + " created_at closed_at closed_by merged_at merged_by commits_number \\\n", + "0 1639435496 1639686267 sesheta 1639686267 sesheta 1 \n", + "1 1639432383 1639434108 sesheta 1639434108 sesheta 5 \n", + "2 1638474955 1638906644 tumido 1638906644 tumido 1 \n", + "3 1638289567 1638464194 sesheta 1638464194 sesheta 6 \n", + "4 1638243344 1638280649 sesheta 1638280649 sesheta 1 \n", + "\n", + " changed_files_number interactions \\\n", + "0 2 {'tumido': 1, 'sesheta': 65} \n", + "1 24 {'tumido': 1, 'sesheta': 65} \n", + "2 3 {'tumido': 1, 'sesheta': 68} \n", + "3 18 {'pacospace': 39, 'tumido': 20, 'sesheta': 65} \n", + "4 19 {'todo[bot]': 100, 'tumido': 1, 'sesheta': 65} \n", + "\n", + " reviews \\\n", + "0 {} \n", + "1 {} \n", + "2 {'821834609': {'author': 'harshad16', 'words_c... \n", + "3 {} \n", + "4 {} \n", + "\n", + " labels \\\n", + "0 [approved, size/S, lgtm] \n", + "1 [approved, size/L, lgtm] \n", + "2 [approved, size/S, lgtm] \n", + "3 [size/XL, approved, lgtm] \n", + "4 [size/XL, approved, lgtm] \n", + "\n", + " commits \\\n", + "0 [8ee640e968f1d0a58f278a84fbfb963c23d73ef5] \n", + "1 [2f27f77d07bc218cc56ee66b11c5f424ec2017ca, f3f... \n", + "2 [03f3bd708d85a3973d3437c124c2c5ba8023e520] \n", + "3 [42bb5be6d3461a2017200e8cb69a8ac53d57318d, 9fc... \n", + "4 [434672fd39141098725f5fbe2423ad043704bd44] \n", + "\n", + " changed_files first_review_at \\\n", + "0 [api/v1alpha1/zz_generated.deepcopy.go, contro... None \n", + "1 [api/v1alpha1/common.go, api/v1alpha1/meteor_t... None \n", + "2 [api/v1alpha1/common.go, api/v1alpha1/meteor_t... 1638485274 \n", + "3 [api/v1alpha1/coma_types.go, api/v1alpha1/mete... None \n", + "4 [Makefile, PROJECT, api/v1alpha1/coma_types.go... None \n", + "\n", + " first_approve_at id \n", + "0 None 62 \n", + "1 None 61 \n", + "2 1638485274 60 \n", + "3 None 59 \n", + "4 None 54 " + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meteor_operator_prs.head()" + ] + }, + { + "cell_type": "markdown", + "id": "c2a972c3-2018-448b-83b0-4db621cfac6d", + "metadata": {}, + "source": [ + "Let's look at the `Thoth` project repo and fetch its relevant issue/PR data." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "34d42453-8482-4339-998a-df8e03908c4a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Getting dataset from Ceph\n", + "Getting dataset from Ceph\n" + ] + } + ], + "source": [ + "thoth_issues = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/thoth-station/core/Issue.json\"\n", + ")\n", + "thoth_prs = read_data_from_ceph(\n", + " \"open-services-group/metrics/github/\"\n", + " \"srcopsmetrics/bot_knowledge/thoth-station/core/PullRequest.json\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "aac15e01-6f59-4569-af8b-0cbc4bd5197d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodycreated_bycreated_atclosed_byclosed_atlabelsinteractionsid
0OCTO Summit DemoOCTO summit Demo is showcasing an end-to-end d...goern1644261684NoneNone{'needs-triage': {'color': 'ededed', 'labeled_...{'harshad16': 38}377
1Bring updated Ray images to Operate-first cloud## Problem statement\\r\\nwe would like to provi...harshad161643226449NoneNone{'kind/feature': {'color': 'c7def8', 'labeled_...{'goern': 3}372
2Endpoint for triggering initialization of a re...## Problem statement\\r\\n\\r\\nAs a user of Thoth...fridex1643214348NoneNone{'kind/feature': {'color': 'c7def8', 'labeled_...{'codificat': 4}371
3Introduce jupyterlab collaborative**Is your feature request related to a problem...pacospace1642600001NoneNone{'needs-triage': {'color': 'ededed', 'labeled_...{'sesheta': 73}383
4create SBOM for software stack provided**Is your feature request related to a problem...goern1640093888NoneNone{'kind/feature': {'color': 'c7def8', 'labeled_...{'goern': 3, 'codificat': 4, 'fridex': 2, 'ses...366
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 OCTO Summit Demo \n", + "1 Bring updated Ray images to Operate-first cloud \n", + "2 Endpoint for triggering initialization of a re... \n", + "3 Introduce jupyterlab collaborative \n", + "4 create SBOM for software stack provided \n", + "\n", + " body created_by created_at \\\n", + "0 OCTO summit Demo is showcasing an end-to-end d... goern 1644261684 \n", + "1 ## Problem statement\\r\\nwe would like to provi... harshad16 1643226449 \n", + "2 ## Problem statement\\r\\n\\r\\nAs a user of Thoth... fridex 1643214348 \n", + "3 **Is your feature request related to a problem... pacospace 1642600001 \n", + "4 **Is your feature request related to a problem... goern 1640093888 \n", + "\n", + " closed_by closed_at labels \\\n", + "0 None None {'needs-triage': {'color': 'ededed', 'labeled_... \n", + "1 None None {'kind/feature': {'color': 'c7def8', 'labeled_... \n", + "2 None None {'kind/feature': {'color': 'c7def8', 'labeled_... \n", + "3 None None {'needs-triage': {'color': 'ededed', 'labeled_... \n", + "4 None None {'kind/feature': {'color': 'c7def8', 'labeled_... \n", + "\n", + " interactions id \n", + "0 {'harshad16': 38} 377 \n", + "1 {'goern': 3} 372 \n", + "2 {'codificat': 4} 371 \n", + "3 {'sesheta': 73} 383 \n", + "4 {'goern': 3, 'codificat': 4, 'fridex': 2, 'ses... 366 " + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "thoth_issues.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "092632ab-78f1-45c5-beb5-f57f1d06b2c7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlebodysizecreated_bycreated_atclosed_atclosed_bymerged_atmerged_bycommits_numberchanged_files_numberinteractionsreviewslabelscommitschanged_filesfirst_review_atfirst_approve_atid
0SIG DevSecOps: fold sig-pipelines into it and ...## Related Issues and Dependencies\\r\\n<!-- Men...Lcodificat16449772291645034406sesheta1645034406sesheta213{'codificat': 3, 'sesheta': 65}{'884496535': {'author': 'harshad16', 'words_c...[approved, size/L][38a457760409212dba21cf5884b8ecaa780d7f77, 182...[.pre-commit-config.yaml, .prow.yaml, OWNERS_A...16450343241645034324382
1WIP Introduce an ADR for automatic base image ...## Related Issues and Dependencies\\r\\nRelated ...MmayaCostantini1644939546NoneNoneNoneNone11{}{}[][1df89e14a71211beb580079756725d4893662ed2][docs/adr/0005-automatically-bump-container-im...NoneNone381
2Include new repos in thoth-station and remove ...Include new repos in thoth-station and remove ...Mharshad161644546139NoneNoneNoneNone11{'sesheta': 189, 'harshad16': 5, 'codificat': 70}{'879996941': {'author': 'codificat', 'words_c...[size/M][841a5d63b2732d16e63e5ae2cc6cc9de9d1a00da][community/github-config.yaml]1644593166None380
3Add mi to the subprojectsSSIAXSxtuchyna16443483821644432499sesheta1644432499sesheta31{'sesheta': 65, 'pacospace': 1, 'xtuchyna': 13}{'876119118': {'author': 'pacospace', 'words_c...[approved, size/XS][028bb6998d83aa0d1a9d42b81aaa3896e1ae2d06, 9a6...[community/sig-observability/README.md]16443487641644348764379
4Include pulp metrics exporterSigned-off-by: Francesco Murdaca <fmurdaca@red...XSpacospace16443481411644350833sesheta1644350833sesheta11{'sesheta': 65}{'876154664': {'author': 'harshad16', 'words_c...[approved, size/XS][f5231367fa94262d4ca98b1df4e01ce0cd9b2448][community/github-config.yaml]16443500081644350008378
\n", + "
" + ], + "text/plain": [ + " title \\\n", + "0 SIG DevSecOps: fold sig-pipelines into it and ... \n", + "1 WIP Introduce an ADR for automatic base image ... \n", + "2 Include new repos in thoth-station and remove ... \n", + "3 Add mi to the subprojects \n", + "4 Include pulp metrics exporter \n", + "\n", + " body size created_by \\\n", + "0 ## Related Issues and Dependencies\\r\\n