Skip to content
This repository has been archived by the owner on Mar 29, 2023. It is now read-only.

Commit

Permalink
Cherry-pick: Capture telemetry when git errors on unsafe repository. (a…
Browse files Browse the repository at this point in the history
…ctions#1823) (actions#1827)

* Capture telemetry when git errors on unsafe repository. (actions#1823)

* Release 2.290.1 runner.
  • Loading branch information
TingluoHuang authored Apr 14, 2022
1 parent d95bfc5 commit b86ce48
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 3 deletions.
1 change: 1 addition & 0 deletions releaseNote.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
- Better exception handling when runner is configured with invalid Url or token (#1741)
- Set user agent for websocket requests (#1791)
- Gracefully handle websocket failures (#1789)
- Capture telemetry when git errors on unsafe repository. (#1823)

## Windows x64
We recommend configuring the runner in a root folder of the Windows drive (e.g. "C:\actions-runner"). This will help avoid issues related to service identity folder permissions and long file path restrictions on Windows.
Expand Down
2 changes: 1 addition & 1 deletion releaseVersion
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.290.0
2.290.1
5 changes: 5 additions & 0 deletions src/Runner.Worker/Handlers/OutputManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,11 @@ public void OnDataReceived(object sender, ProcessDataReceivedEventArgs e)
}
}

if (line.Contains("fatal: unsafe repository", StringComparison.OrdinalIgnoreCase))
{
_executionContext.StepTelemetry.ErrorMessages.Add(line);
}

// Regular output
_executionContext.Output(line);
}
Expand Down
17 changes: 16 additions & 1 deletion src/Test/L0/Worker/OutputManagerL0.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
using System.Globalization;
using System.IO;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;
using System.Runtime.CompilerServices;
using GitHub.Runner.Sdk;
using GitHub.Runner.Worker;
using GitHub.Runner.Worker.Container;
Expand Down Expand Up @@ -937,6 +937,19 @@ public async void MatcherFromPath()
}
}

[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
public void CaptureTelemetryForGitUnsafeRepository()
{
using (Setup())
using (_outputManager)
{
Process("fatal: unsafe repository ('/github/workspace' is owned by someone else)");
Assert.Contains("fatal: unsafe repository ('/github/workspace' is owned by someone else)", _executionContext.Object.StepTelemetry.ErrorMessages);
}
}

private TestHostContext Setup(
[CallerMemberName] string name = "",
IssueMatchersConfig matchers = null,
Expand All @@ -962,6 +975,8 @@ private TestHostContext Setup(
Variables = _variables,
WriteDebug = true,
});
_executionContext.Setup(x => x.StepTelemetry)
.Returns(new DTWebApi.ActionsStepTelemetry());
_executionContext.Setup(x => x.GetMatchers())
.Returns(matchers?.Matchers ?? new List<IssueMatcherConfig>());
_executionContext.Setup(x => x.Add(It.IsAny<OnMatcherChanged>()))
Expand Down
2 changes: 1 addition & 1 deletion src/runnerversion
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.290.0
2.290.1

0 comments on commit b86ce48

Please sign in to comment.