mirror of
https://github.com/actions/runner.git
synced 2025-12-11 12:57:05 +00:00
GitHub Actions Runner
This commit is contained in:
37
src/Runner.Sdk/Util/UrlUtil.cs
Normal file
37
src/Runner.Sdk/Util/UrlUtil.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
|
||||
namespace GitHub.Runner.Sdk
|
||||
{
|
||||
public static class UrlUtil
|
||||
{
|
||||
public static Uri GetCredentialEmbeddedUrl(Uri baseUrl, string username, string password)
|
||||
{
|
||||
ArgUtil.NotNull(baseUrl, nameof(baseUrl));
|
||||
|
||||
// return baseurl when there is no username and password
|
||||
if (string.IsNullOrEmpty(username) && string.IsNullOrEmpty(password))
|
||||
{
|
||||
return baseUrl;
|
||||
}
|
||||
|
||||
UriBuilder credUri = new UriBuilder(baseUrl);
|
||||
|
||||
// ensure we have a username, uribuild will throw if username is empty but password is not.
|
||||
if (string.IsNullOrEmpty(username))
|
||||
{
|
||||
username = "emptyusername";
|
||||
}
|
||||
|
||||
// escape chars in username for uri
|
||||
credUri.UserName = Uri.EscapeDataString(username);
|
||||
|
||||
// escape chars in password for uri
|
||||
if (!string.IsNullOrEmpty(password))
|
||||
{
|
||||
credUri.Password = Uri.EscapeDataString(password);
|
||||
}
|
||||
|
||||
return credUri.Uri;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user