summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Brickley <brickley@gmail.com>2014-09-17 09:11:51 -0400
committerChristopher Brickley <brickley@gmail.com>2014-09-17 09:20:14 -0400
commitf94d7c3f51969d300c3ee1ffdecd642363c207b4 (patch)
treed0ae8728dd3296f2b85f200fcfe7894be48046fa
parent061a879cea39a1cce56dcb394b912fad50d7b77a (diff)
downloadgitea-f94d7c3f51969d300c3ee1ffdecd642363c207b4.tar.gz
gitea-f94d7c3f51969d300c3ee1ffdecd642363c207b4.zip
clarify name/username/owner/pusher for webhook
-rw-r--r--models/action.go28
-rw-r--r--models/user.go8
-rw-r--r--models/webhook.go7
3 files changed, 34 insertions, 9 deletions
diff --git a/models/action.go b/models/action.go
index 295a61ccdb..a6b22b161d 100644
--- a/models/action.go
+++ b/models/action.go
@@ -243,15 +243,29 @@ func CommitRepoAction(userId, repoUserId int64, userName, actEmail string,
if !strings.HasPrefix(oldCommitId, "0000000") {
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))
for i, cmt := range commit.Commits {
+ author_username := ""
+ author, err := GetUserByEmail(cmt.AuthorEmail)
+ if err == nil {
+ author_username = author.Name
+ }
commits[i] = &PayloadCommit{
Id: cmt.Sha1,
Message: cmt.Message,
Url: fmt.Sprintf("%s/commit/%s", repoLink, cmt.Sha1),
Author: &PayloadAuthor{
- Name: cmt.AuthorName,
- Email: cmt.AuthorEmail,
+ Name: cmt.AuthorName,
+ Email: cmt.AuthorEmail,
+ UserName: author_username,
},
}
}
@@ -266,14 +280,16 @@ func CommitRepoAction(userId, repoUserId int64, userName, actEmail string,
Website: repo.Website,
Watchers: repo.NumWatches,
Owner: &PayloadAuthor{
- Name: repoUserName,
- Email: actEmail,
+ Name: repo.Owner.GetFullNameFallback(),
+ Email: repo.Owner.Email,
+ UserName: repo.Owner.Name,
},
Private: repo.IsPrivate,
},
Pusher: &PayloadAuthor{
- Name: repo.Owner.LowerName,
- Email: repo.Owner.Email,
+ Name: pusher_name,
+ Email: pusher_email,
+ UserName: userName,
},
Before: oldCommitId,
After: newCommitId,
diff --git a/models/user.go b/models/user.go
index 96881ea355..b3ea816177 100644
--- a/models/user.go
+++ b/models/user.go
@@ -167,6 +167,14 @@ func (u *User) GetOrganizations() error {
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,
// the user name should be noncased unique.
func IsUserExist(name string) (bool, error) {
diff --git a/models/webhook.go b/models/webhook.go
index 3c07cc8179..9508c98a5e 100644
--- a/models/webhook.go
+++ b/models/webhook.go
@@ -154,8 +154,9 @@ const (
)
type PayloadAuthor struct {
- Name string `json:"name"`
- Email string `json:"email"`
+ Name string `json:"name"`
+ Email string `json:"email"`
+ UserName string `json:"username"`
}
type PayloadCommit struct {
@@ -172,7 +173,7 @@ type PayloadRepo struct {
Description string `json:"description"`
Website string `json:"website"`
Watchers int `json:"watchers"`
- Owner *PayloadAuthor `json:"author"`
+ Owner *PayloadAuthor `json:"owner"`
Private bool `json:"private"`
}