Parse GitLab CODEOWNERS files
A GitLab CodeOwners parser for Node.js, written in TypeScript.
It aims to implement all [documented][docs] features of the format, but it's
not quite there yet. Consider this alpha-quality software for now!
``sh`
npm install @gitlab/codeowners
`js
import { parse } from '@gitlab/codeowners';
const codeowners = await parse('./CODEOWNERS');
const owners = codeowners.getOwners('README.md'); // ['@user', '@group']
const ownersDetailed = codeowners.getOwnersDetailed('README.md'); /* =>
[{
owner: '@user',
type: 'directOwner',
section: 'codeowners',
optional: true,
approvalsNeeded: 1,
},{
owner: '@group',
type: 'defaultOwner',
section: 'Maintainers',
optional: false,
approvalsNeeded: 5,
}]
*/
``
This project will use semantic versioning. Particularly,
note item 4:
> Major version zero (0.y.z) is for initial development. Anything MAY change at
> any time. The public API SHOULD NOT be considered stable.
This project will reach 1.0.0 once it supports all features [documented][docs]
by GitLab.
This is not yet a complete implementation of a GitLab CODEOWNERS parser. Here's
a non-exhaustive list of things where are _not_ implemented/supported:
- Sections with duplicate names
- Error handling
- Reporting on parsing errors/file validity
- Probably others!
[docs]: https://docs.gitlab.com/ee/user/project/codeowners