Skip to content

Commit 970c690

Browse files
lunnylafriks
authored andcommitted
fix release creation via API (#5076)
* fix release creation via API * fix release create tests
1 parent 0cd8cec commit 970c690

File tree

2 files changed

+98
-2
lines changed

2 files changed

+98
-2
lines changed

models/release.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,9 @@ func createTag(gitRepo *git.Repository, rel *Release) error {
115115
// Only actual create when publish.
116116
if !rel.IsDraft {
117117
if !gitRepo.IsTagExist(rel.TagName) {
118-
commit, err := gitRepo.GetBranchCommit(rel.Target)
118+
commit, err := gitRepo.GetCommit(rel.Target)
119119
if err != nil {
120-
return fmt.Errorf("GetBranchCommit: %v", err)
120+
return fmt.Errorf("GetCommit: %v", err)
121121
}
122122

123123
// Trim '--' prefix to prevent command line argument vulnerability.

models/release_test.go

+96
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
// Copyright 2018 The Gitea Authors. All rights reserved.
2+
// Use of this source code is governed by a MIT-style
3+
// license that can be found in the LICENSE file.
4+
5+
package models
6+
7+
import (
8+
"testing"
9+
10+
"code.gitea.io/git"
11+
12+
"github.com/stretchr/testify/assert"
13+
)
14+
15+
func TestRelease_Create(t *testing.T) {
16+
assert.NoError(t, PrepareTestDatabase())
17+
18+
user := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
19+
repo := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
20+
repoPath := RepoPath(user.Name, repo.Name)
21+
22+
gitRepo, err := git.OpenRepository(repoPath)
23+
assert.NoError(t, err)
24+
25+
assert.NoError(t, CreateRelease(gitRepo, &Release{
26+
RepoID: repo.ID,
27+
PublisherID: user.ID,
28+
TagName: "v0.1",
29+
Target: "master",
30+
Title: "v0.1 is released",
31+
Note: "v0.1 is released",
32+
IsDraft: false,
33+
IsPrerelease: false,
34+
IsTag: false,
35+
}, nil))
36+
37+
assert.NoError(t, CreateRelease(gitRepo, &Release{
38+
RepoID: repo.ID,
39+
PublisherID: user.ID,
40+
TagName: "v0.1.1",
41+
Target: "65f1bf27bc3bf70f64657658635e66094edbcb4d",
42+
Title: "v0.1.1 is released",
43+
Note: "v0.1.1 is released",
44+
IsDraft: false,
45+
IsPrerelease: false,
46+
IsTag: false,
47+
}, nil))
48+
49+
assert.NoError(t, CreateRelease(gitRepo, &Release{
50+
RepoID: repo.ID,
51+
PublisherID: user.ID,
52+
TagName: "v0.1.2",
53+
Target: "65f1bf2",
54+
Title: "v0.1.2 is released",
55+
Note: "v0.1.2 is released",
56+
IsDraft: false,
57+
IsPrerelease: false,
58+
IsTag: false,
59+
}, nil))
60+
61+
assert.NoError(t, CreateRelease(gitRepo, &Release{
62+
RepoID: repo.ID,
63+
PublisherID: user.ID,
64+
TagName: "v0.1.3",
65+
Target: "65f1bf2",
66+
Title: "v0.1.3 is released",
67+
Note: "v0.1.3 is released",
68+
IsDraft: true,
69+
IsPrerelease: false,
70+
IsTag: false,
71+
}, nil))
72+
73+
assert.NoError(t, CreateRelease(gitRepo, &Release{
74+
RepoID: repo.ID,
75+
PublisherID: user.ID,
76+
TagName: "v0.1.4",
77+
Target: "65f1bf2",
78+
Title: "v0.1.4 is released",
79+
Note: "v0.1.4 is released",
80+
IsDraft: false,
81+
IsPrerelease: true,
82+
IsTag: false,
83+
}, nil))
84+
85+
assert.NoError(t, CreateRelease(gitRepo, &Release{
86+
RepoID: repo.ID,
87+
PublisherID: user.ID,
88+
TagName: "v0.1.5",
89+
Target: "65f1bf2",
90+
Title: "v0.1.5 is released",
91+
Note: "v0.1.5 is released",
92+
IsDraft: false,
93+
IsPrerelease: false,
94+
IsTag: true,
95+
}, nil))
96+
}

0 commit comments

Comments
 (0)