diff options
Diffstat (limited to 'models')
-rw-r--r-- | models/action.go | 44 | ||||
-rw-r--r-- | models/pull.go | 18 | ||||
-rw-r--r-- | models/repo.go | 22 | ||||
-rw-r--r-- | models/webhook_slack.go | 16 |
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 { |