prestashop / traces
A simple CLI tool to generate information about GitHub contributors of a repository
v6.5.4
2026-08-29 12:51 UTC
Requires
- ext-json: *
- cache/filesystem-adapter: ^1.2
- knplabs/github-api: ^3.14
- nyholm/psr7: ^1.8
- symfony/console: ^8.0
- symfony/dotenv: ^8.0
- symfony/http-client: ^8.0
- symfony/yaml: ^8.0
Requires (Dev)
- phpstan/phpstan: ^2.1
- phpstan/phpstan-symfony: ^2.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-master
- v6.5.4
- v6.5.3
- v6.5.2
- v6.5.1
- v6.5.0
- v6.4.1
- v6.4.0
- v6.3.1
- v6.3.0
- v6.2.50
- v6.2.49
- v6.2.48
- v6.2.47
- v6.2.46
- v6.2.45
- v6.2.44
- v6.2.43
- v6.2.42
- v6.2.41
- v6.2.40
- v6.2.39
- v6.2.38
- v6.2.37
- v6.2.36
- v6.2.35
- v6.2.34
- v6.2.33
- v6.2.32
- v6.2.31
- v6.2.30
- v6.2.29
- v6.2.28
- v6.2.27
- v6.2.26
- v6.2.25
- v6.2.24
- v6.2.23
- v6.2.22
- v6.2.21
- v6.2.20
- v6.2.19
- v6.2.18
- v6.2.17
- v6.2.16
- v6.2.15
- v6.2.14
- v6.2.13
- v6.2.12
- v6.2.11
- v6.2.10
- v6.2.9
- v6.2.8
- v6.2.7
- v6.2.6
- v6.2.5
- v6.2.4
- v6.2.3
- v6.2.2
- v6.2.1
- v6.2.0
- v6.1.0
- v6.0.1
- v6.0.0
- v5.2.5
- v5.2.4
- v5.2.3
- v5.2.2
- v5.2.1
- v5.2.0
- v5.1.0
- v5.0.0
- v4.0.0
- v3.0.0
- v2.0.1
- v2.0.0
- v1.1.1
- v1.1.0
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0
This package is auto-updated.
Last update: 2026-09-07 08:48:46 UTC
README
Traces is a Symfony CLI application that is able to :
- fetch all repositories of the PrestaShop organization
- fetch all contributors and their contributions in "developer-readable" JSON format for a specified repository
- fetch all merged pull requests of the PrestaShop organization
Installation / usage
The authentication use a Github Token.
Note: You can fetch here : https://github.com/settings/tokens/new?description=traces&scopes=repo,read:org
$ composer create-project prestashop/traces
All the following commands require a Github token to access and use Github APIs, you have three ways to define this token:
- using the command option:
--ghtoken=<ghtoken> - using an environment variable: GH_TOKEN= php bin/console `
- using .env file and adding GH_TOKEN=
# 1- Fetch all repositories $ php bin/console traces:fetch:repositories ## A file gh_repositories.json is generated # 2- Check a repository (the repository option is optional and will then fetch ALL repositories from gh_repositories.json) $ php bin/console traces:fetch:contributors -r <repositoryName> --config="config.yml" ## A file contributors.json is generated # 3- Fetch all merged pullrequests $ php bin/console traces:fetch:pullrequests:merged ## A file gh_pullrequests.json is generated # 4- Fetch new contributors $ php bin/console traces:generate:newcontributors --config="config.yml" ## A file newcontributors.json is generated # 5- Fetch top companies $ php bin/console traces:generate:topcompanies --config="config.yml" ## Files topcompanies.json and gh_loginsWOCompany.json are generated # 6- Fetch all pull requests (any state) and their reviewers $ php bin/console traces:fetch:pullrequests:all ## A file gh_pullrequests_all.json is generated # 7- Fetch issues (excluding pull requests) $ php bin/console traces:fetch:issues ## A file gh_issues.json is generated # 8- Generate reviewers/issues/pull-requests leaderboards $ php bin/console traces:generate:topstats --config="config.yml" ## Files top_reviewers.json, top_issues.json, top_pullrequests.json are generated ## and contributors_prs.json is enriched with reviews / issuesOpened / pullRequestsOpened # 9- Fetch published security advisories and their credits $ php bin/console traces:fetch:security-advisories ## A file gh_security_advisories.json is generated # 10- Generate the security contributors leaderboard (research + remediation) $ php bin/console traces:generate:topsecurity --config="config.yml" ## A file top_security.json is generated # 11- Fetch QA label events (all QA-prefixed validation labels) from merged PRs $ php bin/console traces:fetch:qaevents ## A file gh_qa_events.json is generated # 12- Generate the QA contributors leaderboard $ php bin/console traces:generate:topqa --config="config.yml" ## A file top_qa.json is generated
Configuring
There are a number of settings that can be configured via the config file. Take a look at the config.dist.yml file for an example.
| Option | Description |
|---|---|
| exclusions | List of excluded users. |
| keepExcludedUsers | Set to true to flag excluded contributors instead of filtering them out from the output. |
| fieldsWhitelist | List of fields to keep from the API result. Leave blank if you want to keep them all. |
| extractEmailDomain | Set to true to extract the user's email domain and include it in the generated file |
License
This project is released under the MIT license.