{"id":26126220,"url":"https://github.com/aeon-php/automation","last_synced_at":"2025-04-13T16:11:28.275Z","repository":{"id":36976817,"uuid":"325115729","full_name":"aeon-php/automation","owner":"aeon-php","description":"⚙️📝 Automatically update project changelog after commit/tag/release/pull request in \"keep a changelog\" format (or not) ","archived":false,"fork":false,"pushed_at":"2024-04-04T04:39:50.000Z","size":2131,"stargazers_count":59,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"1.x","last_synced_at":"2024-04-04T05:33:32.947Z","etag":null,"topics":["changelog","changelog-generator","cli","github-api","release"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aeon-php.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"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}},"created_at":"2020-12-28T21:00:02.000Z","updated_at":"2024-04-15T05:57:54.451Z","dependencies_parsed_at":"2023-12-01T05:26:40.629Z","dependency_job_id":"97ccc54b-d91b-4f47-8155-ce2f0bba8556","html_url":"https://github.com/aeon-php/automation","commit_stats":{"total_commits":470,"total_committers":4,"mean_commits":117.5,"dds":"0.41276595744680855","last_synced_commit":"d4ef6cbbd0a3dabcf7edca380fc94fad57690951"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeon-php%2Fautomation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeon-php%2Fautomation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeon-php%2Fautomation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeon-php%2Fautomation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aeon-php","download_url":"https://codeload.github.com/aeon-php/automation/tar.gz/refs/heads/1.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248741198,"owners_count":21154255,"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":["changelog","changelog-generator","cli","github-api","release"],"created_at":"2025-03-10T17:28:07.537Z","updated_at":"2025-04-13T16:11:28.254Z","avatar_url":"https://github.com/aeon-php.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Automation \n\nCommand Line Application that can automatically update changelog file of your project after each commit/pull request/tag/release  \n\nTable of contents: \n\n* [Why?](#why)\n* [When?](#when)\n* [How?](#how)\n* [Installation](#installation)\n* [Contributing](#contributing)\n* [Documentation](#documentation)\n* Integrations\n  * [GitHub Actions](docs/github_actions.md)\n* [Integration Request](#integration-request)\n\n## Why? \n\nThere are similar, more popular projects around, why this? Automation is designed to give project owner a bit more\nflexibility and control over the changelog generation process. If pull requests are properly described Automation\nwill take that description, parse it and extract following types of changes from it: \n\n* added\n* changed\n* fixed\n* removed\n* deprecated\n* security \n\nThose types are part of [keep a changelog](https://keepachangelog.com/en/1.0.0/) notation. \n\nPull Request Description by definition is easy to update/change, also once commits are merged which makes it really easy\nto get back to a specific PR when generating a changelog, fix it and get a better changelog output. \n\nWhat if pull requests does not have expected description? Then Automation will fall back into commit messages but even here it will\nfirst try to look for [conventional commit](https://www.conventionalcommits.org/) notation and if that fail it will look for common prefixes\nlike `Fix`, `Added`, `Removed`.\n\nStill not convinced by keep a changelog theme? No problem, Automation is supporting also more classical approach, just use `--theme=classic` option. \n\nWhat if one would still prefer commit messages over pull requests? Don't worry, `--only-commits` option is here for him, just like `--only-pull-requests` is for the opposite camp. \n\n\n### Turn This\n\n![Pull Request](img/pull_request.png)\n\n### Into This \n\n![Pull Request](img/output.gif)\n\n## When? \n\nNot sure if automated changelog generation is for you? \n\n* Software with stable release cycle, following SemVer \n* Continuous Integration and Continuous Delivery (CI/CD)\n\nThos are two most popular use cases.\n \nReleasing open source project you will probably look into `--tag` option that will take a all changes between given and previous tag and generate changelog. \n\nWhen working on a project that is released multiple times every day and does not really have a predictable release cycle you might want to store last deployed commit SHA hash and pass it later through `--commit-end` option. Automation will be able then to generate changelog since last release for you. \n\n## How? \n\nExamples: \n\nGenerate full changelog for repository\n\n```\ndocker run -t -e AEON_AUTOMATION_GH_TOKEN --rm aeonphp/automation changelog:generate:all aeon-php/calendar --skip-from=\"dependabot[bot]\" --skip-from=\"aeon-automation\"\n```\n\nGenerate full changelog for repository ⚠️ **update CHANGELOG.md file and all releases** ⚠️\n\n```\ndocker run -t -e AEON_AUTOMATION_GH_TOKEN --rm aeonphp/automation changelog:generate:all aeon-php/calendar --github-release-update --github-file-update-path=CHANGELOG.md --skip-from=\"dependabot[bot]\" --skip-from=\"aeon-automation\"\n```\n\nGenerate unreleased changes for repository\n\n```\ndocker run -t -e AEON_AUTOMATION_GH_TOKEN --rm aeonphp/automation changelog:generate aeon-php/calendar --skip-from=\"dependabot[bot]\" --skip-from=\"aeon-automation\"\n```\n\nGenerate changelog for specific tag\n\n```\ndocker run -t -e AEON_AUTOMATION_GH_TOKEN --rm aeonphp/automation changelog:generate aeon-php/calendar --tag=0.15.0 --skip-from=\"dependabot[bot]\" --skip-from=\"aeon-automation\"\n```\n\nIn order to generate a changelog Automation takes 4 steps. \n\n\u003e Currently, Automation takes the whole project history directly from GitHub but more sources are coming. \n\n### 1) Detect Changes Scope \n\nWhen generating a changelog, Automation is first trying to understand what is the scope of changes. By default, it takes head of the default branch and it looks for the latest tag (from a semantic versioning point of view). Of course, this can be overwritten by telling automation to start from a specific tag using `--tag` option or even more precisely by providing start and end commit SHA, `--commit-start`, `--commit-end`. \n\nThere are 2 more options that could help to setup the right scope, `--changed-after` and `--changed-before` which also supports relative formats like `--changed-after=noon` or `--changed-after=\"-1 day\"` \n\n### 2) Fetch Project History \n\nWhen the scope is detected, Automation will fetch the history of changes from source. It all starts from commits, and it works pretty much as `git log origin..HEAD` command. When commits are fetched, Automation pulls all Pull Requests since they also have valuable data about changes (this can be skipped using `--only-commits` option).\nNot all contributions are worth mentioning, sometimes you might want to exclude changes from bots. `--skip-from` option makes possible to skip changes from given authors. \n\n### 3) Analyze Project History \n\nAutomation follows the [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) philosophy and it can recognize following types of changes:  \n\n* Added \n* Changed \n* Deprecated \n* Removed \n* Fixed \n* Security \n\nThere are several strategies making this recognition possible: \n\n* [HTML Changes Detector](src/Aeon/Automation/Changes/Detector/HTMLChangesDetector.php) \n* [Conventional Commit Detector](src/Aeon/Automation/Changes/Detector/ConventionalCommitDetector.php) \n* [Prefix Detector](src/Aeon/Automation/Changes/Detector/PrefixDetector.php) \n* [Default Detector](src/Aeon/Automation/Changes/Detector/DefaultDetector.php) \n\nThey are applied in given order until first one parse changes source and properly detect all changes. \n\n### 4) Format Changelog \n\nWhen all changes are detected and grouped by types Automation moves to the last step, changelog generation. \n\n### Formats \n\nAutomation supports following changelog formats: \n\n* `markdown` \n* `html` \n\n### Themes \n\nAutomation supports following themes: \n\n* `keepachangelog`\n* `classic` \n\nAll themes are supported by all formats. \n\n#### keepachangelog \n\nThis theme follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) convention, changes are organized by type. \n\n#### classic \n\nThis theme does not organize changes in any particular way, each change is displayed as a separated line item ordered by change date. \nCombined with `--only-pull-requests` option will provide clean and organized classical list of changes taken from pull request titles. \n\n## Installation\n\nBefore you start, [generate](https://github.com/settings/tokens) your own GitHub personal access token.\nIt can be provided as environment variable `AUTOMATION_GH_TOKEN` or through CLI option `--github-token` \n\nIf Automation is not working as you expected, increase verbosity to see how it works under the hood.\nIt can be done by providing one of following options: \n\n* `-v` - normal\n* `-vv` - verbose\n* `-vvv` - debug\n\n### Docker\n\n```\ndocker pull aeonphp/automation\ndocker run -t --rm aeonphp/automation --help\n```\n\n### Composer \n\n```\ngit clone git@github.com:aeon-php/automation.git\ncd automation \ncomposer install\nbin/automation --help\n```\n\n### Phar \n\nTODO: Coming soon \n\n---\n\nBecause Automation is using GitHub API to grab project history you can use it against any popular github projects. \n\n```\nautomation changelog:generate organization/name -v\n```\n\n## Contributing \n\nLooking for a way to contribute? Awesome ❤️ Below you can find few places to start with:\n\n* [Contributing \u0026 Development](https://github.com/aeon-php/.github/blob/master/CONTRIBUTING.md)\n\nYou are also more than welcome to open an [issue](https://github.com/aeon-php/automation/issues) if anything about this project bothers you.\n\n## Documentation\n\n### Commands\n\n```bash\naeon-automation\n\nUsage:\n  command [options] [arguments]\n\nOptions:\n  -h, --help                                         Display help for the given command. When no command is given display help for the list command\n  -q, --quiet                                        Do not output any message\n  -V, --version                                      Display this application version\n      --ansi                                         Force ANSI output\n      --no-ansi                                      Disable ANSI output\n  -n, --no-interaction                               Do not ask any interactive question\n      --configuration=CONFIGURATION                  Custom path to the automation.xml configuration file.\n      --cache-path=CACHE-PATH                        Path to root cache directory, taken from sys_get_tmp_dir() function or AEON_AUTOMATION_CACHE_DIR env variable [default: \"/Users/norzechowicz/.automation\"]\n      --github-token=GITHUB-TOKEN                    Github personal access token, generated here: https://github.com/settings/tokens By default taken from AEON_AUTOMATION_GH_TOKEN env variable\n      --github-enterprise-url=GITHUB-ENTERPRISE-URL  Github enterprise URL, by default taken from AEON_AUTOMATION_GH_ENTERPRISE_URL env variable\n  -v|vv|vvv, --verbose                               Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug\n\nAvailable commands:\n  help                            Displays help for a command\n  list                            Lists commands\n branch\n  branch:list                     List project branches\n cache\n  cache:clear                     Clears all or specific caches.\n changelog\n  changelog:generate              Generate change log for a release.\n  changelog:generate:all          Generate change log for all tags.\n  changelog:get                   Get project changelog.\n  changelog:release:unreleased    Update changelog file by turning Unreleased section into the next release\n milestone\n  milestone:create                Create new milestone for project\n  milestone:list                  \n pull-request\n  pull-request:description:check  Check if pull request has changes in expected by Automation format.\n  pull-request:list               \n  pull-request:template:show      Display pull request template required by this tool to properly parse keepachangelog format\n release\n  release:list                    List all project releases\n tag\n  tag:list                        Display all tags following SemVer convention sorted from the latest to oldest\n workflow\n  workflow:job:list               List project Github actions jobs status from the latest workflow run\n```\n\n### changelog:generate\n\n```bash\nDescription:\n  Generate change log for a release.\n\nUsage:\n  changelog:generate [options] [--] \u003cproject\u003e\n\nArguments:\n  project                                                project name, for example aeon-php/calendar\n\nOptions:\n      --commit-start=COMMIT-START                        Optional commit sha from which changelog is generated . When not provided, default branch latest commit is taken\n      --commit-end=COMMIT-END                            Optional commit sha until which changelog is generated . When not provided, latest tag is taken\n      --changed-after=CHANGED-AFTER                      Ignore all changes after given date, relative date formats like \"-1 day\" are also supported\n      --changed-before=CHANGED-BEFORE                    Ignore all changes before given date, relative date formats like \"-1 day\" are also supported\n      --tag=TAG                                          List only changes from given release\n      --tag-next=TAG-NEXT                                List only changes until given release\n      --tag-only-stable                                  Check SemVer stability of all tags and remove all unstable\n      --release-name=RELEASE-NAME                        Name of the release when --tag option is not provided [default: \"Unreleased\"]\n      --only-commits                                     Use only commits to generate changelog\n      --only-pull-requests                               Use only pull requests to generate changelog\n      --compare-reverse                                  When comparing commits, revers the order and compare start to end, instead end to start.\n      --format=FORMAT                                    How to format generated changelog, available formatters: \"markdown\", \"html\" [default: \"markdown\"]\n      --theme=THEME                                      Theme of generated changelog: \"keepachangelog\", \"classic\" [default: \"keepachangelog\"]\n      --skip-from=SKIP-FROM                              Skip changes from given author|authors (multiple values allowed)\n      --github-release-update                            Update GitHub release description if you have right permissions and release exists\n      --github-file-update-path=GITHUB-FILE-UPDATE-PATH  Update changelog file directly at GitHub by reading existing file content and changing related release section. For example: --github-file-update-path=CHANGELOG.md\n      --github-file-update-ref=GITHUB-FILE-UPDATE-REF    The name of the commit/branch/tag from which to take file for --github-file-update-path=CHANGELOG.md option. Default: the repository’s default branch.\n  -h, --help                                             Display help for the given command. When no command is given display help for the list command\n  -q, --quiet                                            Do not output any message\n  -V, --version                                          Display this application version\n      --ansi                                             Force ANSI output\n      --no-ansi                                          Disable ANSI output\n  -n, --no-interaction                                   Do not ask any interactive question\n      --configuration=CONFIGURATION                      Custom path to the automation.xml configuration file.\n      --cache-path=CACHE-PATH                            Path to root cache directory, taken from sys_get_tmp_dir() function or AEON_AUTOMATION_CACHE_DIR env variable [default: \"/Users/norzechowicz/.automation\"]\n      --github-token=GITHUB-TOKEN                        Github personal access token, generated here: https://github.com/settings/tokens By default taken from AEON_AUTOMATION_GH_TOKEN env variable\n      --github-enterprise-url=GITHUB-ENTERPRISE-URL      Github enterprise URL, by default taken from AEON_AUTOMATION_GH_ENTERPRISE_URL env variable\n  -v|vv|vvv, --verbose                                   Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug\n\nHelp:\n  When no parameters are provided, this command will generate Unreleased change log. Please be careful when using --github-release-update and --github-file-update-path since those options will do changes in project repository.\n```\n\n### changelog:generate:all\n\n```bash\nDescription:\n  Generate change log for all tags.\n\nUsage:\n  changelog:generate:all [options] [--] \u003cproject\u003e\n\nArguments:\n  project                                                project name, for example aeon-php/calendar\n\nOptions:\n      --tag-start=TAG-START                              Generate changelog from given tag, if not provided it starts from the earliest tag\n      --tag-end=TAG-END                                  Generate changelog until given tag, if not provided it ends at the last tag\n      --tag-skip=TAG-SKIP                                Skip specific tags (multiple values allowed)\n      --tag-only-stable                                  Check SemVer stability of all tags and remove all unstable\n      --skip-from=SKIP-FROM                              Skip changes from given author|authors (multiple values allowed)\n      --only-commits                                     Use only commits to generate changelog\n      --only-pull-requests                               Use only pull requests to generate changelog\n      --compare-reverse                                  When comparing commits, revers the order and compare start to end, instead end to start.\n      --format=FORMAT                                    How to format generated changelog, available formatters: \"markdown\", \"html\" [default: \"markdown\"]\n      --theme=THEME                                      Theme of generated changelog: \"keepachangelog\", \"classic\" [default: \"keepachangelog\"]\n      --github-release-update                            Update GitHub release description if you have right permissions and release exists\n      --github-file-update-path=GITHUB-FILE-UPDATE-PATH  Update changelog file directly at GitHub by reading existing file content and changing related release section. For example: --github-file-update-path=CHANGELOG.md\n      --github-file-update-ref=GITHUB-FILE-UPDATE-REF    The name of the commit/branch/tag from which to take file for --github-file-update-path=CHANGELOG.md option. Default: the repository’s default branch.\n  -h, --help                                             Display help for the given command. When no command is given display help for the list command\n  -q, --quiet                                            Do not output any message\n  -V, --version                                          Display this application version\n      --ansi                                             Force ANSI output\n      --no-ansi                                          Disable ANSI output\n  -n, --no-interaction                                   Do not ask any interactive question\n      --configuration=CONFIGURATION                      Custom path to the automation.xml configuration file.\n      --cache-path=CACHE-PATH                            Path to root cache directory, taken from sys_get_tmp_dir() function or AEON_AUTOMATION_CACHE_DIR env variable [default: \"/Users/norzechowicz/.automation\"]\n      --github-token=GITHUB-TOKEN                        Github personal access token, generated here: https://github.com/settings/tokens By default taken from AEON_AUTOMATION_GH_TOKEN env variable\n      --github-enterprise-url=GITHUB-ENTERPRISE-URL      Github enterprise URL, by default taken from AEON_AUTOMATION_GH_ENTERPRISE_URL env variable\n  -v|vv|vvv, --verbose                                   Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug\n\nHelp:\n  When no parameters are provided, this command will generate changelog for each commit that follows semver semantic.\n```\n\n### changelog:release:unreleased\n\n```bash\nDescription:\n  Update changelog file by turning Unreleased section into the next release\n\nUsage:\n  changelog:release:unreleased [options] [--] \u003cproject\u003e \u003cchangelog-file-path\u003e \u003crelease-name\u003e\n\nArguments:\n  project                                              project name, for example aeon-php/calendar\n  changelog-file-path                                  Path to the changelog file from repository root. For example: CHANGELOG.md\n  release-name                                         Name of the next release.\n\nOptions:\n      --format=FORMAT                                  How to format generated changelog, available formatters: \"markdown\", \"html\" [default: \"markdown\"]\n      --theme=THEME                                    Theme of generated changelog: \"keepachangelog\", \"classic\" [default: \"keepachangelog\"]\n      --github-release-update                          Update GitHub release description if you have right permissions and release exists\n      --github-file-changelog-update                   Update changelog file by pushing commit to GitHub directly\n      --github-file-update-ref=GITHUB-FILE-UPDATE-REF  The name of the commit/branch/tag from which to take file for changelog-file-path argument. Default: the repository’s default branch.\n  -h, --help                                           Display help for the given command. When no command is given display help for the list command\n  -q, --quiet                                          Do not output any message\n  -V, --version                                        Display this application version\n      --ansi                                           Force ANSI output\n      --no-ansi                                        Disable ANSI output\n  -n, --no-interaction                                 Do not ask any interactive question\n      --configuration=CONFIGURATION                    Custom path to the automation.xml configuration file.\n      --cache-path=CACHE-PATH                          Path to root cache directory, taken from sys_get_tmp_dir() function or AEON_AUTOMATION_CACHE_DIR env variable [default: \"/Users/norzechowicz/.automation\"]\n      --github-token=GITHUB-TOKEN                      Github personal access token, generated here: https://github.com/settings/tokens By default taken from AEON_AUTOMATION_GH_TOKEN env variable\n      --github-enterprise-url=GITHUB-ENTERPRISE-URL    Github enterprise URL, by default taken from AEON_AUTOMATION_GH_ENTERPRISE_URL env variable\n  -v|vv|vvv, --verbose                                 Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug\n\nHelp:\n  This command only manipulates the changelog file, it does not create new releases.\n```\n\n### changelog:get\n\n```bash\nDescription:\n  Get project changelog.\n\nUsage:\n  changelog:get [options] [--] \u003cproject\u003e\n\nArguments:\n  project                                            project name, for example aeon-php/calendar\n\nOptions:\n      --github-file-path=GITHUB-FILE-PATH            changelog file path [default: \"CHANGELOG.md\"]\n      --github-file-ref=GITHUB-FILE-REF              The name of the commit/branch/tag from which to take file for --github-file-path=CHANGELOG.md option. Default: the repository’s default branch.\n      --sha1-hash                                    Optional display only sha1 hash of the changelog file instead of file content\n  -h, --help                                         Display help for the given command. When no command is given display help for the list command\n  -q, --quiet                                        Do not output any message\n  -V, --version                                      Display this application version\n      --ansi                                         Force ANSI output\n      --no-ansi                                      Disable ANSI output\n  -n, --no-interaction                               Do not ask any interactive question\n      --configuration=CONFIGURATION                  Custom path to the automation.xml configuration file.\n      --cache-path=CACHE-PATH                        Path to root cache directory, taken from sys_get_tmp_dir() function or AEON_AUTOMATION_CACHE_DIR env variable [default: \"/Users/norzechowicz/.automation\"]\n      --github-token=GITHUB-TOKEN                    Github personal access token, generated here: https://github.com/settings/tokens By default taken from AEON_AUTOMATION_GH_TOKEN env variable\n      --github-enterprise-url=GITHUB-ENTERPRISE-URL  Github enterprise URL, by default taken from AEON_AUTOMATION_GH_ENTERPRISE_URL env variable\n  -v|vv|vvv, --verbose                               Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug\n\nHelp:\n  When no parameters are provided, this command will generate Unreleased change log. Please be careful when using --github-release-update and --github-file-update-path since those options will do changes in project repository.\n```\n\n### tag:list\n\n```bash\nDescription:\n  Display all tags following SemVer convention sorted from the latest to oldest\n\nUsage:\n  tag:list [options] [--] \u003cproject\u003e\n\nArguments:\n  project                                            project name\n\nOptions:\n      --with-date                                    display date when tag was committed\n      --with-commit                                  display commit SHA of tag\n      --limit=LIMIT                                  Maximum number of tags to get\n  -h, --help                                         Display help for the given command. When no command is given display help for the list command\n  -q, --quiet                                        Do not output any message\n  -V, --version                                      Display this application version\n      --ansi                                         Force ANSI output\n      --no-ansi                                      Disable ANSI output\n  -n, --no-interaction                               Do not ask any interactive question\n      --configuration=CONFIGURATION                  Custom path to the automation.xml configuration file.\n      --cache-path=CACHE-PATH                        Path to root cache directory, taken from sys_get_tmp_dir() function or AEON_AUTOMATION_CACHE_DIR env variable [default: \"/Users/norzechowicz/.automation\"]\n      --github-token=GITHUB-TOKEN                    Github personal access token, generated here: https://github.com/settings/tokens By default taken from AEON_AUTOMATION_GH_TOKEN env variable\n      --github-enterprise-url=GITHUB-ENTERPRISE-URL  Github enterprise URL, by default taken from AEON_AUTOMATION_GH_ENTERPRISE_URL env variable\n  -v|vv|vvv, --verbose                               Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug\n```\n\n### workflow:timing:list\n\n```\nDescription:\n  List project Github actions workflows billable minutes usage in current billing cycle\n\nUsage:\n  workflow:timing:list [options] [--] \u003cproject\u003e\n\nArguments:\n  project                                            project name\n\nOptions:\n      --os=OS                                        Show billable minutes for operating systems [default: [\"ubuntu\",\"macos\",\"windows\"]] (multiple values allowed)\n  -h, --help                                         Display help for the given command. When no command is given display help for the list command\n  -q, --quiet                                        Do not output any message\n  -V, --version                                      Display this application version\n      --ansi                                         Force ANSI output\n      --no-ansi                                      Disable ANSI output\n  -n, --no-interaction                               Do not ask any interactive question\n      --configuration=CONFIGURATION                  Custom path to the automation.xml configuration file.\n      --cache-path=CACHE-PATH                        Path to root cache directory, taken from sys_get_tmp_dir() function or AEON_AUTOMATION_CACHE_DIR env variable [default: \"/Users/norzechowicz/.automation\"]\n      --github-token=GITHUB-TOKEN                    Github personal access token, generated here: https://github.com/settings/tokens By default taken from AEON_AUTOMATION_GH_TOKEN env variable\n      --github-enterprise-url=GITHUB-ENTERPRISE-URL  Github enterprise URL, by default taken from AEON_AUTOMATION_GH_ENTERPRISE_URL env variable\n  -v|vv|vvv, --verbose                               Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug\n\nHelp:\n  Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners.\n```\n\n## Integration Request\n\nIf you would lik to integrate Automation with your project but not sure how, feel free to [Open Integration Request](https://github.com/aeon-php/automation/issues/new/choose).  \nWe will first test your project and if possible prepare an integration Pull Request. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faeon-php%2Fautomation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faeon-php%2Fautomation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faeon-php%2Fautomation/lists"}