Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bkeepers/owners
a human and machine readable format that specifies who is responsible for maintaining a project
https://github.com/bkeepers/owners
Last synced: 18 days ago
JSON representation
a human and machine readable format that specifies who is responsible for maintaining a project
- Host: GitHub
- URL: https://github.com/bkeepers/owners
- Owner: bkeepers
- License: mit
- Created: 2015-06-25T22:05:55.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-09-27T14:32:28.000Z (about 7 years ago)
- Last Synced: 2024-10-03T23:21:21.675Z (about 1 month ago)
- Language: Ruby
- Homepage:
- Size: 23.4 KB
- Stars: 66
- Watchers: 5
- Forks: 8
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# `OWNERS` files
Knowing who owns a project or piece of code is often tribal knowledge, which makes it difficult to know who to ask for help, feedback, or review. `OWNERS` files specify who is responsible for maintaining a project or specific files in a project, and may be used to notify maintainers of modifications or to enforce approval in reviews.
For example:
```
$ cat OWNERS
# Specify owners by email address.
[email protected]# …or GitHub username
@username# …or GitHub team
@org/team# …and even limit to specific paths
@org/js *.js
@org/legal LICENSE*
```## `OWNERS` file format
The syntax of the `OWNERS` file is, roughly:
```
lines := (\s* line? \s* "\n")*line := directive | comment
directive := "set noparent"
| identifier (\s* glob)*
| "*"identifier := email_address
| username
| teamusername := @[a-zA-Z0-9-]+
team := @[a-zA-Z0-9-]+/[a-zA-Z0-9-]+
glob := [a-zA-Z0-9_-*?]+
comment := "#" [^"\n"]*
```A `username` is a GitHub username (e.g. @bkeepers). Email addresses must follow the `[email protected]` short form. The specified `user` is considered an "OWNER" for all files in the directory. A `*` (wildcard) indicates that all committers are owners.
If a glob is specified, the line only applies to files in that directory that match the filename glob. Filename globs follow the simple UNIX shell conventions (`*` and `?` are supported). Relative and absolute paths are not allowed (globs may only refer to the files in the current directory).
If the `set noparent` directive used, then only entries in this `OWNERS` file apply to files in this directory; if the `set noparent` directive is not used, then entries in `OWNERS` files in parent directories also apply (up until a `set noparent` is encountered).
## Who should be in an `OWNERS` file?
Only the people who are actively investing energy in the improvement of a directory should be listed as `OWNERS`. `OWNERS` are responsible for ensuring the quality of code in their directory remains high and improves over time.
## Attribution
This specification is inspired by [Chrome's OWNERS files](https://www.chromium.org/developers/owners-files).