mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-27 14:13:52 +03:00
13ca6c14f1
This commit allows chaning default branch update style through global and repository settings. The setting affects "Update branch" button in PR view (button shows when some commits are ahead of master branch). When default update style is set to "rebase", dropdown button updates branch by rebase by default. When update style is set to other value, dropdown button updates branch by merge. Any of these actions may be selected using dropdown in any case. Signed-off-by: George Bartolomey <george@bh4.ru>
45 lines
1.5 KiB
Go
45 lines
1.5 KiB
Go
// Copyright 2021 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package repo
|
|
|
|
import (
|
|
"context"
|
|
|
|
"code.gitea.io/gitea/models/db"
|
|
)
|
|
|
|
// MergeStyle represents the approach to merge commits into base branch.
|
|
type MergeStyle string
|
|
|
|
const (
|
|
// MergeStyleMerge create merge commit
|
|
MergeStyleMerge MergeStyle = "merge"
|
|
// MergeStyleRebase rebase before merging, and fast-forward
|
|
MergeStyleRebase MergeStyle = "rebase"
|
|
// MergeStyleRebaseMerge rebase before merging with merge commit (--no-ff)
|
|
MergeStyleRebaseMerge MergeStyle = "rebase-merge"
|
|
// MergeStyleSquash squash commits into single commit before merging
|
|
MergeStyleSquash MergeStyle = "squash"
|
|
// MergeStyleFastForwardOnly fast-forward merge if possible, otherwise fail
|
|
MergeStyleFastForwardOnly MergeStyle = "fast-forward-only"
|
|
// MergeStyleManuallyMerged pr has been merged manually, just mark it as merged directly
|
|
MergeStyleManuallyMerged MergeStyle = "manually-merged"
|
|
// MergeStyleRebaseUpdate not a merge style, used to update pull head by rebase
|
|
MergeStyleRebaseUpdate MergeStyle = "rebase-update-only"
|
|
)
|
|
|
|
type UpdateStyle string
|
|
|
|
const (
|
|
// UpdateStyleMerge create merge commit to update
|
|
UpdateStyleMerge UpdateStyle = "merge"
|
|
// UpdateStyleRebase rebase to update
|
|
UpdateStyleRebase UpdateStyle = "rebase"
|
|
)
|
|
|
|
// UpdateDefaultBranch updates the default branch
|
|
func UpdateDefaultBranch(ctx context.Context, repo *Repository) error {
|
|
_, err := db.GetEngine(ctx).ID(repo.ID).Cols("default_branch").Update(repo)
|
|
return err
|
|
}
|