mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-10 11:05:50 +00:00
Fix API not persisting pull request unit config when has_pull_requests is not set (#36718)
The `PATCH /api/v1/repos/{owner}/{repo}` endpoint silently ignores pull
request config fields (like `default_delete_branch_after_merge`,
`allow_squash_merge`, etc.) unless `has_pull_requests: true` is also
included in the request body. This is because the entire PR unit config
block was gated behind `if opts.HasPullRequests != nil`.
This PR restructures the logic so that PR config options are applied
whenever the pull request unit already exists on the repo, without
requiring `has_pull_requests` to be explicitly set. A new unit is only
created when `has_pull_requests: true` is explicitly sent.
Fixes https://github.com/go-gitea/gitea/issues/36466
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Giteabot <teabot@gitea.io>
This commit is contained in:
@@ -67,3 +67,17 @@ func ParseBool(s string) Option[bool] {
|
||||
}
|
||||
return Some(v)
|
||||
}
|
||||
|
||||
func AssignPtrValue[T comparable](changed *bool, target, src *T) {
|
||||
if src != nil && *src != *target {
|
||||
*target = *src
|
||||
*changed = true
|
||||
}
|
||||
}
|
||||
|
||||
func AssignPtrString[TO, FROM ~string](changed *bool, target *TO, src *FROM) {
|
||||
if src != nil && string(*src) != string(*target) {
|
||||
*target = TO(*src)
|
||||
*changed = true
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user