@@ -79,6 +79,18 @@ type MinimalCommitFile struct {
7979 Changes int `json:"changes,omitempty"`
8080}
8181
82+ // MinimalPRFile represents a file changed in a pull request.
83+ // Compared to MinimalCommitFile, it includes the patch diff and previous filename for renames.
84+ type MinimalPRFile struct {
85+ Filename string `json:"filename"`
86+ Status string `json:"status,omitempty"`
87+ Additions int `json:"additions,omitempty"`
88+ Deletions int `json:"deletions,omitempty"`
89+ Changes int `json:"changes,omitempty"`
90+ Patch string `json:"patch,omitempty"`
91+ PreviousFilename string `json:"previous_filename,omitempty"`
92+ }
93+
8294// MinimalCommit is the trimmed output type for commit objects.
8395type MinimalCommit struct {
8496 SHA string `json:"sha"`
@@ -600,6 +612,22 @@ func convertToMinimalCommit(commit *github.RepositoryCommit, includeDiffs bool)
600612 return minimalCommit
601613}
602614
615+ func convertToMinimalPRFiles (files []* github.CommitFile ) []MinimalPRFile {
616+ result := make ([]MinimalPRFile , 0 , len (files ))
617+ for _ , f := range files {
618+ result = append (result , MinimalPRFile {
619+ Filename : f .GetFilename (),
620+ Status : f .GetStatus (),
621+ Additions : f .GetAdditions (),
622+ Deletions : f .GetDeletions (),
623+ Changes : f .GetChanges (),
624+ Patch : f .GetPatch (),
625+ PreviousFilename : f .GetPreviousFilename (),
626+ })
627+ }
628+ return result
629+ }
630+
603631// convertToMinimalBranch converts a GitHub API Branch to MinimalBranch
604632func convertToMinimalBranch (branch * github.Branch ) MinimalBranch {
605633 return MinimalBranch {
0 commit comments