Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/prestashop/ps-project-metrics
Collects and displays GitHub review statistics
https://github.com/prestashop/ps-project-metrics
php symfony
Last synced: about 1 month ago
JSON representation
Collects and displays GitHub review statistics
- Host: GitHub
- URL: https://github.com/prestashop/ps-project-metrics
- Owner: PrestaShop
- License: mit
- Created: 2021-12-08T14:12:41.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2023-05-05T14:23:55.000Z (over 1 year ago)
- Last Synced: 2024-10-07T10:58:32.959Z (about 1 month ago)
- Topics: php, symfony
- Language: CSS
- Homepage:
- Size: 248 KB
- Stars: 1
- Watchers: 8
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PrestaShop Project Metrics application
[![PHPUnit tests](https://github.com/prestashop/ps-project-metrics/actions/workflows/phpunit.yml/badge.svg)](https://github.com/prestashop/ps-project-metrics/actions/workflows/phpunit.yml)
[![PHPStan](https://github.com/prestashop/ps-project-metrics/actions/workflows/phpstan.yml/badge.svg)](https://github.com/prestashop/ps-project-metrics/actions/workflows/phpstan.yml)Symfony 5 application that collects and displays
- PrestaShop Maintainers review daily statistics
- PrestaShop "Waiting for..." daily total statistics
- PrestaShop "Waiting for review" for how long snapshots
- PrestaShop pull request review comments statistics## Install
```
composer install
```You need
- a MySQL database
- a GitHub token with public accessYou need to provide 8 parameters using a `.env.local` file or environment variables.
```
APP_ENV=dev
APP_SECRET=...DATABASE_URL=...
APP_DB_HOST=127.0.0.1
APP_DB_TABLE=reviewstats
APP_DB_USER=...
APP_DB_PASSWORD=...
APP_GH_TOKEN=...
```Example
```
APP_ENV=dev
APP_SECRET=abcdefhejeljdxsjshdjfrhghefjejejDATABASE_URL="mysql://abcd:[email protected]:9999/review-stats?serverVersion=5.7"
APP_DB_HOST=127.0.0.1
APP_DB_TABLE=review-stats
APP_DB_USER=abcd
APP_DB_PASSWORD=abcd
APP_GH_TOKEN=ghp_abchdksjdkdjfhdjzdjdzdhazdazhduzdhzd
```## Usage
### Browse statistics
Browse `/` using a webserver to see the dashboard.
If you configure a webserver, do use `public` as root directory.
Example with Symfony built-in server:
```
symfony server:start
```### Collect statistics and manage data
```
# To collect Maintainers review daily statistics ; run once a day
php bin/console ps:review-stats:record# To collect "Waiting for..." daily total statistics ; run once a day
php bin/console ps:prs-waiting-stats:record# To collect "Waiting for review" for how long snapshots ; can be run as often as needed
php bin/console ps:prs-statuses:record# To collect pull request review comments statistics ; run once a day
php bin/console ps:pr-review-comment-stats:compute# To delete old pull request review comments ; run once a day
php bin/console ps:pr-review-comment:delete-old
```Most commands can be triggered as dry-run (does not persist data) or not. Default is dry-run enabled, so in order to
persist the data you need to add `--dry-run=false`:```
php bin/console ps:prs-waiting-stats:record --dry-run=false
php bin/console ps:review-stats:record --dry-run=false
```## Test
Run tests using phpunit
```
vendor/bin/phpunit -c phpunit.xml
```Some tests do load fixtures powered by a sqlite driver
Run static analysis using phpstan
```
vendor/bin/phpstan analyse -c phpstan.neon
```## Documentation
[Browse `/doc` folder](https://github.com/prestashop/ps-project-metrics/tree/master/doc)