Add API Endpoint for Branch Creation (#11607)
* [FEATURE] [API] Add Endpoint for Branch Creation Issue: https://github.com/go-gitea/gitea/issues/11376 This commit introduces an API endpoint for branch creation. The added route is POST /repos/{owner}/{repo}/branches. A JSON with the name of the new branch and the name of the old branch is required as parameters. Signed-off-by: Terence Le Huu Phuong <terence@qwasar.io> * Put all the logic into CreateBranch and removed CreateRepoBranch * - Added the error ErrBranchDoesNotExist in error.go - Made the CreateNewBranch function return an errBranchDoesNotExist error when the OldBranch does not exist - Made the CreateBranch API function checks that the repository is not empty and that branch exists. * - Added a resetFixtures helper function in integration_test.go to fine-tune test env resetting - Added api test for CreateBranch - Used resetFixture instead of the more general prepareTestEnv in the repo_branch_test CreateBranch tests * Moved the resetFixtures call inside the loop for APICreateBranch function * Put the prepareTestEnv back in repo_branch_test * fix import order/sort api branch test Co-authored-by: zeripath <art27@cantab.net>
This commit is contained in:
parent
f36104e410
commit
141d52cc0f
9 changed files with 276 additions and 1 deletions
|
@ -71,7 +71,9 @@ func CreateNewBranch(doer *models.User, repo *models.Repository, oldBranchName,
|
|||
}
|
||||
|
||||
if !git.IsBranchExist(repo.RepoPath(), oldBranchName) {
|
||||
return fmt.Errorf("OldBranch: %s does not exist. Cannot create new branch from this", oldBranchName)
|
||||
return models.ErrBranchDoesNotExist{
|
||||
BranchName: oldBranchName,
|
||||
}
|
||||
}
|
||||
|
||||
basePath, err := models.CreateTemporaryPath("branch-maker")
|
||||
|
|
|
@ -160,6 +160,22 @@ type EditRepoOption struct {
|
|||
Archived *bool `json:"archived,omitempty"`
|
||||
}
|
||||
|
||||
// CreateBranchRepoOption options when creating a branch in a repository
|
||||
// swagger:model
|
||||
type CreateBranchRepoOption struct {
|
||||
|
||||
// Name of the branch to create
|
||||
//
|
||||
// required: true
|
||||
// unique: true
|
||||
BranchName string `json:"new_branch_name" binding:"Required;GitRefName;MaxSize(100)"`
|
||||
|
||||
// Name of the old branch to create from
|
||||
//
|
||||
// unique: true
|
||||
OldBranchName string `json:"old_branch_name" binding:"GitRefName;MaxSize(100)"`
|
||||
}
|
||||
|
||||
// TransferRepoOption options when transfer a repository's ownership
|
||||
// swagger:model
|
||||
type TransferRepoOption struct {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue