summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
Diffstat (limited to 'models')
-rw-r--r--models/action.go44
-rw-r--r--models/pull.go18
-rw-r--r--models/repo.go22
-rw-r--r--models/webhook_slack.go16
4 files changed, 29 insertions, 71 deletions
diff --git a/models/action.go b/models/action.go
index 584543d9c1..c727c05992 100644
--- a/models/action.go
+++ b/models/action.go
@@ -246,7 +246,7 @@ type PushCommit struct {
type PushCommits struct {
Len int
Commits []*PushCommit
- CompareUrl string
+ CompareURL string
avatars map[string]string
}
@@ -275,12 +275,12 @@ func (pc *PushCommits) ToApiPayloadCommits(repoLink string) []*api.PayloadCommit
ID: commit.Sha1,
Message: commit.Message,
URL: fmt.Sprintf("%s/commit/%s", repoLink, commit.Sha1),
- Author: &api.PayloadAuthor{
+ Author: &api.PayloadUser{
Name: commit.AuthorName,
Email: commit.AuthorEmail,
UserName: authorUsername,
},
- Committer: &api.PayloadCommitter{
+ Committer: &api.PayloadUser{
Name: commit.CommitterName,
Email: commit.CommitterEmail,
UserName: committerUsername,
@@ -475,7 +475,7 @@ func CommitRepoAction(
} else {
// if not the first commit, set the compareUrl
if !strings.HasPrefix(oldCommitID, "0000000") {
- commit.CompareUrl = repo.ComposeCompareURL(oldCommitID, newCommitID)
+ commit.CompareURL = repo.ComposeCompareURL(oldCommitID, newCommitID)
} else {
isNewBranch = true
}
@@ -495,7 +495,6 @@ func CommitRepoAction(
}
refName := git.RefEndName(refFullName)
-
if err = NotifyWatchers(&Action{
ActUserID: u.ID,
ActUserName: userName,
@@ -511,35 +510,24 @@ func CommitRepoAction(
return fmt.Errorf("NotifyWatchers: %v", err)
}
- payloadRepo := repo.ComposePayload()
-
- var pusherEmail, pusherName string
pusher, err := GetUserByName(userName)
- if err == nil {
- pusherEmail = pusher.Email
- pusherName = pusher.DisplayName()
- }
- payloadSender := &api.PayloadUser{
- UserName: pusher.Name,
- ID: pusher.ID,
- AvatarUrl: pusher.AvatarLink(),
+ if err != nil {
+ return fmt.Errorf("GetUserByName: %v", err)
}
+ apiPusher := pusher.APIFormat()
+ apiRepo := repo.APIFormat(nil)
switch opType {
case ACTION_COMMIT_REPO: // Push
if err = PrepareWebhooks(repo, HOOK_EVENT_PUSH, &api.PushPayload{
Ref: refFullName,
Before: oldCommitID,
After: newCommitID,
- CompareUrl: setting.AppUrl + commit.CompareUrl,
+ CompareURL: setting.AppUrl + commit.CompareURL,
Commits: commit.ToApiPayloadCommits(repo.FullLink()),
- Repo: payloadRepo,
- Pusher: &api.PayloadAuthor{
- Name: pusherName,
- Email: pusherEmail,
- UserName: userName,
- },
- Sender: payloadSender,
+ Repo: apiRepo,
+ Pusher: apiPusher,
+ Sender: apiPusher,
}); err != nil {
return fmt.Errorf("PrepareWebhooks: %v", err)
}
@@ -548,8 +536,8 @@ func CommitRepoAction(
return PrepareWebhooks(repo, HOOK_EVENT_CREATE, &api.CreatePayload{
Ref: refName,
RefType: "branch",
- Repo: payloadRepo,
- Sender: payloadSender,
+ Repo: apiRepo,
+ Sender: apiPusher,
})
}
@@ -557,8 +545,8 @@ func CommitRepoAction(
return PrepareWebhooks(repo, HOOK_EVENT_CREATE, &api.CreatePayload{
Ref: refName,
RefType: "tag",
- Repo: payloadRepo,
- Sender: payloadSender,
+ Repo: apiRepo,
+ Sender: apiPusher,
})
}
diff --git a/models/pull.go b/models/pull.go
index 4a2a376704..d6df00dc7f 100644
--- a/models/pull.go
+++ b/models/pull.go
@@ -308,22 +308,14 @@ func (pr *PullRequest) Merge(doer *User, baseGitRepo *git.Repository) (err error
l.PushFront(mergeCommit)
p := &api.PushPayload{
- Ref: "refs/heads/" + pr.BaseBranch,
+ Ref: git.BRANCH_PREFIX + pr.BaseBranch,
Before: pr.MergeBase,
After: pr.MergedCommitID,
- CompareUrl: setting.AppUrl + pr.BaseRepo.ComposeCompareURL(pr.MergeBase, pr.MergedCommitID),
+ CompareURL: setting.AppUrl + pr.BaseRepo.ComposeCompareURL(pr.MergeBase, pr.MergedCommitID),
Commits: ListToPushCommits(l).ToApiPayloadCommits(pr.BaseRepo.FullLink()),
- Repo: pr.BaseRepo.ComposePayload(),
- Pusher: &api.PayloadAuthor{
- Name: pr.HeadRepo.MustOwner().DisplayName(),
- Email: pr.HeadRepo.MustOwner().Email,
- UserName: pr.HeadRepo.MustOwner().Name,
- },
- Sender: &api.PayloadUser{
- UserName: doer.Name,
- ID: doer.ID,
- AvatarUrl: doer.AvatarLink(),
- },
+ Repo: pr.BaseRepo.APIFormat(nil),
+ Pusher: pr.HeadRepo.MustOwner().APIFormat(),
+ Sender: doer.APIFormat(),
}
if err = PrepareWebhooks(pr.BaseRepo, HOOK_EVENT_PUSH, p); err != nil {
return fmt.Errorf("PrepareWebhooks: %v", err)
diff --git a/models/repo.go b/models/repo.go
index ef8cd34375..f3eb439cac 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -482,28 +482,6 @@ func (repo *Repository) SavePatch(index int64, patch []byte) error {
return nil
}
-// ComposePayload composes and returns *api.PayloadRepo corresponding to the repository.
-func (repo *Repository) ComposePayload() *api.PayloadRepo {
- cl := repo.CloneLink()
- return &api.PayloadRepo{
- ID: repo.ID,
- Name: repo.Name,
- URL: repo.FullLink(),
- SSHURL: cl.SSH,
- CloneURL: cl.HTTPS,
- Description: repo.Description,
- Website: repo.Website,
- Watchers: repo.NumWatches,
- Owner: &api.PayloadAuthor{
- Name: repo.MustOwner().DisplayName(),
- Email: repo.MustOwner().Email,
- UserName: repo.MustOwner().Name,
- },
- Private: repo.IsPrivate,
- DefaultBranch: repo.DefaultBranch,
- }
-}
-
func isRepositoryExist(e Engine, u *User, repoName string) (bool, error) {
has, err := e.Get(&Repository{
OwnerID: u.ID,
diff --git a/models/webhook_slack.go b/models/webhook_slack.go
index 5578c816a5..edc26a78f3 100644
--- a/models/webhook_slack.go
+++ b/models/webhook_slack.go
@@ -76,8 +76,8 @@ func getSlackCreatePayload(p *api.CreatePayload, slack *SlackMeta) (*SlackPayloa
// created tag/branch
refName := git.RefEndName(p.Ref)
- repoLink := SlackLinkFormatter(p.Repo.URL, p.Repo.Name)
- refLink := SlackLinkFormatter(p.Repo.URL+"/src/"+refName, refName)
+ repoLink := SlackLinkFormatter(p.Repo.HTMLURL, p.Repo.Name)
+ refLink := SlackLinkFormatter(p.Repo.HTMLURL+"/src/"+refName, refName)
text := fmt.Sprintf("[%s:%s] %s created by %s", repoLink, refLink, p.RefType, p.Sender.UserName)
return &SlackPayload{
@@ -101,15 +101,15 @@ func getSlackPushPayload(p *api.PushPayload, slack *SlackMeta) (*SlackPayload, e
} else {
commitDesc = fmt.Sprintf("%d new commits", len(p.Commits))
}
- if len(p.CompareUrl) > 0 {
- commitString = SlackLinkFormatter(p.CompareUrl, commitDesc)
+ if len(p.CompareURL) > 0 {
+ commitString = SlackLinkFormatter(p.CompareURL, commitDesc)
} else {
commitString = commitDesc
}
- repoLink := SlackLinkFormatter(p.Repo.URL, p.Repo.Name)
- branchLink := SlackLinkFormatter(p.Repo.URL+"/src/"+branchName, branchName)
- text := fmt.Sprintf("[%s:%s] %s pushed by %s", repoLink, branchLink, commitString, p.Pusher.Name)
+ repoLink := SlackLinkFormatter(p.Repo.HTMLURL, p.Repo.Name)
+ branchLink := SlackLinkFormatter(p.Repo.HTMLURL+"/src/"+branchName, branchName)
+ text := fmt.Sprintf("[%s:%s] %s pushed by %s", repoLink, branchLink, commitString, p.Pusher.UserName)
var attachmentText string
// for each commit, generate attachment text
@@ -135,7 +135,7 @@ func getSlackPushPayload(p *api.PushPayload, slack *SlackMeta) (*SlackPayload, e
func getSlackPullRequestPayload(p *api.PullRequestPayload, slack *SlackMeta) (*SlackPayload, error) {
senderLink := SlackLinkFormatter(setting.AppUrl+p.Sender.UserName, p.Sender.UserName)
- titleLink := SlackLinkFormatter(fmt.Sprintf("%s/%d", setting.AppUrl+p.Repository.FullName+"/pulls", p.Index),
+ titleLink := SlackLinkFormatter(fmt.Sprintf("%s/pulls/%d", p.Repository.HTMLURL, p.Index),
fmt.Sprintf("#%d %s", p.Index, p.PullRequest.Title))
var text, title, attachmentText string
switch p.Action {