CLI¶
Repo-review has a CLI interface.
/home/docs/.asdf/installs/python/3.12.0/bin/python: No module named repo_review
Remote inputs¶
You can input a local directory, or you can input a GitHub repository
via gh:org/repo@branch
. This will use the Web API and won’t download
the whole repository. If the root of a package is not in the repository root,
pass --package-dir <path>
.
Output formats¶
There are four output formats; rich
produces great terminal output, svg
produces an SVG based on the rich output, html
produces a custom HTML report,
and json
produces a output that can be processed easily. To make it easier to
support tools like GitHub Actions, there is also a --stderr FORMAT
output
option that produces the selected format on stderr as well, and disables
producing terminal escape codes on stdout, even if FORCE_COLOR
is set. This
was designed to allow you to redirect stdout to a file, and still get a report
in the logs.
JSON output looks like this:
{
"status": "passed",
"families": {
"pyproject": {},
"general": {}
},
"checks": {
"PY001": {
"family": "general",
"description": "Has a pyproject.toml",
"result": true,
"err_msg": "",
"url": ""
},
"PY002": {
"family": "general",
"description": "Has a README.(md|rst) file",
"result": true,
"err_msg": "",
"url": ""
}
}
}
HTML format is designed to look good in a markdown editor, like GitHub’s actions output or when pasted into a GitHub issue or comment.
Limiting output¶
By default, all checks are printed out. You can remove the passing checks with
--show=errskip
, or the skipped and passing checks with --show=err
. Headings
for families with custom descriptions will still be shown.
Added in version 0.10.
Multiple repos¶
You can input multiple repos. If you have more than one repo as input, the output formats change slightly:
Rich/SVG add a banner on the top of each with the folder name of the repo.
HTML puts each repo in a
<details>
block, with the repo folder name and error count.JSON adds an out dictionary keyed by the repo folder names.
To make processing a mixed collection of repositories, repo-review will look at the folder a pyproject.toml
is in
if you pass it. That allows this idiom:
$ repo-review */pyproject.toml
to run on all repos that have a pyproject.toml, and skip ones that don’t.
If you’d like a way to get a collection of repos quickly, see all-repos.
Added in version 0.10.