Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix verifyCommits error when push a new branch (#26664) #26810

Merged
merged 2 commits into from
Aug 31, 2023

Conversation

GiteaBot
Copy link
Contributor

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, 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!

> ### 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 go-gitea#25565
Very thanks to @Craig-Holmquist-NTI for reporting the bug and suggesting
an valid solution!

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
@GiteaBot GiteaBot added this to the 1.20.4 milestone Aug 30, 2023
@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label Aug 30, 2023
@pull-request-size pull-request-size bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Aug 30, 2023
@GiteaBot GiteaBot added lgtm/need 1 This PR needs approval from one additional maintainer to be merged. and removed lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. labels Aug 31, 2023
Copy link
Member

@puni9869 puni9869 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's roll 🚀

@GiteaBot GiteaBot added lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels Aug 31, 2023
@puni9869 puni9869 added the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Aug 31, 2023
@silverwind silverwind enabled auto-merge (squash) August 31, 2023 15:18
@silverwind silverwind merged commit 93c36f3 into go-gitea:release/v1.20 Aug 31, 2023
20 checks passed
@GiteaBot GiteaBot removed the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Aug 31, 2023
nrdufour added a commit to nrdufour/home-ops that referenced this pull request Sep 8, 2023
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker.io/gitea/gitea](https://github.com/go-gitea/gitea) | patch | `1.20.3` -> `1.20.4` |

---

### Release Notes

<details>
<summary>go-gitea/gitea (docker.io/gitea/gitea)</summary>

### [`v1.20.4`](https://github.com/go-gitea/gitea/blob/HEAD/CHANGELOG.md#1204---2023-09-08)

[Compare Source](go-gitea/gitea@v1.20.3...v1.20.4)

-   SECURITY
    -   Check blocklist for emails when adding them to account ([#&#8203;26812](go-gitea/gitea#26812)) ([#&#8203;26831](go-gitea/gitea#26831))
-   ENHANCEMENTS
    -   Add `branch_filter` to hooks API endpoints ([#&#8203;26599](go-gitea/gitea#26599)) ([#&#8203;26632](go-gitea/gitea#26632))
    -   Fix incorrect "tabindex" attributes ([#&#8203;26733](go-gitea/gitea#26733)) ([#&#8203;26734](go-gitea/gitea#26734))
    -   Use line-height: normal by default ([#&#8203;26635](go-gitea/gitea#26635)) ([#&#8203;26708](go-gitea/gitea#26708))
    -   Fix unable to display individual-level project ([#&#8203;26198](go-gitea/gitea#26198)) ([#&#8203;26636](go-gitea/gitea#26636))
-   BUGFIXES
    -   Fix wrong review requested number ([#&#8203;26784](go-gitea/gitea#26784)) ([#&#8203;26880](go-gitea/gitea#26880))
    -   Avoid double-unescaping of form value ([#&#8203;26853](go-gitea/gitea#26853)) ([#&#8203;26863](go-gitea/gitea#26863))
    -   Redirect from `{repo}/issues/new` to `{repo}/issues/new/choose` when blank issues are disabled ([#&#8203;26813](go-gitea/gitea#26813)) ([#&#8203;26847](go-gitea/gitea#26847))
    -   Sync tags when adopting repos ([#&#8203;26816](go-gitea/gitea#26816)) ([#&#8203;26834](go-gitea/gitea#26834))
    -   Fix verifyCommits error when push a new branch ([#&#8203;26664](go-gitea/gitea#26664)) ([#&#8203;26810](go-gitea/gitea#26810))
    -   Include the GITHUB_TOKEN/GITEA_TOKEN secret for fork pull requests ([#&#8203;26759](go-gitea/gitea#26759)) ([#&#8203;26806](go-gitea/gitea#26806))
    -   Fix some slice append usages ([#&#8203;26778](go-gitea/gitea#26778)) ([#&#8203;26798](go-gitea/gitea#26798))
    -   Add fix incorrect can_create_org_repo for org owner team ([#&#8203;26683](go-gitea/gitea#26683)) ([#&#8203;26791](go-gitea/gitea#26791))
    -   Fix bug for ctx usage ([#&#8203;26763](go-gitea/gitea#26763))
    -   Make issue template field template access correct template data ([#&#8203;26698](go-gitea/gitea#26698)) ([#&#8203;26709](go-gitea/gitea#26709))
    -   Use correct minio error ([#&#8203;26634](go-gitea/gitea#26634)) ([#&#8203;26639](go-gitea/gitea#26639))
    -   Ignore the trailing slashes when comparing oauth2 redirect_uri ([#&#8203;26597](go-gitea/gitea#26597)) ([#&#8203;26618](go-gitea/gitea#26618))
    -   Set errwriter for urfave/cli v1 ([#&#8203;26616](go-gitea/gitea#26616))
    -   Fix reopen logic for agit flow pull request ([#&#8203;26399](go-gitea/gitea#26399)) ([#&#8203;26613](go-gitea/gitea#26613))
    -   Fix context filter has no effect in dashboard ([#&#8203;26695](go-gitea/gitea#26695)) ([#&#8203;26811](go-gitea/gitea#26811))
    -   Fix being unable to use a repo that prohibits accepting PRs as a PR source. ([#&#8203;26785](go-gitea/gitea#26785)) ([#&#8203;26790](go-gitea/gitea#26790))
    -   Fix Page Not Found error ([#&#8203;26768](go-gitea/gitea#26768))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yMy4yIiwidXBkYXRlZEluVmVyIjoiMzYuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Reviewed-on: https://git.home/nrdufour/home-ops/pulls/79
Co-authored-by: Renovate <renovate@ptinem.io>
Co-committed-by: Renovate <renovate@ptinem.io>
@go-gitea go-gitea locked as resolved and limited conversation to collaborators Nov 29, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. type/bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants