Shared publicly  - 
 
Online code review system, called "Critic", which is used at Opera Software, has just been released under Apache license. As a long-time user of this awesome tool, I strongly recommend it. Enjoy!

Critic is tightly integrated with Git. Your commits are available for review as soon as you committed them to the Git repository that Critic is watching.

The supposed workflow is as follows:

1. You commit your code into the Critic's Git repository.
2. Depending on how you commit it, the review can be created automatically, or you can go to Critic in your browser, check your commits and create the review manually.
3. As soon as the review is created, the people responsible for reviewing of the changed code (the reviewers) are notified by mail.
4. Reviewers can mark changes as reviewed, raise issues and write notes.
5. Those who don't have rights to review, can register themselves as "watchers". They also receive notifications and can participate in work on issues and notes.
6. When all commits are reviewed and all issues are closed - the review is considered "accepted". Then the code can be committed into an integration branch.

Some notes:

1. Issues can be general, against the whole commit or against particular code lines. If an issue is raised against particular code lines and those lines are fixed in a later commit - the issue is automatically marked as "addressed", but the new commit is unreviewed, so the review is not automatically becoming "accepted".

2. Critic supports "rewriting of history". For example, if your review grows to 50 commits and most of them are small fixups, compilation fixes or comments changes that pollute your history - you can squash those 50 commits into, let's say, 5 commits that make logical sense. Critic then will not then require the reviewers to review the same changes the second time.

3. Critic also supports rebasing your changes onto another branchpoint without requiring to review the same code twice. Exception: if during such rebase you have merge conflicts - they'll need to be reviewed.

4. Critic supports extensions. For example, an extension can be a button which optionally squashes your 50 commits into 1, asks for editing a commit message, rebases the code to a sensible integration commit, commits the code into the needed branch (or several branches), makes a comment in BTS about it, launches a test build and subsequent unit tests, and sends a mail to the integration manager.
6
4
Alexei Khlebnikov's profile photoNhat Van's profile photoStas Fomin's profile photo
5 comments
 
Hi Alexei Khlebnikov,

I'm working with Critic system.
In Critic system, we have multiple repositories for different projects.
When we open "Branches" page, seem that it list all repositories in the dropdown list at the top-right location.

Do we have any configuration to prevent Critic display all repositories?
I want to be able to set permissions, then users only see repositories which they had been granted permissions.

I use AUTHENTICATION_MODE is "host".

Thanks,
Nhat Van
 
Hi Nhat, I never tried to configure permissions for different repositories, I suspect that it is not supported.

As a workaround, you can configure different Critic instances for different repositories, but it sounds like too complicated setup.

Otherwise, you can submit a feature request at https://github.com/jensl/critic/issues . I heard other people expressing interest in this feature, so maybe Jens or someone else will eventually implement it if the demand will become more visible.
 
Hi Alexei, thanks you so much for your reply.
Really, I want users who hadn't been granted permissions then can't checkout source-code from git repository of critic.
Currently, seem that they can see all repositories and checkout source code from all repositories.
Translate
Add a comment...