Begin implementation of Enterprise ManagementConsole API, redux (#2010)

* Initial implementation of ManagementConsole - maintenance mode

* Add environment var support for management console password for integration tests

* Add reactive client and unit tests

* Update some xmlDoc

* I think this is a better way to setup the underlying baseUri on IConneciton, to achieve managemet console access rather than requiring a specific GitHubClient that cant call normal API's
Instead, the management client methods can check the base Url and if it contains /api/v3/ they can set their relative endpoint Uri to include a leading "/" which will cause the /api/v3/ to be removed.

* Update EnterpriseClient.cs

Fix xml comments

* Update IEnterpriseClient.cs

Fix xml comments

* Still trying to get the xmDoc perfect, thanks app veyor :)

* XmlDoc'ing my way to success

* Add specific test attribute for management console tests

* check chronic string empty/null

* Use helper's password field in test

* Tidy up maintenance mode tests by using a context/destructor to manage the initial/end state of maintenance mode

* make internal and tidy up URL concatenation

* move GHE endpoint fixup inside ApiUrls methods

* Rework request object to be the correct structure so SimpleJsonSerializer can be used to serialize it.  Remove MaintenanceDate class and just pass in the Date/string for when
Still need to use UrlFormEncoding rather than json in the POST body though...

* Create abstract base class for FormUrlEncoded parameters (similar to existing RequetParameters) and inherit from it in UpdateMaintenanceRequest

* Fix maintenance context logic - destructor should always turn maintenance OFF regardless of initial requested state

* Fix xml comment

* Fix Xml comment

* Those pesky xml comments!

* Fine, I give up!

* Fix string.Format

* fix bad rebase

* fix failing convention tests

* restore missing whitespace

* writing some docs

* some edits

* edit
This commit is contained in:
Brendan Forster
2019-09-22 15:09:56 -03:00
committed by GitHub
parent fafbf33b78
commit 8cd0b341dd
37 changed files with 965 additions and 40 deletions
+16 -4
View File
@@ -69,7 +69,7 @@ namespace Octokit.Tests.Integration
static EnterpriseHelper()
{
// Force reading of environment variables.
// This wasn't happening if UserName/Organization were
// This wasn't happening if UserName/Organization were
// retrieved before Credentials.
Debug.WriteIf(Credentials == null, "No credentials specified.");
}
@@ -108,10 +108,9 @@ namespace Octokit.Tests.Integration
get { return Environment.GetEnvironmentVariable("OCTOKIT_GHE_CLIENTSECRET"); }
}
public static void DeleteUser(IConnection connection, User user)
public static string ManagementConsolePassword
{
if (user != null)
DeleteUser(connection, user.Login);
get { return Environment.GetEnvironmentVariable("OCTOKIT_GHE_CONSOLEPASSWORD"); }
}
public static void DeleteUser(IConnection connection, string username)
@@ -162,6 +161,19 @@ namespace Octokit.Tests.Integration
}
}
public static void SetMaintenanceMode(IConnection connection, bool enabled)
{
try
{
var client = new GitHubClient(connection);
client.Enterprise.ManagementConsole.EditMaintenanceMode(
new UpdateMaintenanceRequest(new UpdateMaintenanceRequestDetails(enabled)),
EnterpriseHelper.ManagementConsolePassword)
.Wait(TimeSpan.FromSeconds(15));
}
catch { }
}
public static IGitHubClient GetAuthenticatedClient()
{
return new GitHubClient(new ProductHeaderValue("OctokitEnterpriseTests"), GitHubEnterpriseUrl)