diff --git a/src/Runner.Listener/Configuration/ConfigurationManager.cs b/src/Runner.Listener/Configuration/ConfigurationManager.cs index bb5624e34..2c18d8d60 100644 --- a/src/Runner.Listener/Configuration/ConfigurationManager.cs +++ b/src/Runner.Listener/Configuration/ConfigurationManager.cs @@ -284,6 +284,7 @@ namespace GitHub.Runner.Listener.Configuration { var runner = await _dotcomServer.ReplaceRunnerAsync(runnerSettings.PoolId, agent, runnerSettings.GitHubUrl, registerToken, publicKeyXML); runnerSettings.ServerUrlV2 = runner.RunnerAuthorization.ServerUrl; + runnerSettings.UseV2Flow = true; // if we are using runner admin, we also need to hit broker agent.Id = runner.Id; agent.Authorization = new TaskAgentAuthorization() @@ -291,6 +292,13 @@ namespace GitHub.Runner.Listener.Configuration AuthorizationUrl = runner.RunnerAuthorization.AuthorizationUrl, ClientId = new Guid(runner.RunnerAuthorization.ClientId) }; + + if (!string.IsNullOrEmpty(runner.RunnerAuthorization.LegacyAuthorizationUrl?.AbsoluteUri)) + { + agent.Authorization.AuthorizationUrl = runner.RunnerAuthorization.LegacyAuthorizationUrl; + agent.Properties["EnableAuthMigrationByDefault"] = true; + agent.Properties["AuthorizationUrlV2"] = runner.RunnerAuthorization.AuthorizationUrl.AbsoluteUri; + } } else { @@ -342,6 +350,13 @@ namespace GitHub.Runner.Listener.Configuration AuthorizationUrl = runner.RunnerAuthorization.AuthorizationUrl, ClientId = new Guid(runner.RunnerAuthorization.ClientId) }; + + if (!string.IsNullOrEmpty(runner.RunnerAuthorization.LegacyAuthorizationUrl?.AbsoluteUri)) + { + agent.Authorization.AuthorizationUrl = runner.RunnerAuthorization.LegacyAuthorizationUrl; + agent.Properties["EnableAuthMigrationByDefault"] = true; + agent.Properties["AuthorizationUrlV2"] = runner.RunnerAuthorization.AuthorizationUrl.AbsoluteUri; + } } else { diff --git a/src/Sdk/DTWebApi/WebApi/Runner.cs b/src/Sdk/DTWebApi/WebApi/Runner.cs index f3fdbf60e..26c3e2291 100644 --- a/src/Sdk/DTWebApi/WebApi/Runner.cs +++ b/src/Sdk/DTWebApi/WebApi/Runner.cs @@ -18,6 +18,16 @@ namespace GitHub.DistributedTask.WebApi internal set; } + /// + /// The url to refresh tokens with legacy service + /// + [JsonProperty("legacy_authorization_url")] + public Uri LegacyAuthorizationUrl + { + get; + internal set; + } + /// /// The url to connect to poll for messages ///