From c0390c277e5fcda8d7288b717ff952e01dcdcb8d Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Mon, 21 Oct 2024 17:38:01 +0200 Subject: pkg/vcs: parse git diffs Provide a functionality to extract the files affected by a git patch. --- pkg/vcs/git.go | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'pkg/vcs/git.go') diff --git a/pkg/vcs/git.go b/pkg/vcs/git.go index 7425066d2..b75859338 100644 --- a/pkg/vcs/git.go +++ b/pkg/vcs/git.go @@ -654,3 +654,14 @@ func (git *git) PushCommit(repo, commit string) error { } return nil } + +var fileNameRe = regexp.MustCompile(`(?m)^diff.* b\/([^\s]+)`) + +// ParseGitDiff extracts the files modified in the git patch. +func ParseGitDiff(patch []byte) []string { + var files []string + for _, match := range fileNameRe.FindAllStringSubmatch(string(patch), -1) { + files = append(files, match[1]) + } + return files +} -- cgit mrf-deployment