]> source.dussan.org Git - gitea.git/commit
Add commits dropdown in PR files view and allow commit by commit review (#25528)
authorsebastian-sauer <sauer.sebastian@gmail.com>
Fri, 28 Jul 2023 19:18:12 +0000 (21:18 +0200)
committerGitHub <noreply@github.com>
Fri, 28 Jul 2023 19:18:12 +0000 (21:18 +0200)
commit55532061c83d38d33ef48bdc5eeac0f652844e8a
treed6d21c0afb8b6df197e6eb618274dd16948f3753
parent4971a1054317ae68b1eb59a3dc30f61c7503dadc
Add commits dropdown in PR files view and allow commit by commit review (#25528)

This PR adds a new dropdown to select a commit or a commit range
(shift-click like github) of a Pull Request.
After selection of a commit only the changes of this commit will be shown.
When selecting a range of commits the diff of this range is shown.

This allows to review a PR commit by commit or by viewing only commit ranges.
The "Show changes since your last review" mechanism github uses is implemented, too.
When reviewing a single commit or a commit range the "Viewed" functionality is disabled.

## Screenshots

### The commit dropdown

![image](https://github.com/go-gitea/gitea/assets/51889757/0db3ae62-1272-436c-be64-4730c5d611e3)

### Selecting a commit range

![image](https://github.com/go-gitea/gitea/assets/51889757/ad81eedb-8437-42b0-8073-2d940c25fe8f)

### Show changes of a single commit only

![image](https://github.com/go-gitea/gitea/assets/51889757/6b1a113b-73ef-4ecc-adf6-bc2340bb8f97)

### Show changes of a commit range

![image](https://github.com/go-gitea/gitea/assets/51889757/6401b358-cd66-4c09-8baa-6cf6177f23a7)

Fixes https://github.com/go-gitea/gitea/issues/20989
Fixes https://github.com/go-gitea/gitea/issues/19263

---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
71 files changed:
models/fixtures/issue.yml
models/fixtures/pull_request.yml
models/fixtures/repo_unit.yml
models/fixtures/repository.yml
models/fixtures/user.yml
models/issues/issue_test.go
models/issues/review_list.go
models/repo/repo_list_test.go
options/locale/locale_en-US.ini
routers/web/repo/pull.go
routers/web/user/home_test.go
routers/web/web.go
services/pull/pull.go
templates/repo/diff/box.tmpl
templates/repo/diff/new_review.tmpl
tests/gitea-repositories-meta/user2/commitsonpr.git/HEAD [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/config [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/description [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/info/exclude [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/info/refs [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/logs/HEAD [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/logs/refs/heads/branch1 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/logs/refs/heads/main [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/0a/6dda431c72a6a4aac05b98e319972a1a55e01c [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/0c/396a509b64fd4e2e55649d100b86e8b96cc0e5 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/10/0ef49565829e7bd83057d2dab88f58b00db831 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/10/9ab1c0b84e088d7edcf018379518b49361f285 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/19/78192d98bb1b65e11c2cf37da854fbf94bffd6 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/1e/67d753ac1f9097eff26f9d33eb80182344b72c [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/23/576dd018294e476c06e569b6b0f170d0558705 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/28/16bffda09c0f23775ea4be279de004d28a3803 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/35/f03b5e176ee6d24c86b5cca7009a5b0ba2a026 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/38/cdad2e40c989aabab3f2d0a27faf0f7be617d5 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/3e/64625bd6eb5bcba69ac97de6c8f507402df861 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/4b/860706d3eec5858324d4ba00db0423ca4cbf50 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/4c/a8bcaf27e28504df7bf996819665986b01c847 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/52/84ca7f5757816e67c098224a8367aa2544222d [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/53/9a24812705f77484568e6ad7db84764c1903c8 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/70/8605e8984e7fb9be58818e0e6d9f21bcefd63e [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/74/7ddb3506a4fa04a7747808eb56ae16f9e933dc [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/7e/d1d42eda9110676d5c3a7721965d6ed1afe83c [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/81/1d46c7e518f4f180afb862c0db5cb8c80529ce [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/83/2d33e438d2b4a86fba81cb67b32d1d61a828cb [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/83/7d5c8125633d7d258f93b998e867eab0145520 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/87/cdc1333f5f117a92f3cef78ebe0301114b3610 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/92/70b08497106eaa65fce8aa91f37c4780f76909 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/96/cef4a7b72b3c208340ae6f0cf55a93e9077c93 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/97/0c5deb117526983f554eaaa1b59102d3e3e0f7 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/c5/626fc9eff57eb1bb7b796b01d4d0f2f3f792a2 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/c7/04db5794097441aa2d9dd834d5b7e2f8f08108 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/cb/ff181af4c9c7fee3cf6c106699e07d9a3f54e6 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/d1/8e427f4011e74e96a31823c938be26eebab53b [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/d2/5795e38fbc1b4839697e834b957d61c83d994f [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/d6/6f456f0813a5841fbc03e5f1c47304dc675695 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/e1/7e0fa20f3d2125916f2fb2f51f19240678cb83 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/ec/d9fdda5c814055ee619513e1c388ba1bbcb280 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/objects/info/packs [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/refs/heads/branch1 [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/refs/heads/main [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/refs/heads/master [new file with mode: 0644]
tests/gitea-repositories-meta/user2/commitsonpr.git/refs/pull/1/head [new file with mode: 0644]
tests/integration/api_issue_test.go
tests/integration/api_nodeinfo_test.go
tests/integration/api_repo_test.go
tests/integration/issue_test.go
tests/integration/pull_diff_test.go [new file with mode: 0644]
web_src/css/base.css
web_src/js/components/DiffCommitSelector.vue [new file with mode: 0644]
web_src/js/features/repo-diff-commitselect.js [new file with mode: 0644]
web_src/js/features/repo-diff.js
web_src/js/svg.js