2 # ABSTRACT: A tool for managing CODEOWNERS files
3 # PODNAME: git-codeowners
7 git-codeowners [--version|--help|--manual]
9 git-codeowners [show] [--format FORMAT] [--[no-]project] [PATH...]
11 git-codeowners owners [--format FORMAT] [--pattern PATTERN]
13 git-codeowners patterns [--format FORMAT] [--owner OWNER]
15 git-codeowners create|update [REPO_DIRPATH|CODEOWNERS_FILEPATH]
17 # enable bash shell completion
18 eval "$(git-codeowners --shell-completion)"
22 F<git-codeowners> is yet another CLI tool for managing F<CODEOWNERS> files in
23 git repos. In particular, it can be used to quickly find out who owns
24 a particular file in a monorepo (or monolith).
26 B<THIS IS EXPERIMENTAL!> The interface of this tool and its modules will
27 probably change as I field test some things. Feedback welcome.
33 Print the program name and version to C<STDOUT>, and exit.
39 Print the synopsis to C<STDOUT>, and exit.
43 You can also use C<--manual> to print the full documentation.
47 Specify the output format to use. See L</FORMAT>.
51 =head2 --shell-completion
53 eval "$(lintany --shell-completion)"
55 Print shell code to enable completion to C<STDOUT>, and exit.
57 Does not yet support Zsh...
63 git-codeowners [show] [--format FORMAT] [--[no-]project] [PATH...]
65 Show owners of one or more files in a repo.
69 git-codeowners owners [--format FORMAT] [--pattern PATTERN]
73 git-codeowners patterns [--format FORMAT] [--owner OWNER]
77 git-codeowners create [REPO_DIRPATH|CODEOWNERS_FILEPATH]
79 Create a new F<CODEOWNERS> file for a specified repo (or current directory).
83 git-codeowners update [REPO_DIRPATH|CODEOWNERS_FILEPATH]
85 Update the "unowned" list of an existing F<CODEOWNERS> file for a specified
86 repo (or current directory).
90 The C<--format> argument can be one of:
93 * C<csv> - Comma-separated values (requires L<Text::CSV>)
94 * C<json:pretty> - Pretty JSON (requires L<JSON::MaybeXS>)
95 * C<json> - JSON (requires L<JSON::MaybeXS>)
96 * C<table> - Table (requires L<Text::Table>)
97 * C<tsv> - Tab-separated values (requires L<Text::CSV>)
98 * C<yaml> - YAML (requires L<YAML>)
99 * C<FORMAT> - Custom format (see below)
101 You can specify a custom format using printf-like format sequences.
105 # FATPACK - Do not remove this line.
112 our $VERSION = '9999.999'; # VERSION
114 App::Codeowners->main(@ARGV);