2021-09-16 14:34:54 +01:00
// Copyright 2021 The Gitea Authors. All rights reserved.
2022-11-27 13:20:29 -05:00
// SPDX-License-Identifier: MIT
2021-09-16 14:34:54 +01:00
package private
import (
"fmt"
"net/http"
2021-12-10 09:27:50 +08:00
repo_model "code.gitea.io/gitea/models/repo"
2021-09-16 14:34:54 +01:00
"code.gitea.io/gitea/modules/git"
2024-03-08 15:30:10 +08:00
"code.gitea.io/gitea/modules/gitrepo"
2021-09-16 14:34:54 +01:00
"code.gitea.io/gitea/modules/private"
2024-02-27 15:12:22 +08:00
gitea_context "code.gitea.io/gitea/services/context"
2024-10-02 04:25:08 +09:00
repo_service "code.gitea.io/gitea/services/repository"
2021-09-16 14:34:54 +01:00
)
// SetDefaultBranch updates the default branch
func SetDefaultBranch ( ctx * gitea_context . PrivateContext ) {
2024-06-19 06:32:45 +08:00
ownerName := ctx . PathParam ( ":owner" )
repoName := ctx . PathParam ( ":repo" )
branch := ctx . PathParam ( ":branch" )
2021-09-16 14:34:54 +01:00
2022-01-19 23:26:57 +00:00
ctx . Repo . Repository . DefaultBranch = branch
2024-03-08 15:30:10 +08:00
if err := gitrepo . SetDefaultBranch ( ctx , ctx . Repo . Repository , ctx . Repo . Repository . DefaultBranch ) ; err != nil {
2021-09-16 14:34:54 +01:00
if ! git . IsErrUnsupportedVersion ( err ) {
ctx . JSON ( http . StatusInternalServerError , private . Response {
Err : fmt . Sprintf ( "Unable to set default branch on repository: %s/%s Error: %v" , ownerName , repoName , err ) ,
} )
return
}
}
2023-09-14 19:09:32 +02:00
if err := repo_model . UpdateDefaultBranch ( ctx , ctx . Repo . Repository ) ; err != nil {
2021-09-16 14:34:54 +01:00
ctx . JSON ( http . StatusInternalServerError , private . Response {
Err : fmt . Sprintf ( "Unable to set default branch on repository: %s/%s Error: %v" , ownerName , repoName , err ) ,
} )
return
}
2024-10-02 04:25:08 +09:00
if err := repo_service . AddRepoToLicenseUpdaterQueue ( & repo_service . LicenseUpdaterOptions {
RepoID : ctx . Repo . Repository . ID ,
} ) ; err != nil {
ctx . JSON ( http . StatusInternalServerError , private . Response {
Err : fmt . Sprintf ( "Unable to set default branch on repository: %s/%s Error: %v" , ownerName , repoName , err ) ,
} )
return
}
2021-12-15 14:59:57 +08:00
ctx . PlainText ( http . StatusOK , "success" )
2021-09-16 14:34:54 +01:00
}