NAME git-codeowners - A tool for managing CODEOWNERS files VERSION version 0.40 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 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.