NAME
git-codeowners - A tool for managing CODEOWNERS files
VERSION
version 0.41
SYNOPSIS
git-codeowners [--version|--help|--manual]
git-codeowners [show] [--format FORMAT] [--[no-]project] [PATH...]
git-codeowners owners [--format FORMAT] [--pattern PATTERN]
git-codeowners patterns [--format FORMAT] [--owner OWNER]
git-codeowners create|update [REPO_DIRPATH|CODEOWNERS_FILEPATH]
# enable bash shell completion
eval "$(git-codeowners --shell-completion)"
DESCRIPTION
git-codeowners is yet another CLI tool for managing CODEOWNERS files in git repos. In particular, it can be used to quickly find out who owns a particular file in a monorepo (or monolith).
THIS IS EXPERIMENTAL! The interface of this tool and its modules will probably change as I field test some things. Feedback welcome.
INSTALL
There are several ways to install git-codeowners to your system.
from CPAN
You can install git-codeowners using cpanm:
cpanm App::Codeowners
from GitHub
You can also choose to download git-codeowners as a self-contained executable:
curl -OL https://raw.githubusercontent.com/chazmcgarvey/git-codeowners/solo/git-codeowners
chmod +x git-codeowners
To hack on the code, clone the repo instead:
git clone https://github.com/chazmcgarvey/git-codeowners.git
cd git-codeowners
make bootstrap # installs dependencies; requires cpanm
OPTIONS
--version
Print the program name and version to STDOUT
, and exit.
Alias: -v
--help
Print the synopsis to STDOUT
, and exit.
Alias: -h
You can also use --manual
to print the full documentation.
--color
Enable colorized output.
Color is ON by default on terminals; use --no-color
to disable. Some environment variables may also alter the behavior of colorizing output:
NO_COLOR
- Set to disable color (same as--no-color
).COLOR_DEPTH
- Set the number of supportable colors (e.g. 0, 16, 256, 16777216).
--format
Specify the output format to use. See "FORMAT".
Alias: -f
--shell-completion
eval "$(lintany --shell-completion)"
Print shell code to enable completion to STDOUT
, and exit.
Does not yet support Zsh...
COMMANDS
show
git-codeowners [show] [--format FORMAT] [--[no-]project] [PATH...]
Show owners of one or more files in a repo.
owners
git-codeowners owners [--format FORMAT] [--pattern PATTERN]
patterns
git-codeowners patterns [--format FORMAT] [--owner OWNER]
create
git-codeowners create [REPO_DIRPATH|CODEOWNERS_FILEPATH]
Create a new CODEOWNERS file for a specified repo (or current directory).
update
git-codeowners update [REPO_DIRPATH|CODEOWNERS_FILEPATH]
Update the "unowned" list of an existing CODEOWNERS file for a specified repo (or current directory).
FORMAT
The --format
argument can be one of:
csv
- Comma-separated values (requires Text::CSV)json:pretty
- Pretty JSON (requires JSON::MaybeXS)json
- JSON (requires JSON::MaybeXS)table
- Table (requires Text::Table::Any)tsv
- Tab-separated values (requires Text::CSV)yaml
- YAML (requires YAML)FORMAT
- Custom format (see below)
Custom
You can specify a custom format using printf-like format sequences. These are the items that can be substituted:
%F
- Filename%O
- Owner or owners%P
- Project%T
- Pattern%n
- newline%t
- tab%%
- percent sign
The syntax also allows padding and some filters. Examples:
git-codeowners show -f ' * %-50F %O' # default for "show"
git-codeowners show -f '%{quote}F,%{quote}O' # ad hoc CSV
git-codeowners patterns -f '--> %{color:0c0}T' # whatever...
Available filters:
quote
- Quote the replacement string.color:FFFFFF
- Colorize the replacement string (if color is ON).nocolor
- Do not colorize replacement string.
Table
Table formatting can be done by one of several different modules, each with its own features and bugs. The default module is Text::Table::Tiny, but this can be overridden using the PERL_TEXT_TABLE
environment variable if desired, like this:
PERL_TEXT_TABLE=Text::Table::HTML git-codeowners -f table
The list of available modules is at "@BACKENDS" in Text::Table::Any.
BUGS
Please report any bugs or feature requests on the bugtracker website https://github.com/chazmcgarvey/git-codeowners/issues
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
AUTHOR
Charles McGarvey <chazmcgarvey@brokenzipper.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2019 by Charles McGarvey.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.