{"id":18932920,"url":"https://github.com/slashgear/flo-du-bot","last_synced_at":"2026-05-08T04:48:26.221Z","repository":{"id":68645296,"uuid":"586237377","full_name":"Slashgear/flo-du-bot","owner":"Slashgear","description":"🤖 Github action to ensure that test are added to a project for new features or bug fixes","archived":false,"fork":false,"pushed_at":"2024-01-17T08:33:21.000Z","size":499,"stargazers_count":3,"open_issues_count":8,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-25T09:01:23.831Z","etag":null,"topics":["action","github","pull-requests","test"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/Slashgear.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-07T12:36:50.000Z","updated_at":"2023-03-07T02:31:35.000Z","dependencies_parsed_at":"2024-11-08T11:51:11.465Z","dependency_job_id":"e0e5f0cb-f51d-4ecb-b92c-18df5cf9c00c","html_url":"https://github.com/Slashgear/flo-du-bot","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Slashgear%2Fflo-du-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Slashgear%2Fflo-du-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Slashgear%2Fflo-du-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Slashgear%2Fflo-du-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Slashgear","download_url":"https://codeload.github.com/Slashgear/flo-du-bot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239933070,"owners_count":19720728,"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":["action","github","pull-requests","test"],"created_at":"2024-11-08T11:51:01.044Z","updated_at":"2026-05-08T04:48:26.210Z","avatar_url":"https://github.com/Slashgear.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eWelcome to flo-du-bot Github Action👋\u003c/h1\u003e\n\u003cp\u003e\n  \u003ca href=\"https://github.com/Slashgear/flo-du-bot/blob/main/LICENSE\" target=\"_blank\"\u003e\n    \u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/Slashgear\\_\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Twitter: Slashgear_\" src=\"https://img.shields.io/twitter/follow/Slashgear_.svg?style=social\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/Slashgear/flo-du-bot/actions/workflows/ci.yml\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Continous Integration\" src=\"https://github.com/Slashgear/flo-du-bot/actions/workflows/ci.yml/badge.svg\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003e Github action to ensure that test are added to a project for new features or bug fixes.\n\u003e\n\u003e By default, when a pull request is opened and is name contains `feat` or `fix`, the action will fail if the list of files changes does not match\n\n## Context of this action\n\nWith my colleague [Florent Dubost](https://github.com/fdubost), we try to instill in our development teams the need to always try to implement automated tests in the Pull Requests on which they modify the product of our tools.\n\n**This is part of our \"team rules\" that we try to respect.**\n\nAs we presented in the article in french [\"How not to throw away a frontend application every two years?](https://tech.bedrockstreaming.com/2021/09/01/bonnes-pratiques-web.html), we always try to automate our team rules so that they don't rely on people who are then the guarantor of the respect of these rules.\n\nAlso explained in this video conference in french.\n[![youtube video screenshot](https://img.youtube.com/vi/t36UqNSmybM/0.jpg)](https://www.youtube.com/watch?v=t36UqNSmybM)\n\nWith my colleague [Mickaël Alves](https://github.com/mickaelalvs), we took advantage of an R\u0026D day to implement the rule _\"Always add/modify tests when we make a fix or develop a new feature\"_ that Florent was making sure we respected but with a Github action.\nThis is why we named the project `flo-du-bot`, linked to the name of the person who inspired this idea.\n\n## Usage\n\nThis action allows you to include a title check of a pull request automatically. This action only works on `pull_request` events.\nAdd this action on your pull request event workflows.\n\n```yaml\nsteps:\n  - uses: Slashgear/flo-du-bot@v1.0.0\n    with:\n      prTitlePattern: \"(feat|fix)\" # Regexp the title should match. (default)\n      testFileExtensionPattern: \"(spec.js|int.js|.feature|test.js)\" # Regexp of modified files extensions (default)\n      sourceFilePattern: \"src/.*.(js|ts)\" # Regexp of source files edition detection. (default)\n      reviewEvent: \"REQUEST_CHANGES\" # Type of event triggered by the bot in the pullRequest (default) other values: COMMENT for review status comment, NONE if you don't want it to touch your PR reviews\n      token: $ # Github token used (you could pass ${{ secrets.GITHUB_TOKEN }})\n```\n\n## Author\n\n👤 **Slashgear**\n\n- Website: https://blog.slashgear.dev/\n- Twitter: [@Slashgear\\_](https://twitter.com/Slashgear_)\n- Github: [@Slashgear](https://github.com/Slashgear)\n\n## 🤝 Contributing\n\nContributions, issues and feature requests are welcome!\u003cbr /\u003eFeel free to check [issues page](https://github.com/Slashgear/flo-du-bot/issues).\n\n## Show your support\n\nGive a ⭐️ if this project helped you!\n\n## 📝 License\n\nCopyright © 2020 [Slashgear](https://github.com/Slashgear).\u003cbr /\u003e\nThis project is [MIT](https://github.com/Slashgear/action-check-pr-title/blob/main/LICENSE) licensed.\n\n---\n\n_This README was generated with ❤️ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslashgear%2Fflo-du-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslashgear%2Fflo-du-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslashgear%2Fflo-du-bot/lists"}