mirror of
https://github.com/zoriya/octokit.net.git
synced 2025-12-06 07:16:09 +00:00
* 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
108 lines
4.0 KiB
C#
108 lines
4.0 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
using System.Globalization;
|
|
|
|
namespace Octokit
|
|
{
|
|
[DebuggerDisplay("{DebuggerDisplay,nq}")]
|
|
public class UpdateMaintenanceRequest : FormUrlEncodedParameters
|
|
{
|
|
/// <summary>
|
|
/// Maintenance request with default details (results in Maintenance mode being turned off immediately)
|
|
/// </summary>
|
|
public UpdateMaintenanceRequest()
|
|
{
|
|
Maintenance = new UpdateMaintenanceRequestDetails();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Maintenance request with specific details
|
|
/// </summary>
|
|
public UpdateMaintenanceRequest(UpdateMaintenanceRequestDetails maintenance)
|
|
{
|
|
Ensure.ArgumentNotNull(maintenance, "maintenance");
|
|
|
|
Maintenance = maintenance;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Details for the maintenance request
|
|
/// </summary>
|
|
public UpdateMaintenanceRequestDetails Maintenance { get; protected set; }
|
|
|
|
internal string DebuggerDisplay
|
|
{
|
|
get
|
|
{
|
|
return string.Format(CultureInfo.InvariantCulture, "Maintenance: {0}", this.Maintenance.DebuggerDisplay);
|
|
}
|
|
}
|
|
}
|
|
|
|
[DebuggerDisplay("{DebuggerDisplay,nq}")]
|
|
public class UpdateMaintenanceRequestDetails
|
|
{
|
|
/// <summary>
|
|
/// Maintenance request details with default values (results in Maintenance mode being turned off immediately)
|
|
/// </summary>
|
|
public UpdateMaintenanceRequestDetails()
|
|
{ }
|
|
|
|
/// <summary>
|
|
/// Maintenance request details to enable/disable maintenance mode immediately
|
|
/// </summary>
|
|
/// <param name="enabled">true to enable, false to disable</param>
|
|
public UpdateMaintenanceRequestDetails(bool enabled)
|
|
{
|
|
Enabled = enabled;
|
|
When = "now";
|
|
}
|
|
|
|
/// <summary>
|
|
/// Maintenance request details to enable/disable maintenance at a specified time (only applicable when enabling maintenance)
|
|
/// </summary>
|
|
/// <param name="enabled">true to enable, false to disable</param>
|
|
/// <param name="when">A phrase specifying when maintenance mode will be enabled. Phrase uses humanised forms supported by the <a href="https://github.com/mojombo/chronic">mojombo/chronic library</a> used by the GitHub API</param>
|
|
/// such as "this friday at 5pm" or "5 minutes before midday tomorrow"
|
|
/// <remarks>If enabled is false, the when parameter is ignored and maintenance is turned off immediately</remarks>
|
|
public UpdateMaintenanceRequestDetails(bool enabled, string when)
|
|
{
|
|
Ensure.ArgumentNotNullOrEmptyString(when, "when");
|
|
|
|
Enabled = enabled;
|
|
When = when;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Maintenance request details to enable/disable maintenance at a specified time (only applicable when enabling maintenance)
|
|
/// </summary>
|
|
/// <param name="enabled">true to enable, false to disable</param>
|
|
/// <param name="when">A <see cref="DateTimeOffset"/> specifying when maintenance mode will be enabled.</param>
|
|
/// <remarks>If enabled is false, the when parameter is ignored and maintenance is turned off immediately</remarks>
|
|
public UpdateMaintenanceRequestDetails(bool enabled, DateTimeOffset when)
|
|
{
|
|
Enabled = enabled;
|
|
When = when.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ",
|
|
CultureInfo.InvariantCulture);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Whether maintenance mode is enabled or disabled
|
|
/// </summary>
|
|
public bool Enabled { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// When maintenance mode will take effect (only applicable when enabling maintenance)
|
|
/// </summary>
|
|
public string When { get; protected set; }
|
|
|
|
internal string DebuggerDisplay
|
|
{
|
|
get
|
|
{
|
|
return string.Format(CultureInfo.InvariantCulture, "Enabled: {0} When: {1}", this.Enabled, this.When);
|
|
}
|
|
}
|
|
}
|
|
}
|