{"id":27861175,"url":"https://github.com/jaymzh/oss-stats","last_synced_at":"2025-05-04T18:32:17.025Z","repository":{"id":282272177,"uuid":"947687058","full_name":"jaymzh/oss-stats","owner":"jaymzh","description":"Statistics to monitor the health of the Chef ecosystem","archived":false,"fork":false,"pushed_at":"2025-04-10T21:47:16.000Z","size":579,"stargazers_count":3,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-26T05:15:43.608Z","etag":null,"topics":["chef","community","opensource"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaymzh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-13T04:51:49.000Z","updated_at":"2025-04-10T21:47:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"d13a043e-a077-4489-a2e7-1ecb443d0066","html_url":"https://github.com/jaymzh/oss-stats","commit_stats":null,"previous_names":["jaymzh/chef-oss-stats","jaymzh/oss-stats"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaymzh%2Foss-stats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaymzh%2Foss-stats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaymzh%2Foss-stats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaymzh%2Foss-stats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaymzh","download_url":"https://codeload.github.com/jaymzh/oss-stats/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252382211,"owners_count":21739112,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chef","community","opensource"],"created_at":"2025-05-04T18:32:16.435Z","updated_at":"2025-05-04T18:32:17.004Z","avatar_url":"https://github.com/jaymzh.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OSS Stats\n\n[![Lint](https://github.com/jaymzh/oss-stats/actions/workflows/lint.yml/badge.svg)](https://github.com/jaymzh/oss-stats/actions/workflows/lint.yml)\n[![DCO Check](https://github.com/jaymzh/oss-stats/actions/workflows/dco.yml/badge.svg)](https://github.com/jaymzh/oss-stats/actions/workflows/dco.yml)\n\nThis is a collection of scripts that aim to make it easier to track and report\nvarious metrics around health of an open source project.\n\nIt was born out of the Chef ecosystem, but should be generic enough for any\nproject. The [chef-oss-stats](https://github.com/jaymzh/chef-oss-stats/) repo\nis a useful example to look at to see the results, though.\n\n## How to use this repo\n\nThe easiest way to use this repo is to make it a submodule of your own repo\nand then add config files in your own repo that save the relevant reports\nand data to your own repo.\n\n## CI Stats\n\nThe [ci_stats.rb](src/ci_stats.rb) script will walk GitHub CI workflows for a\ngiven repo, and report the number of days each one was red on the `main` branch\nin the last N days (default: 30) as well as gather stats on Issues and PRs.\n\nThe output looks like:\n\n```shell\n$ ./src/ci_stats.rb --days 7 --branches chef-18,main --org chef --repo chef\n*_[chef/chef] Stats (Last 7 days)_*\n\n* PR Stats:\n    * Opened PRs: 15\n    * Closed PRs: 13\n    * Oldest Open PR: 2024-09-06 (208 days open, last activity 69 days ago)\n    * Stale PR (\u003e30 days without comment): 8\n    * Avg Time to Close PRs: 18.47 days\n\n* Issue Stats:\n    * Opened Issues: 2\n    * Closed Issues: 1\n    * Oldest Open Issue: 2024-07-26 (250 days open, last activity 233 days ago)\n    * Stale Issue (\u003e30 days without comment): 14\n    * Avg Time to Close Issues: 14.27 days\n\n* CI Failure Stats:\n    * Branch: main\n        * docr_lnx_x86_64 (debian-11): 1 days\n        * docr_lnx_x86_64 (rockylinux-8): 1 days\n        * docr_lnx_x86_64 (ubuntu-2204): 1 days\n        * vm_lnx_x86_64 (almalinux-8): 1 days\n        * vm_lnx_x86_64 (almalinux-9): 1 days\n        * vm_lnx_x86_64 (amazonlinux-2): 1 days\n        * vm_lnx_x86_64 (amazonlinux-2023): 1 days\n        * vm_lnx_x86_64 (debian-11): 1 days\n        * vm_lnx_x86_64 (debian-12): 1 days\n        * vm_lnx_x86_64 (fedora-40): 2 days\n        * vm_lnx_x86_64 (opensuse-leap-15): 1 days\n        * vm_lnx_x86_64 (oracle-7): 1 days\n        * vm_lnx_x86_64 (oracle-8): 1 days\n        * vm_lnx_x86_64 (oracle-9): 1 days\n        * vm_lnx_x86_64 (rockylinux-8): 2 days\n    * Branch: chef18: No job failures found.\n```\n\nAs you can see the output is in markdown format suitable for posting in Slack,\nor storing in Github.\n\nThere are a lot of options you can use to customize what is included in the\nreport.\n\n## Meeting Stats\n\nMany open source projects have weekly meetings and it's important to know\nthat the relevant teams are showing up and reporting the expected data.\n\nThe [meeting_stats.rb](src/meeting_stats.rb) script will allow you to record\nthe results of a meeting and then generate a report, including images with\ntrends over time.\n\nYou will **definitely** want a config file to make this useful for your\nproject, and you can see\n[examples/meeting_stats_config.rb](examples/meeting_stats_config.rb) for an\nexample.\n\nTo update the stats for the week run `./src/meeting_stats.rb --mode record`,\nand to update the report run `./src/meeting_stats.rb --mode generate`.\n\n## Pipeline visibility stats\n\n:warning: This is a Work In Progress! :warning:\n\nCurrently [pipeline_visibility_stats.rb](src/pipeline_visibility_stats.rb) only\nsupports Expeditor, which is Chef-specific and not open source. However, much\nof the code is generic and this could be adapted to other things.\n\nThe idea here is to walk public repos and find tests that are not visible to\nthe public and report on them.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaymzh%2Foss-stats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaymzh%2Foss-stats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaymzh%2Foss-stats/lists"}