-
-
Notifications
You must be signed in to change notification settings - Fork 21
Expand file tree
/
Copy pathChangedFilesInPullRequestModule.cs
More file actions
28 lines (25 loc) · 997 Bytes
/
Copy pathChangedFilesInPullRequestModule.cs
File metadata and controls
28 lines (25 loc) · 997 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using ModularPipelines.Attributes;
using ModularPipelines.Build.Attributes;
using ModularPipelines.Context;
using ModularPipelines.Git.Extensions;
using ModularPipelines.Git.Options;
using ModularPipelines.Modules;
using File = ModularPipelines.FileSystem.File;
namespace ModularPipelines.Build.Modules;
[RunOnLinuxOnly]
[SkipOnMainBranch]
public class ChangedFilesInPullRequestModule : Module<IReadOnlyList<File>>
{
public override async Task<IReadOnlyList<File>?> ExecuteAsync(IModuleContext context, CancellationToken cancellationToken)
{
var result = await context.Git().Commands.Diff(new GitDiffOptions
{
NameOnly = true,
Arguments = ["origin/main"],
}, cancellationToken);
return result.StandardOutput.Split(Environment.NewLine,
StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries)
.Select(x => new File(Path.Combine(context.Git().RootDirectory, x)))
.ToList();
}
}