forgejo/models
oliverpool 937b8e8184
fix: release page for empty or non-existing target (#24659)
Backport #24470

Fixes #24145

---

To solve the bug, I added a "computed" `TargetBehind` field to the
`Release` model, which indicates the target branch of a release. This is
particularly useful if the target branch was deleted in the meantime (or
is empty).

I also did a micro-optimization in `calReleaseNumCommitsBehind`. Instead
of checking that a branch exists and then call `GetBranchCommit`, I
immediately call `GetBranchCommit` and handle the `git.ErrNotExist`
error.

This optimization is covered by the added unit test.

_contributed in the context of @forgejo_

(cherry picked from commit cb7ba8969d)
2023-05-16 07:42:22 +02:00
..
actions Fix checks for needs in Actions (#23789) (#23831) 2023-04-03 13:24:45 +08:00
activities Refactor setting.Database.UseXXX to methods (#23354) (#23356) 2023-03-07 20:11:44 +08:00
admin Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
asymkey Refactor the setting to make unit test easier (#22405) 2023-02-20 00:12:01 +08:00
auth Fix 500 error if there is a name conflict when edit authentication source (#23832) (#23852) 2023-03-31 12:53:25 -04:00
avatars Avoid warning for system setting when start up (#23054) (#23116) 2023-02-24 16:46:11 -05:00
db Improve milestone filter on issues page (#22423) (#24440) 2023-04-30 19:01:12 +02:00
dbfs Refactor the setting to make unit test easier (#22405) 2023-02-20 00:12:01 +08:00
fixtures fix: release page for empty or non-existing target (#24659) 2023-05-16 07:42:22 +02:00
git Fix branch protection priority (#24045) (#24061) 2023-04-11 21:07:38 +02:00
issues Refresh the refernce of the closed PR when reopening (#24231) (#24587) 2023-05-08 12:48:06 +02:00
migrations Drop migration for ForeignReference (#23605) (#23666) 2023-03-24 16:57:00 -04:00
organization Fix owner team access mode value in team_unit table (#24224) 2023-04-22 08:53:03 +02:00
packages Use ghost user if package creator does not exist (#23822) (#23915) 2023-04-04 20:37:28 +08:00
perm Rename repo.GetOwner to repo.LoadOwner (#22967) 2023-02-18 20:11:03 +08:00
project Refactor setting.Database.UseXXX to methods (#23354) (#23356) 2023-03-07 20:11:44 +08:00
pull refactor some functions to support ctx as first parameter (#21878) 2022-12-03 10:48:26 +08:00
repo fix: release page for empty or non-existing target (#24659) 2023-05-16 07:42:22 +02:00
secret Secrets storage with SecretKey encrypted (#22142) 2022-12-20 17:07:13 +08:00
system Avoid warning for system setting when start up (#23054) (#23116) 2023-02-24 16:46:11 -05:00
unit Rename actions unit to repo.actions and add docs for it (#23733) (#23881) 2023-04-03 12:54:36 +02:00
unittest Refactor setting.Database.UseXXX to methods (#23354) (#23356) 2023-03-07 20:11:44 +08:00
user [BRANDING] reserve forgejo-actions username 2023-05-10 11:05:22 +02:00
webhook Support system hook API (#14537) 2023-01-28 19:12:10 +01:00
error.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
fixture_generation.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
fixture_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
main_test.go Refactor the setting to make unit test easier (#22405) 2023-02-20 00:12:01 +08:00
migrate.go Check primary keys for all tables and drop ForeignReference (#21721) 2022-12-23 19:35:43 +08:00
migrate_test.go Check primary keys for all tables and drop ForeignReference (#21721) 2022-12-23 19:35:43 +08:00
org.go refactor some functions to support ctx as first parameter (#21878) 2022-12-03 10:48:26 +08:00
org_team.go Remove org users who belong to no teams (#24247) (#24313) 2023-04-24 22:50:32 -04:00
org_team_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
org_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo.go Avoid warning for system setting when start up (#23054) (#23116) 2023-02-24 16:46:11 -05:00
repo_collaboration.go refactor some functions to support ctx as first parameter (#21878) 2022-12-03 10:48:26 +08:00
repo_collaboration_test.go Rename repo.GetOwner to repo.LoadOwner (#22967) 2023-02-18 20:11:03 +08:00
repo_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_transfer.go Always reuse transaction (#22362) 2023-01-08 09:34:58 +08:00
repo_transfer_test.go Rename almost all Ctx functions (#22071) 2022-12-10 10:46:31 +08:00