Fix missing repository id when migrating release attachments (#36389)

This PR fixes missed repo_id on the migration of attachments to Gitea.
It also provides a doctor check to fix the dirty data on the database.
This commit is contained in:
Lunny Xiao
2026-01-20 10:05:51 -08:00
committed by GitHub
parent 987d82b038
commit f6db180a80
9 changed files with 138 additions and 17 deletions
+10 -7
View File
@@ -221,25 +221,28 @@ func MakeRepoPrivate(ctx context.Context, repo *repo_model.Repository) (err erro
})
}
// GetAttachmentLinkedType returns the linked type of attachment if any
func GetAttachmentLinkedType(ctx context.Context, a *repo_model.Attachment) (unit.Type, error) {
// GetAttachmentLinkedTypeAndRepoID returns the linked type and repository id of attachment if any
func GetAttachmentLinkedTypeAndRepoID(ctx context.Context, a *repo_model.Attachment) (unit.Type, int64, error) {
if a.IssueID != 0 {
iss, err := issues_model.GetIssueByID(ctx, a.IssueID)
if err != nil {
return unit.TypeIssues, err
return unit.TypeIssues, 0, err
}
unitType := unit.TypeIssues
if iss.IsPull {
unitType = unit.TypePullRequests
}
return unitType, nil
return unitType, iss.RepoID, nil
}
if a.ReleaseID != 0 {
_, err := repo_model.GetReleaseByID(ctx, a.ReleaseID)
return unit.TypeReleases, err
rel, err := repo_model.GetReleaseByID(ctx, a.ReleaseID)
if err != nil {
return unit.TypeReleases, 0, err
}
return unit.TypeReleases, rel.RepoID, nil
}
return unit.TypeInvalid, nil
return unit.TypeInvalid, 0, nil
}
// CheckDaemonExportOK creates/removes git-daemon-export-ok for git-daemon...