mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 20:36:07 +01: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"
 | 
						"github.com/gogits/gogs/modules/base"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const APP_VER = "0.3.3.0507 Alpha"
 | 
					const APP_VER = "0.3.3.0508 Alpha"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	base.AppVer = APP_VER
 | 
						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)
 | 
						qlog.Info("action.CommitRepoAction(end): %d/%s", repoUserId, repoName)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// New push event hook.
 | 
						// New push event hook.
 | 
				
			||||||
 | 
						if err := repo.GetOwner(); err != nil {
 | 
				
			||||||
 | 
							return errors.New("action.CommitRepoAction(GetOwner): " + err.Error())
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ws, err := GetActiveWebhooksByRepoId(repoId)
 | 
						ws, err := GetActiveWebhooksByRepoId(repoId)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return errors.New("action.CommitRepoAction(GetWebhooksByRepoId): " + err.Error())
 | 
							return errors.New("action.CommitRepoAction(GetWebhooksByRepoId): " + err.Error())
 | 
				
			||||||
@@ -121,12 +125,13 @@ func CommitRepoAction(userId, repoUserId int64, userName, actEmail string,
 | 
				
			|||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						repoLink := fmt.Sprintf("%s%s/%s", base.AppUrl, repoUserName, repoName)
 | 
				
			||||||
	commits := make([]*hooks.PayloadCommit, len(commit.Commits))
 | 
						commits := make([]*hooks.PayloadCommit, len(commit.Commits))
 | 
				
			||||||
	for i, cmt := range commit.Commits {
 | 
						for i, cmt := range commit.Commits {
 | 
				
			||||||
		commits[i] = &hooks.PayloadCommit{
 | 
							commits[i] = &hooks.PayloadCommit{
 | 
				
			||||||
			Id:      cmt.Sha1,
 | 
								Id:      cmt.Sha1,
 | 
				
			||||||
			Message: cmt.Message,
 | 
								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{
 | 
								Author: &hooks.PayloadAuthor{
 | 
				
			||||||
				Name:  cmt.AuthorName,
 | 
									Name:  cmt.AuthorName,
 | 
				
			||||||
				Email: cmt.AuthorEmail,
 | 
									Email: cmt.AuthorEmail,
 | 
				
			||||||
@@ -136,9 +141,22 @@ func CommitRepoAction(userId, repoUserId int64, userName, actEmail string,
 | 
				
			|||||||
	p := &hooks.Payload{
 | 
						p := &hooks.Payload{
 | 
				
			||||||
		Ref:     refFullName,
 | 
							Ref:     refFullName,
 | 
				
			||||||
		Commits: commits,
 | 
							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{
 | 
							Pusher: &hooks.PayloadAuthor{
 | 
				
			||||||
			Name:  userName,
 | 
								Name:  repo.Owner.LowerName,
 | 
				
			||||||
			Email: actEmail,
 | 
								Email: repo.Owner.Email,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -88,6 +88,11 @@ type Repository struct {
 | 
				
			|||||||
	Updated         time.Time `xorm:"updated"`
 | 
						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.
 | 
					// IsRepositoryExist returns true if the repository with given name under user has already existed.
 | 
				
			||||||
func IsRepositoryExist(user *User, repoName string) (bool, error) {
 | 
					func IsRepositoryExist(user *User, repoName string) (bool, error) {
 | 
				
			||||||
	repo := Repository{OwnerId: user.Id}
 | 
						repo := Repository{OwnerId: user.Id}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,11 +30,23 @@ type PayloadCommit struct {
 | 
				
			|||||||
	Author  *PayloadAuthor `json:"author"`
 | 
						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.
 | 
					// Payload represents payload information of hook.
 | 
				
			||||||
type Payload struct {
 | 
					type Payload struct {
 | 
				
			||||||
	Secret  string           `json:"secret"`
 | 
						Secret  string           `json:"secret"`
 | 
				
			||||||
	Ref     string           `json:"ref"`
 | 
						Ref     string           `json:"ref"`
 | 
				
			||||||
	Commits []*PayloadCommit `json:"commits"`
 | 
						Commits []*PayloadCommit `json:"commits"`
 | 
				
			||||||
 | 
						Repo    *PayloadRepo     `json:"repository"`
 | 
				
			||||||
	Pusher  *PayloadAuthor   `json:"pusher"`
 | 
						Pusher  *PayloadAuthor   `json:"pusher"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user