summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-05-08 08:18:03 -0400
committerUnknown <joe2010xtmf@163.com>2014-05-08 08:18:03 -0400
commit23a857d107b06b5639b337aba2e335d3d66ef9db (patch)
tree483f46f826bef1c16b3ee0394e54b56c4f6cdba6 /models
parent495d939ca580825c4a91612e38107ecc4339598a (diff)
downloadgitea-23a857d107b06b5639b337aba2e335d3d66ef9db.tar.gz
gitea-23a857d107b06b5639b337aba2e335d3d66ef9db.zip
Add repo info to web hook post
Diffstat (limited to 'models')
-rw-r--r--models/action.go24
-rw-r--r--models/repo.go5
2 files changed, 26 insertions, 3 deletions
diff --git a/models/action.go b/models/action.go
index ef9e260a0b..02639e5538 100644
--- a/models/action.go
+++ b/models/action.go
@@ -114,6 +114,10 @@ func CommitRepoAction(userId, repoUserId int64, userName, actEmail string,
qlog.Info("action.CommitRepoAction(end): %d/%s", repoUserId, repoName)
// New push event hook.
+ if err := repo.GetOwner(); err != nil {
+ return errors.New("action.CommitRepoAction(GetOwner): " + err.Error())
+ }
+
ws, err := GetActiveWebhooksByRepoId(repoId)
if err != nil {
return errors.New("action.CommitRepoAction(GetWebhooksByRepoId): " + err.Error())
@@ -121,12 +125,13 @@ func CommitRepoAction(userId, repoUserId int64, userName, actEmail string,
return nil
}
+ repoLink := fmt.Sprintf("%s%s/%s", base.AppUrl, repoUserName, repoName)
commits := make([]*hooks.PayloadCommit, len(commit.Commits))
for i, cmt := range commit.Commits {
commits[i] = &hooks.PayloadCommit{
Id: cmt.Sha1,
Message: cmt.Message,
- Url: fmt.Sprintf("%s%s/%s/commit/%s", base.AppUrl, repoUserName, repoName, cmt.Sha1),
+ Url: fmt.Sprintf("%s/commit/%s", repoLink, cmt.Sha1),
Author: &hooks.PayloadAuthor{
Name: cmt.AuthorName,
Email: cmt.AuthorEmail,
@@ -136,9 +141,22 @@ func CommitRepoAction(userId, repoUserId int64, userName, actEmail string,
p := &hooks.Payload{
Ref: refFullName,
Commits: commits,
+ Repo: &hooks.PayloadRepo{
+ Id: repo.Id,
+ Name: repo.LowerName,
+ Url: repoLink,
+ Description: repo.Description,
+ Website: repo.Website,
+ Watchers: repo.NumWatches,
+ Owner: &hooks.PayloadAuthor{
+ Name: repoUserName,
+ Email: actEmail,
+ },
+ Private: repo.IsPrivate,
+ },
Pusher: &hooks.PayloadAuthor{
- Name: userName,
- Email: actEmail,
+ Name: repo.Owner.LowerName,
+ Email: repo.Owner.Email,
},
}
diff --git a/models/repo.go b/models/repo.go
index 0ca32bc28b..595d79b5c3 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -88,6 +88,11 @@ type Repository struct {
Updated time.Time `xorm:"updated"`
}
+func (repo *Repository) GetOwner() (err error) {
+ repo.Owner, err = GetUserById(repo.OwnerId)
+ return err
+}
+
// IsRepositoryExist returns true if the repository with given name under user has already existed.
func IsRepositoryExist(user *User, repoName string) (bool, error) {
repo := Repository{OwnerId: user.Id}