Codeowners
View SourceA pure Elixir parser for the GitHub CODEOWNERS specification.
Installation
The package can be installed by adding codeowners
to your list of dependencies in mix.exs
:
def deps do
[
{:codeowners, "~> 0.2.2"}
]
end
Basic usage
> codeowners = Codeowners.load(".github/CODEOWNERS")
%Codeowners{
path: "/Users/me/project/.github/CODEOWNERS",
root: "/Users/me/project",
rules: [
%Codeowners.Rule{
pattern: "*",
regex: ~r/[^\/]*/,
owners: ["@global-owner1", "@global-owner2"],
line_number: 1
},
%Codeowners.Rule{
pattern: "*.js",
regex: ~r/[^\/]*\.js/,
owners: ["@js-owner"],
line_number: 2
},
...
]
}
> matching_rule = Codeowners.rule_for_path(codeowners, "docs/setup.md")
%Codeowners.Rule{
pattern: "docs/*",
regex: ~r/docs\/[^\/]*\z/,
owners: ["docs@example.com"]
}
Mix task
~/my_project/:$ mix codeowners README.md
Using .github/CODEOWNERS
README.md @my-team
License
MIT License - see the LICENSE file.