]> source.dussan.org Git - gitea.git/commitdiff
Fix `/repos/{owner}/{repo}/pulls/{index}/files` endpoint not populating `previous_fil...
authorcharles-plutohealth <143208583+charles-plutohealth@users.noreply.github.com>
Wed, 11 Sep 2024 17:29:27 +0000 (13:29 -0400)
committerGitHub <noreply@github.com>
Wed, 11 Sep 2024 17:29:27 +0000 (01:29 +0800)
---
`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.

services/convert/convert.go

index d70c1b940a53b7c9f00c3c1a7fa04ff99fb4b3a9..041d553e98cc51a023760e98758d6554fff5f668 100644 (file)
@@ -485,6 +485,7 @@ func ToLFSLock(ctx context.Context, l *git_model.LFSLock) *api.LFSLock {
 // ToChangedFile convert a gitdiff.DiffFile to api.ChangedFile
 func ToChangedFile(f *gitdiff.DiffFile, repo *repo_model.Repository, commit string) *api.ChangedFile {
        status := "changed"
+       previousFilename := ""
        if f.IsDeleted {
                status = "deleted"
        } else if f.IsCreated {
@@ -493,23 +494,21 @@ func ToChangedFile(f *gitdiff.DiffFile, repo *repo_model.Repository, commit stri
                status = "copied"
        } else if f.IsRenamed && f.Type == gitdiff.DiffFileRename {
                status = "renamed"
+               previousFilename = f.OldName
        } else if f.Addition == 0 && f.Deletion == 0 {
                status = "unchanged"
        }
 
        file := &api.ChangedFile{
-               Filename:    f.GetDiffFileName(),
-               Status:      status,
-               Additions:   f.Addition,
-               Deletions:   f.Deletion,
-               Changes:     f.Addition + f.Deletion,
-               HTMLURL:     fmt.Sprint(repo.HTMLURL(), "/src/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
+               Filename:         f.GetDiffFileName(),
+               Status:           status,
+               Additions:        f.Addition,
+               Deletions:        f.Deletion,
+               Changes:          f.Addition + f.Deletion,
+               PreviousFilename: previousFilename,
+               HTMLURL:          fmt.Sprint(repo.HTMLURL(), "/src/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())),
        }
 
        return file