Fix /repos/{owner}/{repo}/pulls/{index}/files endpoint not populating previous_filename (#32017) (#32028)

Backport #32017 by @charles-plutohealth

---
`status == "rename"` should have read `status == "renamed"`. The typo
means that file.PreviousFilename would never be populated, which e.g.
breaks usage of the Github Action at
https://github.com/dorny/paths-filter.

Co-authored-by: charles-plutohealth <143208583+charles-plutohealth@users.noreply.github.com>
This commit is contained in:
Giteabot 2024-09-12 07:58:43 +08:00 committed by GitHub
parent 0629c08a6d
commit b3af359cc6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -424,6 +424,7 @@ func ToLFSLock(ctx context.Context, l *git_model.LFSLock) *api.LFSLock {
// ToChangedFile convert a gitdiff.DiffFile to api.ChangedFile // ToChangedFile convert a gitdiff.DiffFile to api.ChangedFile
func ToChangedFile(f *gitdiff.DiffFile, repo *repo_model.Repository, commit string) *api.ChangedFile { func ToChangedFile(f *gitdiff.DiffFile, repo *repo_model.Repository, commit string) *api.ChangedFile {
status := "changed" status := "changed"
previousFilename := ""
if f.IsDeleted { if f.IsDeleted {
status = "deleted" status = "deleted"
} else if f.IsCreated { } else if f.IsCreated {
@ -432,23 +433,21 @@ func ToChangedFile(f *gitdiff.DiffFile, repo *repo_model.Repository, commit stri
status = "copied" status = "copied"
} else if f.IsRenamed && f.Type == gitdiff.DiffFileRename { } else if f.IsRenamed && f.Type == gitdiff.DiffFileRename {
status = "renamed" status = "renamed"
previousFilename = f.OldName
} else if f.Addition == 0 && f.Deletion == 0 { } else if f.Addition == 0 && f.Deletion == 0 {
status = "unchanged" status = "unchanged"
} }
file := &api.ChangedFile{ file := &api.ChangedFile{
Filename: f.GetDiffFileName(), Filename: f.GetDiffFileName(),
Status: status, Status: status,
Additions: f.Addition, Additions: f.Addition,
Deletions: f.Deletion, Deletions: f.Deletion,
Changes: f.Addition + f.Deletion, Changes: f.Addition + f.Deletion,
HTMLURL: fmt.Sprint(repo.HTMLURL(), "/src/commit/", commit, "/", util.PathEscapeSegments(f.GetDiffFileName())), PreviousFilename: previousFilename,
ContentsURL: fmt.Sprint(repo.APIURL(), "/contents/", util.PathEscapeSegments(f.GetDiffFileName()), "?ref=", commit), HTMLURL: fmt.Sprint(repo.HTMLURL(), "/src/commit/", commit, "/", util.PathEscapeSegments(f.GetDiffFileName())),
RawURL: fmt.Sprint(repo.HTMLURL(), "/raw/commit/", commit, "/", util.PathEscapeSegments(f.GetDiffFileName())), ContentsURL: fmt.Sprint(repo.APIURL(), "/contents/", util.PathEscapeSegments(f.GetDiffFileName()), "?ref=", commit),
} RawURL: fmt.Sprint(repo.HTMLURL(), "/raw/commit/", commit, "/", util.PathEscapeSegments(f.GetDiffFileName())),
if status == "rename" {
file.PreviousFilename = f.OldName
} }
return file return file