✨ use codeowners anywhere in your monorepo 🛠️
Explore the docs »
Report Bug
·
Request Feature
CODEOWNERS are automatically requested for review when someone opens a pull request that modifies code that they own. This is a great feature, but when working on monorepos ownership is shared between teams and it becomes difficult to maintain.
codeowners-generator
allows you to position CODEOWNERS files anywhere in your project tree and it will take care of compiling all the files into a single generated file, that Github can understand. It also can read the maintainers fields (contributors
, author
and alternatively maintainers
) in package.json
(useMaintainers
option in the cli ) making easy to keep CODEOWNERS and package.json in sync.
If you wish to use codeowners-generator
as a standalone utility:
npm -g install codeowners-generator
This will make the codeowners-generator
command available in your terminal.
codeowners-generator --help
If instead you would like to add it to a package:
npm install --only=dev codeowners-generator
Every command accepts several options through command line or custom configuration see configuration for more
codeowners-generator generate
codeowners-generator generate --useMaintainers
codeowners-generator generate --includes '**/CODEOWNERS'
You can configure codeowners-generator
from several places:
-
includes (
--includes
): The glob used to find CODEOWNERS files in the repodefault: ['**/CODEOWNERS', '!CODEOWNERS', '!node_modules']
-
useMaintainers (
--useMaintainers
): It will usemaintainers
field from package.json to generate codeowners, by default it will use**/package.json
for more details you can invoke:
codeowners-generator --help
You can also define custom configuration in your package:
{
"name": "my-package",
"codeowners-generator": {
"includes": ["**/CODEOWNERS"],
"useMaintainers": true
},
"scripts": {
"codeowners": " codeowners-generator generate"
},
"devDependencies": {
"codeowners-generator": "^1.0.0"
}
}
When the command is invoked it will look for the codeowners-generator
configuration block.
(my-package)$ npm run codeowners
Custom configuration can be defined in many places, for more information check cosmiconfig
See the open issues for a list of proposed features (and known issues).
Contributions are what makes the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.