forked from go-gitea/gitea
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Complete push webhooks (go-gitea#2530)
* implemented missing 'delete' push webhooks moreover created ActionDeleteBranch and ActionDeleteTag * add CommitRepoAction tests for tag/branch creation/deletion * fixed error where push webhook not called if is new branch or tag removed unnecessary code * moved prepare unit test environment into separate method to be used across unit tests * add missing if clause in pushUpdate Signed-off-by: David Schneiderbauer <[email protected]>
- Loading branch information
Showing
8 changed files
with
197 additions
and
102 deletions.
There are no files selected for viewing
1 change: 1 addition & 0 deletions
1
integrations/gitea-repositories-meta/user2/repo1.git/refs/tags/v1.1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
65f1bf27bc3bf70f64657658635e66094edbcb4d |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,6 +5,7 @@ import ( | |
"strings" | ||
"testing" | ||
|
||
"code.gitea.io/git" | ||
"code.gitea.io/gitea/modules/setting" | ||
|
||
"github.com/stretchr/testify/assert" | ||
|
@@ -202,55 +203,116 @@ func TestUpdateIssuesCommit(t *testing.T) { | |
CheckConsistencyFor(t, &Action{}) | ||
} | ||
|
||
func TestCommitRepoAction(t *testing.T) { | ||
assert.NoError(t, PrepareTestDatabase()) | ||
|
||
user := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User) | ||
repo := AssertExistsAndLoadBean(t, &Repository{ID: 2, OwnerID: user.ID}).(*Repository) | ||
repo.Owner = user | ||
func testCorrectRepoAction(t *testing.T, opts CommitRepoActionOptions, actionBean *Action) { | ||
AssertNotExistsBean(t, actionBean) | ||
assert.NoError(t, CommitRepoAction(opts)) | ||
AssertExistsAndLoadBean(t, actionBean) | ||
CheckConsistencyFor(t, &Action{}) | ||
} | ||
|
||
pushCommits := NewPushCommits() | ||
pushCommits.Commits = []*PushCommit{ | ||
func TestCommitRepoAction(t *testing.T) { | ||
samples := []struct { | ||
userID int64 | ||
repositoryID int64 | ||
commitRepoActionOptions CommitRepoActionOptions | ||
action Action | ||
}{ | ||
{ | ||
Sha1: "abcdef1", | ||
CommitterEmail: "[email protected]", | ||
CommitterName: "User Two", | ||
AuthorEmail: "[email protected]", | ||
AuthorName: "User Four", | ||
Message: "message1", | ||
userID: 2, | ||
repositoryID: 2, | ||
commitRepoActionOptions: CommitRepoActionOptions{ | ||
RefFullName: "refName", | ||
OldCommitID: "oldCommitID", | ||
NewCommitID: "newCommitID", | ||
Commits: &PushCommits{ | ||
avatars: make(map[string]string), | ||
Commits: []*PushCommit{ | ||
{ | ||
Sha1: "abcdef1", | ||
CommitterEmail: "[email protected]", | ||
CommitterName: "User Two", | ||
AuthorEmail: "[email protected]", | ||
AuthorName: "User Four", | ||
Message: "message1", | ||
}, | ||
{ | ||
Sha1: "abcdef2", | ||
CommitterEmail: "[email protected]", | ||
CommitterName: "User Two", | ||
AuthorEmail: "[email protected]", | ||
AuthorName: "User Two", | ||
Message: "message2", | ||
}, | ||
}, | ||
Len: 2, | ||
}, | ||
}, | ||
action: Action{ | ||
OpType: ActionCommitRepo, | ||
RefName: "refName", | ||
}, | ||
}, | ||
{ | ||
Sha1: "abcdef2", | ||
CommitterEmail: "[email protected]", | ||
CommitterName: "User Two", | ||
AuthorEmail: "[email protected]", | ||
AuthorName: "User Two", | ||
Message: "message2", | ||
userID: 2, | ||
repositoryID: 1, | ||
commitRepoActionOptions: CommitRepoActionOptions{ | ||
RefFullName: git.TagPrefix + "v1.1", | ||
OldCommitID: git.EmptySHA, | ||
NewCommitID: "newCommitID", | ||
Commits: &PushCommits{}, | ||
}, | ||
action: Action{ | ||
OpType: ActionPushTag, | ||
RefName: "v1.1", | ||
}, | ||
}, | ||
{ | ||
userID: 2, | ||
repositoryID: 1, | ||
commitRepoActionOptions: CommitRepoActionOptions{ | ||
RefFullName: git.TagPrefix + "v1.1", | ||
OldCommitID: "oldCommitID", | ||
NewCommitID: git.EmptySHA, | ||
Commits: &PushCommits{}, | ||
}, | ||
action: Action{ | ||
OpType: ActionDeleteTag, | ||
RefName: "v1.1", | ||
}, | ||
}, | ||
{ | ||
userID: 2, | ||
repositoryID: 1, | ||
commitRepoActionOptions: CommitRepoActionOptions{ | ||
RefFullName: git.BranchPrefix + "feature/1", | ||
OldCommitID: "oldCommitID", | ||
NewCommitID: git.EmptySHA, | ||
Commits: &PushCommits{}, | ||
}, | ||
action: Action{ | ||
OpType: ActionDeleteBranch, | ||
RefName: "feature/1", | ||
}, | ||
}, | ||
} | ||
pushCommits.Len = len(pushCommits.Commits) | ||
|
||
actionBean := &Action{ | ||
OpType: ActionCommitRepo, | ||
ActUserID: user.ID, | ||
ActUser: user, | ||
RepoID: repo.ID, | ||
Repo: repo, | ||
RefName: "refName", | ||
IsPrivate: repo.IsPrivate, | ||
for _, s := range samples { | ||
prepareTestEnv(t) | ||
|
||
user := AssertExistsAndLoadBean(t, &User{ID: s.userID}).(*User) | ||
repo := AssertExistsAndLoadBean(t, &Repository{ID: s.repositoryID, OwnerID: user.ID}).(*Repository) | ||
repo.Owner = user | ||
|
||
s.commitRepoActionOptions.PusherName = user.Name | ||
s.commitRepoActionOptions.RepoOwnerID = user.ID | ||
s.commitRepoActionOptions.RepoName = repo.Name | ||
|
||
s.action.ActUserID = user.ID | ||
s.action.RepoID = repo.ID | ||
s.action.IsPrivate = repo.IsPrivate | ||
|
||
testCorrectRepoAction(t, s.commitRepoActionOptions, &s.action) | ||
} | ||
AssertNotExistsBean(t, actionBean) | ||
assert.NoError(t, CommitRepoAction(CommitRepoActionOptions{ | ||
PusherName: user.Name, | ||
RepoOwnerID: user.ID, | ||
RepoName: repo.Name, | ||
RefFullName: "refName", | ||
OldCommitID: "oldCommitID", | ||
NewCommitID: "newCommitID", | ||
Commits: pushCommits, | ||
})) | ||
AssertExistsAndLoadBean(t, actionBean) | ||
CheckConsistencyFor(t, &Action{}) | ||
} | ||
|
||
func TestTransferRepoAction(t *testing.T) { | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.