mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Add repo info to web hook post
This commit is contained in:
		
							
								
								
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							@@ -17,7 +17,7 @@ import (
 | 
			
		||||
	"github.com/gogits/gogs/modules/base"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const APP_VER = "0.3.3.0507 Alpha"
 | 
			
		||||
const APP_VER = "0.3.3.0508 Alpha"
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	base.AppVer = APP_VER
 | 
			
		||||
 
 | 
			
		||||
@@ -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,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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}
 | 
			
		||||
 
 | 
			
		||||
@@ -30,11 +30,23 @@ type PayloadCommit struct {
 | 
			
		||||
	Author  *PayloadAuthor `json:"author"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type PayloadRepo struct {
 | 
			
		||||
	Id          int64          `json:"id"`
 | 
			
		||||
	Name        string         `json:"name"`
 | 
			
		||||
	Url         string         `json:"url"`
 | 
			
		||||
	Description string         `json:"description"`
 | 
			
		||||
	Website     string         `json:"website"`
 | 
			
		||||
	Watchers    int            `json:"watchers"`
 | 
			
		||||
	Owner       *PayloadAuthor `json:"author"`
 | 
			
		||||
	Private     bool           `json:"private"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Payload represents payload information of hook.
 | 
			
		||||
type Payload struct {
 | 
			
		||||
	Secret  string           `json:"secret"`
 | 
			
		||||
	Ref     string           `json:"ref"`
 | 
			
		||||
	Commits []*PayloadCommit `json:"commits"`
 | 
			
		||||
	Repo    *PayloadRepo     `json:"repository"`
 | 
			
		||||
	Pusher  *PayloadAuthor   `json:"pusher"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user