mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-28 15:37:35 +00:00
193e04c43b
Backport #26664 by @CaiCandong
> ### Description
> If a new branch is pushed, and the repository has a rule that would
require signed commits for the new branch, the commit is rejected with a
500 error regardless of whether it's signed.
>
> When pushing a new branch, the "old" commit is the empty ID
(0000000000000000000000000000000000000000). verifyCommits has no
provision for this and passes an invalid commit range to git rev-list.
Prior to 1.19 this wasn't an issue because only pre-existing individual
branches could be protected.
>
> I was able to reproduce with
[try.gitea.io/CraigTest/test](https://try.gitea.io/CraigTest/test),
which is set up with a blanket rule to require commits on all branches.
Fix #25565
Very thanks to @Craig-Holmquist-NTI for reporting the bug and suggesting
an valid solution!
Co-authored-by: CaiCandong <50507092+CaiCandong@users.noreply.github.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
(cherry picked from commit
|
||
---|---|---|
.. | ||
access.yml | ||
access_token.yml | ||
action.yml | ||
action_run.yml | ||
action_run_job.yml | ||
action_task.yml | ||
attachment.yml | ||
collaboration.yml | ||
comment.yml | ||
commit_status.yml | ||
commit_status_index.yml | ||
deleted_branch.yml | ||
deploy_key.yml | ||
email_address.yml | ||
external_login_user.yml | ||
follow.yml | ||
forgejo_blocked_user.yml | ||
gpg_key.yml | ||
gpg_key_import.yml | ||
hook_task.yml | ||
issue.yml | ||
issue_assignees.yml | ||
issue_index.yml | ||
issue_label.yml | ||
issue_user.yml | ||
issue_watch.yml | ||
label.yml | ||
lfs_meta_object.yml | ||
login_source.yml | ||
milestone.yml | ||
mirror.yml | ||
notice.yml | ||
notification.yml | ||
oauth2_application.yml | ||
oauth2_authorization_code.yml | ||
oauth2_grant.yml | ||
org_user.yml | ||
project.yml | ||
project_board.yml | ||
project_issue.yml | ||
protected_branch.yml | ||
public_key.yml | ||
pull_request.yml | ||
reaction.yml | ||
release.yml | ||
renamed_branch.yml | ||
repo_archiver.yml | ||
repo_indexer_status.yml | ||
repo_redirect.yml | ||
repo_topic.yml | ||
repo_transfer.yml | ||
repo_unit.yml | ||
repository.yml | ||
review.yml | ||
star.yml | ||
stopwatch.yml | ||
system_setting.yml | ||
team.yml | ||
team_repo.yml | ||
team_unit.yml | ||
team_user.yml | ||
topic.yml | ||
tracked_time.yml | ||
two_factor.yml | ||
user.yml | ||
user_open_id.yml | ||
user_redirect.yml | ||
watch.yml | ||
webauthn_credential.yml | ||
webhook.yml |