mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-12 10:39:38 -05:00
RFC: Refactoring the review system #4311
Open
opened 2025-11-02 05:45:33 -06:00 by GiteaMirror
·
16 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
No Label
type/proposal
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#4311
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @3l73 on GitHub (Nov 14, 2019).
RFC: Refocturing the review system
This issue I an request for comment and about changing the whole review system.
A colleague of mine recommend to introduce rebuild the review system as a new feature in it's own. This allows use to use current infrastructure and setup a structure in depend from the current code.
Since I will follow his recommendation, some terms will differ from what you currently know.
Let's talk about audit's.
A pull request can contain one or more of it. An audit is done by an author and contains a list of audit tasks.
The audit it self can reject or agree the pull request.
An audit task can be connect to a change done by the developer.
It contains comments and a status:
Done? True/False
As an audit must not connect to an technical change, this allows the developer starting general diskussions about the code.
If a task is completed, the author of the audit mark it as completed or done.
The Administrator, can mark all task as done and overwrite the authors decision.
If an audit contains task that are not marked as done, it is not fulfilled.
As a consequence the pull request could not merged into the selected branch.
An audit can created by a human person or a bot/hook.
For a example a bot could check the "code smell" and block the pull request.
In this case the bot will update the audit after all pull request.
The administrator can decide what audit have to e fulfilled in order to merge, and how many audit's have to be done and completed.
As you see, additional information is required, in order to decide if an audit task is required or optional.
What additional should be checked?
What is your opinion?
Have you ideas what should be extended?
Features that need to be done
Features that are nice to have
Features to be discussed
@saitho commented on GitHub (Nov 14, 2019):
cc @jonasfranz
@jonasfranz commented on GitHub (Nov 14, 2019):
What's the difference between the current review system and the audits? If I understood correctly, you want to add a feature to mark change requests as done?
@3l73 commented on GitHub (Nov 14, 2019):
There are some differences:
I had a look at the source of the current system, so most of the points are more connected to the internal aspect.
The system not really change, but allows some interesting things.
Call it an audit instead of a review comes from a discussion with a colleague.
His thoughts goes into direction to introduce the feature and switch it at a point when it is functional
@davidsvantesson commented on GitHub (Nov 14, 2019):
I work in an industry with a lot of quality standards, so I think I get some of the points you are making. Regarding the naming (review, audit or something else) I think that has very little with the tool to do, you can call it what you like.
Some comments:
Is this issue inspired by Gerrit? (A tool I dislike but for other reasons). They have something called review labels and you can add custom review labels. It allows to set different values depending on label and you can configure different rules for disabling merge. Could that fulfill what you are looking for?
The review system needs to be improved, for sure.
@3l73 commented on GitHub (Nov 15, 2019):
The name audit was used as a placeholder.
If you call it review it is fine too. As you say, it is just a word.
Since I have no experience with Gerrit, I can say it is not inspired by it.
Template can be an option.
There were some situations, that leads a colleague and me to place a comment and start general discussions.
I am personally not a friend having a discussion over a review tool. A direct talk is the most best way in this cases. Though there are times where it is not possible to have a personal discussion, so leave a comment and block the merge would be a nice feature.
Currently it is possible to merge a pull request even if there is a denied review.
In some cases this is good if a reviewer is not possible to agree because of vacation or other circumstances.
A solution could be that the administrator accept the review or he can assing it to another developer who can mark the other review as accepted.
In the end a pull request should not be merged if some reviews are not accepted.
What kind of regulations should applied on a project should decided by the owner or admin of the project.
@davidsvantesson commented on GitHub (Nov 15, 2019):
Apparently. I don't think that is good behavior, should at least be a setting.
@3l73 commented on GitHub (Nov 18, 2019):
I would collect all ideas at the top if this issue, so that they are located at on place.
@gerdemann commented on GitHub (Jan 16, 2020):
I would definitely have two more features that I miss a lot at the moment:
@davidsvantesson commented on GitHub (Jan 16, 2020):
Now (coming release) there is a setting to block merge if there are rejected reviews.
@3l73 commented on GitHub (Jan 17, 2020):
I like that feature.
May be we need a role to allow override a rejected Pull-Request in case the developer is not able to agree the Pull-Request (illness, vacation or what ever).
By the way, I miss the "Delete branch after merge" feature.
@6543 commented on GitHub (Jan 18, 2020):
@3l73 to the new feature RepoAdmin is able to merge eafen review is not complete or status checks failed ...
@6543 commented on GitHub (Jan 18, 2020):
@3l73 and for the other things ... the easiest way is a ticket system trigerd by webhook witch set status check to false until tasks are completed
@davidsvantesson commented on GitHub (Jan 18, 2020):
@6543 How would you do the ticket system?
Maybe there should be a possibility to make issue comments editable by other users (currently only writer of comment and repo admin can edit).
@6543 commented on GitHub (Jan 18, 2020):
@davidsvantesson
dont think so ... could be abused
I dont know a lot of ticket systems and its integration ... for example zammad has webhooks ...
And like CI status use tiket status ...
@davidsvantesson commented on GitHub (Jan 18, 2020):
I don't mean anyone can edit anytime, there must be some way to set that.
The problem is today the issue or pull creator makes the first post with maybe a list or something, and noone else can edit that. There could for example be a way to set "make editable by others", so if you have a review protocol other persons can edit while the review procedes.
@6543 commented on GitHub (Jan 18, 2020):
@davidsvantesson like githubs
[ ] Allow Maintainer to editoption on pulls?