Move RepositorySettings out of Internal namespace

Make abstract
This commit is contained in:
Jordan Dominion
2024-09-03 07:01:53 -04:00
parent 157934730c
commit 59dd0351b8
17 changed files with 27 additions and 31 deletions
+2 -2
View File
@@ -7,8 +7,8 @@
<TgsConfigVersion>5.2.0</TgsConfigVersion>
<TgsApiVersion>10.8.0</TgsApiVersion>
<TgsCommonLibraryVersion>7.0.0</TgsCommonLibraryVersion>
<TgsApiLibraryVersion>13.8.0</TgsApiLibraryVersion>
<TgsClientVersion>16.1.0</TgsClientVersion>
<TgsApiLibraryVersion>14.0.0</TgsApiLibraryVersion>
<TgsClientVersion>17.0.0</TgsClientVersion>
<TgsDmapiVersion>7.3.0</TgsDmapiVersion>
<TgsInteropVersion>5.10.0</TgsInteropVersion>
<TgsHostWatchdogVersion>1.5.0</TgsHostWatchdogVersion>
+6 -6
View File
@@ -185,7 +185,7 @@ namespace Tgstation.Server.Api.Models
SwarmIntegrityCheckFailed,
/// <summary>
/// One of <see cref="Internal.RepositorySettings.AccessUser"/> and <see cref="Internal.RepositorySettings.AccessToken"/> is set while the other isn't.
/// One of <see cref="RepositorySettings.AccessUser"/> and <see cref="RepositorySettings.AccessToken"/> is set while the other isn't.
/// </summary>
[Description("Either both accessUser and accessToken must be set or neither!")]
RepoMismatchUserAndAccessToken,
@@ -239,13 +239,13 @@ namespace Tgstation.Server.Api.Models
RepoDuplicateTestMerge,
/// <summary>
/// Attempted to set a whitespace <see cref="Internal.RepositorySettings.CommitterName"/>.
/// Attempted to set a whitespace <see cref="RepositorySettings.CommitterName"/>.
/// </summary>
[Description("committerName cannot be whitespace!")]
RepoWhitespaceCommitterName,
/// <summary>
/// Attempted to set a whitespace <see cref="Internal.RepositorySettings.CommitterEmail"/>.
/// Attempted to set a whitespace <see cref="RepositorySettings.CommitterEmail"/>.
/// </summary>
[Description("committerEmail cannot be whitespace!")]
RepoWhitespaceCommitterEmail,
@@ -377,19 +377,19 @@ namespace Tgstation.Server.Api.Models
InstanceMissingDreamMakerSettings,
/// <summary>
/// Missing <see cref="Internal.RepositorySettings"/> in database.
/// Missing <see cref="RepositorySettings"/> in database.
/// </summary>
[Description("Could not retrieve Repository settings from the database!")]
InstanceMissingRepositorySettings,
/// <summary>
/// Performing an automatic update with the <see cref="Internal.RepositorySettings.AutoUpdatesKeepTestMerges"/> flag resulted in merge conflicts.
/// Performing an automatic update with the <see cref="RepositorySettings.AutoUpdatesKeepTestMerges"/> flag resulted in merge conflicts.
/// </summary>
[Description("Performing this automatic update as a merge would result in conficts. Aborting!")]
InstanceUpdateTestMergeConflict,
/// <summary>
/// <see cref="Internal.RepositorySettings.AccessUser"/> and <see cref="Internal.RepositorySettings.AccessToken"/> are required for this operation.
/// <see cref="RepositorySettings.AccessUser"/> and <see cref="RepositorySettings.AccessToken"/> are required for this operation.
/// </summary>
[Description("Git credentials are required for this operation!")]
RepoCredentialsRequired,
@@ -1,11 +1,11 @@
using System.ComponentModel.DataAnnotations;
namespace Tgstation.Server.Api.Models.Internal
namespace Tgstation.Server.Api.Models
{
/// <summary>
/// Represents configurable settings for a git repository.
/// </summary>
public class RepositorySettings
public abstract class RepositorySettings
{
/// <summary>
/// Prefix for TGS encoded app private keys. This is encoded in the format PREFIX + (APP_ID OR CLIENT_ID) + ':' + BASE64(APP_PRIVATE_KEY).
@@ -19,7 +19,7 @@ namespace Tgstation.Server.Api.Rights
CancelPendingChanges = 1 << 0,
/// <summary>
/// User may clone the repository if it does not exist. This also allows setting <see cref="Models.Internal.RepositorySettings.UpdateSubmodules"/>, <see cref="Models.Internal.RepositorySettings.AccessUser"/>, and <see cref="Models.Internal.RepositorySettings.AccessToken"/> at clone time.
/// User may clone the repository if it does not exist. This also allows setting <see cref="Models.RepositorySettings.UpdateSubmodules"/>, <see cref="Models.RepositorySettings.AccessUser"/>, and <see cref="Models.RepositorySettings.AccessToken"/> at clone time.
/// </summary>
SetOrigin = 1 << 1,
@@ -39,17 +39,17 @@ namespace Tgstation.Server.Api.Rights
UpdateBranch = 1 << 4,
/// <summary>
/// User may change <see cref="Models.Internal.RepositorySettings.CommitterName"/> and <see cref="Models.Internal.RepositorySettings.CommitterEmail"/>.
/// User may change <see cref="Models.RepositorySettings.CommitterName"/> and <see cref="Models.RepositorySettings.CommitterEmail"/>.
/// </summary>
ChangeCommitter = 1 << 5,
/// <summary>
/// User may change <see cref="Models.Internal.RepositorySettings.PushTestMergeCommits"/>, <see cref="Models.Internal.RepositorySettings.PostTestMergeComment"/>, and <see cref="Models.Internal.RepositorySettings.CreateGitHubDeployments"/>.
/// User may change <see cref="Models.RepositorySettings.PushTestMergeCommits"/>, <see cref="Models.RepositorySettings.PostTestMergeComment"/>, and <see cref="Models.RepositorySettings.CreateGitHubDeployments"/>.
/// </summary>
ChangeTestMergeCommits = 1 << 6,
/// <summary>
/// User may read and change <see cref="Models.Internal.RepositorySettings.AccessUser"/> and <see cref="Models.Internal.RepositorySettings.AccessToken"/>.
/// User may read and change <see cref="Models.RepositorySettings.AccessUser"/> and <see cref="Models.RepositorySettings.AccessToken"/>.
/// </summary>
ChangeCredentials = 1 << 7,
@@ -64,7 +64,7 @@ namespace Tgstation.Server.Api.Rights
Read = 1 << 9,
/// <summary>
/// User may change <see cref="Models.Internal.RepositorySettings.AutoUpdatesKeepTestMerges"/> and <see cref="Models.Internal.RepositorySettings.AutoUpdatesSynchronize"/>.
/// User may change <see cref="Models.RepositorySettings.AutoUpdatesKeepTestMerges"/> and <see cref="Models.RepositorySettings.AutoUpdatesSynchronize"/>.
/// </summary>
ChangeAutoUpdateSettings = 1 << 10,
@@ -29,7 +29,7 @@ namespace Tgstation.Server.Host.Components.Repository
/// <inheritdoc />
public ValueTask<Models.TestMerge> GetTestMerge(
TestMergeParameters parameters,
Api.Models.Internal.RepositorySettings repositorySettings,
RepositorySettings repositorySettings,
CancellationToken cancellationToken) => throw new NotSupportedException();
}
}
@@ -6,7 +6,6 @@ using Microsoft.Extensions.Logging;
using Octokit;
using Tgstation.Server.Api.Models;
using Tgstation.Server.Api.Models.Internal;
using Tgstation.Server.Host.Utils.GitHub;
namespace Tgstation.Server.Host.Components.Repository
@@ -6,7 +6,6 @@ using GitLabApiClient;
using Microsoft.Extensions.Logging;
using Tgstation.Server.Api.Models;
using Tgstation.Server.Api.Models.Internal;
namespace Tgstation.Server.Host.Components.Repository
{
@@ -6,7 +6,6 @@ using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Tgstation.Server.Api.Models;
using Tgstation.Server.Api.Models.Internal;
namespace Tgstation.Server.Host.Components.Repository
{
@@ -12,7 +12,6 @@ using LibGit2Sharp.Handlers;
using Microsoft.Extensions.Logging;
using Tgstation.Server.Api.Models;
using Tgstation.Server.Api.Models.Internal;
using Tgstation.Server.Host.Components.Events;
using Tgstation.Server.Host.Configuration;
using Tgstation.Server.Host.Extensions;
@@ -25,7 +25,7 @@ namespace Tgstation.Server.Host.Components.Repository
/// <summary>
/// The current <see cref="RepositorySettings"/> for the <see cref="RepositoryUpdateService"/>.
/// </summary>
readonly RepositorySettings currentModel;
readonly Models.RepositorySettings currentModel;
/// <summary>
/// The <see cref="User"/> that initiated the repository update.
@@ -50,7 +50,7 @@ namespace Tgstation.Server.Host.Components.Repository
/// <param name="logger">The value of <see cref="logger"/>.</param>
/// <param name="instanceId">The value of <see cref="instanceId"/>.</param>
public RepositoryUpdateService(
RepositorySettings currentModel,
Models.RepositorySettings currentModel,
User initiatingUser,
ILogger<RepositoryUpdateService> logger,
long instanceId)
@@ -770,7 +770,7 @@ namespace Tgstation.Server.Host.Controllers
AutoUpdateInterval = initialSettings.AutoUpdateInterval ?? 0,
AutoUpdateCron = initialSettings.AutoUpdateCron ?? String.Empty,
ChatBotLimit = initialSettings.ChatBotLimit ?? Models.Instance.DefaultChatBotLimit,
RepositorySettings = new RepositorySettings
RepositorySettings = new Models.RepositorySettings
{
CommitterEmail = Components.Repository.Repository.DefaultCommitterEmail,
CommitterName = Components.Repository.Repository.DefaultCommitterName,
@@ -369,7 +369,7 @@ namespace Tgstation.Server.Host.Controllers
if (currentModel == default)
return this.Gone();
bool CheckModified<T>(Expression<Func<Api.Models.Internal.RepositorySettings, T>> expression, RepositoryRights requiredRight)
bool CheckModified<T>(Expression<Func<Api.Models.RepositorySettings, T>> expression, RepositoryRights requiredRight)
{
var memberSelectorExpression = (MemberExpression)expression.Body;
var property = (PropertyInfo)memberSelectorExpression.Member;
@@ -531,7 +531,7 @@ namespace Tgstation.Server.Host.Controllers
/// </summary>
/// <param name="currentModel">The current <see cref="RepositorySettings"/>.</param>
/// <returns>A new <see cref="RepositoryUpdateService"/>.</returns>
RepositoryUpdateService CreateRepositoryUpdateService(RepositorySettings currentModel)
RepositoryUpdateService CreateRepositoryUpdateService(Models.RepositorySettings currentModel)
=> new(
currentModel,
AuthenticationContext.User,
@@ -5,7 +5,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
namespace Tgstation.Server.Host.Database.Migrations
{
/// <summary>
/// Add the <see cref="Api.Models.Internal.RepositorySettings.PostTestMergeComment"/> column for MSSQL.
/// Add the <see cref="Api.Models.RepositorySettings.PostTestMergeComment"/> column for MSSQL.
/// </summary>
public partial class MSToggleTestmergeComments : Migration
{
@@ -5,7 +5,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
namespace Tgstation.Server.Host.Database.Migrations
{
/// <summary>
/// Add the <see cref="Api.Models.Internal.RepositorySettings.PostTestMergeComment"/> column for MySQL/MariaDB.
/// Add the <see cref="Api.Models.RepositorySettings.PostTestMergeComment"/> column for MySQL/MariaDB.
/// </summary>
public partial class MYToggleTestmergeComments : Migration
{
@@ -4,8 +4,8 @@ using Tgstation.Server.Api.Models.Response;
namespace Tgstation.Server.Host.Models
{
/// <inheritdoc cref="Api.Models.Internal.RepositorySettings" />
public sealed class RepositorySettings : Api.Models.Internal.RepositorySettings, IApiTransformable<RepositoryResponse>
/// <inheritdoc cref="Api.Models.RepositorySettings" />
public sealed class RepositorySettings : Api.Models.RepositorySettings, IApiTransformable<RepositoryResponse>
{
/// <summary>
/// The row Id.
@@ -13,7 +13,7 @@ using Microsoft.IdentityModel.Tokens;
using Octokit;
using Tgstation.Server.Api.Models.Internal;
using Tgstation.Server.Api.Models;
using Tgstation.Server.Host.Configuration;
using Tgstation.Server.Host.System;
@@ -12,7 +12,7 @@ using Moq;
using Octokit;
using Tgstation.Server.Api.Models.Internal;
using Tgstation.Server.Api.Models;
using Tgstation.Server.Host.Configuration;
using Tgstation.Server.Host.System;