Add user-agent to all http clients using RawClientHttpRequestSettings. (#3115)

This commit is contained in:
Tingluo Huang
2024-01-30 13:39:41 -05:00
committed by GitHub
parent dcb790f780
commit 7414e08fbd
4 changed files with 30 additions and 3 deletions

View File

@@ -23,7 +23,13 @@ namespace GitHub.Runner.Sdk
if (VssClientHttpRequestSettings.Default.UserAgent != null && VssClientHttpRequestSettings.Default.UserAgent.Count > 0) if (VssClientHttpRequestSettings.Default.UserAgent != null && VssClientHttpRequestSettings.Default.UserAgent.Count > 0)
{ {
headerValues.AddRange(VssClientHttpRequestSettings.Default.UserAgent); foreach (var headerVal in VssClientHttpRequestSettings.Default.UserAgent)
{
if (!headerValues.Contains(headerVal))
{
headerValues.Add(headerVal);
}
}
} }
VssClientHttpRequestSettings.Default.UserAgent = headerValues; VssClientHttpRequestSettings.Default.UserAgent = headerValues;
@@ -33,6 +39,23 @@ namespace GitHub.Runner.Sdk
{ {
VssClientHttpRequestSettings.Default.ServerCertificateValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator; VssClientHttpRequestSettings.Default.ServerCertificateValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
} }
var rawHeaderValues = new List<ProductInfoHeaderValue>();
rawHeaderValues.AddRange(additionalUserAgents);
rawHeaderValues.Add(new ProductInfoHeaderValue($"({StringUtil.SanitizeUserAgentHeader(RuntimeInformation.OSDescription)})"));
if (RawClientHttpRequestSettings.Default.UserAgent != null && RawClientHttpRequestSettings.Default.UserAgent.Count > 0)
{
foreach (var headerVal in RawClientHttpRequestSettings.Default.UserAgent)
{
if (!rawHeaderValues.Contains(headerVal))
{
rawHeaderValues.Add(headerVal);
}
}
}
RawClientHttpRequestSettings.Default.UserAgent = rawHeaderValues;
} }
public static VssConnection CreateConnection( public static VssConnection CreateConnection(

View File

@@ -49,6 +49,9 @@ namespace GitHub.Runner.Worker
!string.IsNullOrEmpty(orchestrationId.Value)) !string.IsNullOrEmpty(orchestrationId.Value))
{ {
HostContext.UserAgents.Add(new ProductInfoHeaderValue("OrchestrationId", orchestrationId.Value)); HostContext.UserAgents.Add(new ProductInfoHeaderValue("OrchestrationId", orchestrationId.Value));
// make sure orchestration id is in the user-agent header.
VssUtil.InitializeVssClientSettings(HostContext.UserAgents, HostContext.WebProxy);
} }
var jobServerQueueTelemetry = false; var jobServerQueueTelemetry = false;

View File

@@ -1,12 +1,11 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
namespace GitHub.Services.Common.Internal namespace GitHub.Services.Common.Internal
{ {
[EditorBrowsable(EditorBrowsableState.Never)] [EditorBrowsable(EditorBrowsableState.Never)]
public static class RawHttpHeaders public static class RawHttpHeaders
{ {
public const String SessionHeader = "X-Runner-Session"; public const String SessionHeader = "X-Actions-Session";
} }
} }

View File

@@ -138,6 +138,8 @@ namespace GitHub.Services.Common
response.Dispose(); response.Dispose();
} }
this.Settings.ApplyTo(request);
// Let's start with sending a token // Let's start with sending a token
IssuedToken token = null; IssuedToken token = null;
if (m_tokenProvider != null) if (m_tokenProvider != null)