Skip to content

Proof Repository

Kornel edited this page Feb 27, 2021 · 7 revisions

What is Crev?

Crev is a code review system. It allows anyone to review a project or a dependency, and share their review with others. It uses Web of Trust to discover more code reviews and to select trusted reviewers.

Signed code reviews and information about other Crev users are called proofs.

What is Proof Repository

Proof Repository is a publicly available git repository where Crev users publish their reviews and other proofs (documents created by Crev implementation). This way other users can find and download them, and also fetch updates in the future.

Every active Crev user is supposed to create one (or more) Proof Repository for themselves.

How to create a Proof Repository

If you're a GitHub user, fork the template. Other users can fork it manually or create a new, empty git repository anywhere.

Then, create a new identity associated with your repository URL:

cargo install cargo-crev
cargo crev new id --url #https://your_repository_url#
cargo crev publish

The repository must be public and must use HTTPS. You can't use SSH or password-protected URLs here, because this defeats the purpose of globally sharing reviews. cargo-crev will still use SSH for pushing to this repository. After creating an ID with an HTTPS URL you can configure git to use a different URL for pushing with cargo crev repo git remote set-url origin --push <url>.

How can I use Proof Repositories

cargo crev repo fetch url #https://someones_repository_url#

will download the whole Repository to crev's local cache. Use cargo crev fetch all to periodically update all downloaded Proof Repositories

If you know and trust owner of the repository, add it as trusted (this requires cargo-crev 0.17 or later):

cargo crev trust #https://someones_repository_url#

FAQ

Can multiple CrevIDs share the same Proof Repository?

Yes. If you need multiple IDs, you can still publish them under the same URL.

Do I need to fork Proof Repositories of other users?

No. This is unnecessary and doesn't achieve anything.

More help

If anything is unclear, consider asking for help on the crev's gitter channel