mirror of
https://github.com/go-gitea/gitea.git
synced 2025-06-20 05:30:29 +02:00
Fix ghost user in feeds when pushing in an actions, it should be gitea-actions (#34703)
This commit is contained in:
parent
ee334886f3
commit
a14db5c5e3
@ -191,7 +191,7 @@ func (a *Action) LoadActUser(ctx context.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
var err error
|
var err error
|
||||||
a.ActUser, err = user_model.GetUserByID(ctx, a.ActUserID)
|
a.ActUser, err = user_model.GetPossibleUserByID(ctx, a.ActUserID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return
|
return
|
||||||
} else if user_model.IsErrUserNotExist(err) {
|
} else if user_model.IsErrUserNotExist(err) {
|
||||||
|
@ -103,7 +103,7 @@ func getReleaseInfos(ctx *context.Context, opts *repo_model.FindReleasesOptions)
|
|||||||
releaseInfos := make([]*ReleaseInfo, 0, len(releases))
|
releaseInfos := make([]*ReleaseInfo, 0, len(releases))
|
||||||
for _, r := range releases {
|
for _, r := range releases {
|
||||||
if r.Publisher, ok = cacheUsers[r.PublisherID]; !ok {
|
if r.Publisher, ok = cacheUsers[r.PublisherID]; !ok {
|
||||||
r.Publisher, err = user_model.GetUserByID(ctx, r.PublisherID)
|
r.Publisher, err = user_model.GetPossibleUserByID(ctx, r.PublisherID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if user_model.IsErrUserNotExist(err) {
|
if user_model.IsErrUserNotExist(err) {
|
||||||
r.Publisher = user_model.NewGhostUser()
|
r.Publisher = user_model.NewGhostUser()
|
||||||
|
@ -232,7 +232,7 @@ func pushUpdates(optsList []*repo_module.PushUpdateOptions) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(addTags)+len(delTags) > 0 {
|
if len(addTags)+len(delTags) > 0 {
|
||||||
if err := PushUpdateAddDeleteTags(ctx, repo, gitRepo, addTags, delTags); err != nil {
|
if err := PushUpdateAddDeleteTags(ctx, repo, gitRepo, pusher, addTags, delTags); err != nil {
|
||||||
return fmt.Errorf("PushUpdateAddDeleteTags: %w", err)
|
return fmt.Errorf("PushUpdateAddDeleteTags: %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -342,17 +342,17 @@ func pushDeleteBranch(ctx context.Context, repo *repo_model.Repository, pusher *
|
|||||||
}
|
}
|
||||||
|
|
||||||
// PushUpdateAddDeleteTags updates a number of added and delete tags
|
// PushUpdateAddDeleteTags updates a number of added and delete tags
|
||||||
func PushUpdateAddDeleteTags(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository, addTags, delTags []string) error {
|
func PushUpdateAddDeleteTags(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository, pusher *user_model.User, addTags, delTags []string) error {
|
||||||
return db.WithTx(ctx, func(ctx context.Context) error {
|
return db.WithTx(ctx, func(ctx context.Context) error {
|
||||||
if err := repo_model.PushUpdateDeleteTags(ctx, repo, delTags); err != nil {
|
if err := repo_model.PushUpdateDeleteTags(ctx, repo, delTags); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return pushUpdateAddTags(ctx, repo, gitRepo, addTags)
|
return pushUpdateAddTags(ctx, repo, gitRepo, pusher, addTags)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// pushUpdateAddTags updates a number of add tags
|
// pushUpdateAddTags updates a number of add tags
|
||||||
func pushUpdateAddTags(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository, tags []string) error {
|
func pushUpdateAddTags(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository, pusher *user_model.User, tags []string) error {
|
||||||
if len(tags) == 0 {
|
if len(tags) == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -378,8 +378,6 @@ func pushUpdateAddTags(ctx context.Context, repo *repo_model.Repository, gitRepo
|
|||||||
|
|
||||||
newReleases := make([]*repo_model.Release, 0, len(lowerTags)-len(relMap))
|
newReleases := make([]*repo_model.Release, 0, len(lowerTags)-len(relMap))
|
||||||
|
|
||||||
emailToUser := make(map[string]*user_model.User)
|
|
||||||
|
|
||||||
for i, lowerTag := range lowerTags {
|
for i, lowerTag := range lowerTags {
|
||||||
tag, err := gitRepo.GetTag(tags[i])
|
tag, err := gitRepo.GetTag(tags[i])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -397,21 +395,9 @@ func pushUpdateAddTags(ctx context.Context, repo *repo_model.Repository, gitRepo
|
|||||||
if sig == nil {
|
if sig == nil {
|
||||||
sig = commit.Committer
|
sig = commit.Committer
|
||||||
}
|
}
|
||||||
var author *user_model.User
|
|
||||||
createdAt := time.Unix(1, 0)
|
|
||||||
|
|
||||||
|
createdAt := time.Unix(1, 0)
|
||||||
if sig != nil {
|
if sig != nil {
|
||||||
var ok bool
|
|
||||||
author, ok = emailToUser[sig.Email]
|
|
||||||
if !ok {
|
|
||||||
author, err = user_model.GetUserByEmail(ctx, sig.Email)
|
|
||||||
if err != nil && !user_model.IsErrUserNotExist(err) {
|
|
||||||
return fmt.Errorf("GetUserByEmail: %w", err)
|
|
||||||
}
|
|
||||||
if author != nil {
|
|
||||||
emailToUser[sig.Email] = author
|
|
||||||
}
|
|
||||||
}
|
|
||||||
createdAt = sig.When
|
createdAt = sig.When
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -435,11 +421,9 @@ func pushUpdateAddTags(ctx context.Context, repo *repo_model.Repository, gitRepo
|
|||||||
IsDraft: false,
|
IsDraft: false,
|
||||||
IsPrerelease: false,
|
IsPrerelease: false,
|
||||||
IsTag: true,
|
IsTag: true,
|
||||||
|
PublisherID: pusher.ID,
|
||||||
CreatedUnix: timeutil.TimeStamp(createdAt.Unix()),
|
CreatedUnix: timeutil.TimeStamp(createdAt.Unix()),
|
||||||
}
|
}
|
||||||
if author != nil {
|
|
||||||
rel.PublisherID = author.ID
|
|
||||||
}
|
|
||||||
|
|
||||||
newReleases = append(newReleases, rel)
|
newReleases = append(newReleases, rel)
|
||||||
} else {
|
} else {
|
||||||
@ -448,12 +432,10 @@ func pushUpdateAddTags(ctx context.Context, repo *repo_model.Repository, gitRepo
|
|||||||
if rel.IsTag {
|
if rel.IsTag {
|
||||||
rel.Title = parts[0]
|
rel.Title = parts[0]
|
||||||
rel.Note = note
|
rel.Note = note
|
||||||
if author != nil {
|
|
||||||
rel.PublisherID = author.ID
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
rel.IsDraft = false
|
rel.IsDraft = false
|
||||||
}
|
}
|
||||||
|
rel.PublisherID = pusher.ID
|
||||||
if err = repo_model.UpdateRelease(ctx, rel); err != nil {
|
if err = repo_model.UpdateRelease(ctx, rel); err != nil {
|
||||||
return fmt.Errorf("Update: %w", err)
|
return fmt.Errorf("Update: %w", err)
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,11 @@
|
|||||||
{{svg (MigrationIcon $release.Repo.GetOriginalURLHostname) 20 "tw-mr-1"}}{{$release.OriginalAuthor}}
|
{{svg (MigrationIcon $release.Repo.GetOriginalURLHostname) 20 "tw-mr-1"}}{{$release.OriginalAuthor}}
|
||||||
{{else if $release.Publisher}}
|
{{else if $release.Publisher}}
|
||||||
{{ctx.AvatarUtils.Avatar $release.Publisher 20 "tw-mr-1"}}
|
{{ctx.AvatarUtils.Avatar $release.Publisher 20 "tw-mr-1"}}
|
||||||
|
{{if gt $release.PublisherID 0}}
|
||||||
<a href="{{$release.Publisher.HomeLink}}">{{$release.Publisher.GetDisplayName}}</a>
|
<a href="{{$release.Publisher.HomeLink}}">{{$release.Publisher.GetDisplayName}}</a>
|
||||||
|
{{else}}
|
||||||
|
{{$release.Publisher.GetDisplayName}}
|
||||||
|
{{end}}
|
||||||
{{else}}
|
{{else}}
|
||||||
Ghost
|
Ghost
|
||||||
{{end}}
|
{{end}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user