Merge pull request #480 from compressed/correct_push_user
clarify name/username/owner/pusher for webhook
This commit is contained in:
commit
c03f5a2c7c
3 changed files with 34 additions and 9 deletions
|
@ -243,15 +243,29 @@ func CommitRepoAction(userId, repoUserId int64, userName, actEmail string,
|
||||||
if !strings.HasPrefix(oldCommitId, "0000000") {
|
if !strings.HasPrefix(oldCommitId, "0000000") {
|
||||||
compareUrl = fmt.Sprintf("%s/compare/%s...%s", repoLink, oldCommitId, newCommitId)
|
compareUrl = fmt.Sprintf("%s/compare/%s...%s", repoLink, oldCommitId, newCommitId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pusher_email, pusher_name := "", ""
|
||||||
|
pusher, err := GetUserByName(userName)
|
||||||
|
if err == nil {
|
||||||
|
pusher_email = pusher.Email
|
||||||
|
pusher_name = pusher.GetFullNameFallback()
|
||||||
|
}
|
||||||
|
|
||||||
commits := make([]*PayloadCommit, len(commit.Commits))
|
commits := make([]*PayloadCommit, len(commit.Commits))
|
||||||
for i, cmt := range commit.Commits {
|
for i, cmt := range commit.Commits {
|
||||||
|
author_username := ""
|
||||||
|
author, err := GetUserByEmail(cmt.AuthorEmail)
|
||||||
|
if err == nil {
|
||||||
|
author_username = author.Name
|
||||||
|
}
|
||||||
commits[i] = &PayloadCommit{
|
commits[i] = &PayloadCommit{
|
||||||
Id: cmt.Sha1,
|
Id: cmt.Sha1,
|
||||||
Message: cmt.Message,
|
Message: cmt.Message,
|
||||||
Url: fmt.Sprintf("%s/commit/%s", repoLink, cmt.Sha1),
|
Url: fmt.Sprintf("%s/commit/%s", repoLink, cmt.Sha1),
|
||||||
Author: &PayloadAuthor{
|
Author: &PayloadAuthor{
|
||||||
Name: cmt.AuthorName,
|
Name: cmt.AuthorName,
|
||||||
Email: cmt.AuthorEmail,
|
Email: cmt.AuthorEmail,
|
||||||
|
UserName: author_username,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -266,14 +280,16 @@ func CommitRepoAction(userId, repoUserId int64, userName, actEmail string,
|
||||||
Website: repo.Website,
|
Website: repo.Website,
|
||||||
Watchers: repo.NumWatches,
|
Watchers: repo.NumWatches,
|
||||||
Owner: &PayloadAuthor{
|
Owner: &PayloadAuthor{
|
||||||
Name: repoUserName,
|
Name: repo.Owner.GetFullNameFallback(),
|
||||||
Email: actEmail,
|
Email: repo.Owner.Email,
|
||||||
|
UserName: repo.Owner.Name,
|
||||||
},
|
},
|
||||||
Private: repo.IsPrivate,
|
Private: repo.IsPrivate,
|
||||||
},
|
},
|
||||||
Pusher: &PayloadAuthor{
|
Pusher: &PayloadAuthor{
|
||||||
Name: repo.Owner.LowerName,
|
Name: pusher_name,
|
||||||
Email: repo.Owner.Email,
|
Email: pusher_email,
|
||||||
|
UserName: userName,
|
||||||
},
|
},
|
||||||
Before: oldCommitId,
|
Before: oldCommitId,
|
||||||
After: newCommitId,
|
After: newCommitId,
|
||||||
|
|
|
@ -167,6 +167,14 @@ func (u *User) GetOrganizations() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetFullNameFallback returns Full Name if set, otherwise username
|
||||||
|
func (u *User) GetFullNameFallback() string {
|
||||||
|
if u.FullName == "" {
|
||||||
|
return u.Name
|
||||||
|
}
|
||||||
|
return u.FullName
|
||||||
|
}
|
||||||
|
|
||||||
// IsUserExist checks if given user name exist,
|
// IsUserExist checks if given user name exist,
|
||||||
// the user name should be noncased unique.
|
// the user name should be noncased unique.
|
||||||
func IsUserExist(name string) (bool, error) {
|
func IsUserExist(name string) (bool, error) {
|
||||||
|
|
|
@ -154,8 +154,9 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
type PayloadAuthor struct {
|
type PayloadAuthor struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Email string `json:"email"`
|
Email string `json:"email"`
|
||||||
|
UserName string `json:"username"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type PayloadCommit struct {
|
type PayloadCommit struct {
|
||||||
|
@ -172,7 +173,7 @@ type PayloadRepo struct {
|
||||||
Description string `json:"description"`
|
Description string `json:"description"`
|
||||||
Website string `json:"website"`
|
Website string `json:"website"`
|
||||||
Watchers int `json:"watchers"`
|
Watchers int `json:"watchers"`
|
||||||
Owner *PayloadAuthor `json:"author"`
|
Owner *PayloadAuthor `json:"owner"`
|
||||||
Private bool `json:"private"`
|
Private bool `json:"private"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue