@ -13,6 +13,7 @@ import (
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/process"
"code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/timeutil"
)
@ -37,6 +38,54 @@ func createTag(gitRepo *git.Repository, rel *models.Release) error {
return err
}
rel . LowerTagName = strings . ToLower ( rel . TagName )
// Prepare Notify
if err := rel . LoadAttributes ( ) ; err != nil {
log . Error ( "LoadAttributes: %v" , err )
return err
}
refName := git . TagPrefix + rel . TagName
apiPusher := rel . Publisher . APIFormat ( )
apiRepo := rel . Repo . APIFormat ( models . AccessModeNone )
apiCommits , err := models . NewPushCommits ( ) . ToAPIPayloadCommits ( rel . Repo . RepoPath ( ) , rel . Repo . HTMLURL ( ) )
if err != nil {
log . Error ( "commits.ToAPIPayloadCommits failed: %v" , err )
return err
}
if err := models . PrepareWebhooks ( rel . Repo , models . HookEventPush , & api . PushPayload {
Ref : refName ,
Before : git . EmptySHA ,
After : commit . ID . String ( ) ,
CompareURL : setting . AppURL + models . NewPushCommits ( ) . CompareURL ,
Commits : apiCommits ,
Repo : apiRepo ,
Pusher : apiPusher ,
Sender : apiPusher ,
} ) ; err != nil {
log . Error ( "PrepareWebhooks: %v" , err )
}
gitRepo , err := git . OpenRepository ( rel . Repo . RepoPath ( ) )
if err != nil {
log . Error ( "OpenRepository[%s]: %v" , rel . Repo . RepoPath ( ) , err )
}
shaSum , err := gitRepo . GetTagCommitID ( refName )
if err != nil {
gitRepo . Close ( )
log . Error ( "GetTagCommitID[%s]: %v" , refName , err )
}
gitRepo . Close ( )
if err = models . PrepareWebhooks ( rel . Repo , models . HookEventCreate , & api . CreatePayload {
Ref : git . RefEndName ( refName ) ,
Sha : shaSum ,
RefType : "tag" ,
Repo : apiRepo ,
Sender : apiPusher ,
} ) ; err != nil {
return fmt . Errorf ( "PrepareWebhooks: %v" , err )
}
}
commit , err := gitRepo . GetTagCommit ( rel . TagName )
if err != nil {