2021-09-16 16:34:54 +03:00
// Copyright 2021 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2021-09-16 16:34:54 +03:00
package private
import (
"fmt"
"net/http"
2021-12-10 04:27:50 +03:00
repo_model "code.gitea.io/gitea/models/repo"
2024-03-08 10:30:10 +03:00
"code.gitea.io/gitea/modules/gitrepo"
2021-09-16 16:34:54 +03:00
"code.gitea.io/gitea/modules/private"
2024-02-27 10:12:22 +03:00
gitea_context "code.gitea.io/gitea/services/context"
2024-10-01 22:25:08 +03:00
repo_service "code.gitea.io/gitea/services/repository"
2021-09-16 16:34:54 +03:00
)
// SetDefaultBranch updates the default branch
func SetDefaultBranch ( ctx * gitea_context . PrivateContext ) {
2024-06-19 01:32:45 +03:00
ownerName := ctx . PathParam ( ":owner" )
repoName := ctx . PathParam ( ":repo" )
branch := ctx . PathParam ( ":branch" )
2021-09-16 16:34:54 +03:00
2022-01-20 02:26:57 +03:00
ctx . Repo . Repository . DefaultBranch = branch
2024-03-08 10:30:10 +03:00
if err := gitrepo . SetDefaultBranch ( ctx , ctx . Repo . Repository , ctx . Repo . Repository . DefaultBranch ) ; err != nil {
2024-11-02 14:20:22 +03: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
2021-09-16 16:34:54 +03:00
}
2023-09-14 20:09:32 +03:00
if err := repo_model . UpdateDefaultBranch ( ctx , ctx . Repo . Repository ) ; err != nil {
2021-09-16 16:34:54 +03: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-01 22:25:08 +03: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 09:59:57 +03:00
ctx . PlainText ( http . StatusOK , "success" )
2021-09-16 16:34:54 +03:00
}