From a9fc3ed4dd783a5c75146f0a45b9fbc21ebe0315 Mon Sep 17 00:00:00 2001
From: "P.Shvedun"
Date: Fri, 13 Dec 2024 00:45:03 +0200
Subject: [PATCH 01/10] Improve error handling in license upload process
Enhanced error handling to provide detailed JSON error reporting during license uploads. Updated exception handling and added unit tests to ensure accurate error detection and debugging.
@tdd
---
.../Command/UploadLicensesCommand.Tests.cs | 73 +++++++++++++++++++
clio/Command/UploadLicensesCommand.cs | 26 +++++++
2 files changed, 99 insertions(+)
create mode 100644 clio.tests/Command/UploadLicensesCommand.Tests.cs
diff --git a/clio.tests/Command/UploadLicensesCommand.Tests.cs b/clio.tests/Command/UploadLicensesCommand.Tests.cs
new file mode 100644
index 00000000..4fff8041
--- /dev/null
+++ b/clio.tests/Command/UploadLicensesCommand.Tests.cs
@@ -0,0 +1,73 @@
+namespace Clio.Tests.Command
+{
+ using Clio.Command;
+ using Clio.Command.PackageCommand;
+ using Clio.Common;
+ using NSubstitute;
+ using NUnit.Framework;
+
+ [TestFixture]
+ public class UploadLicensesCommandTestCase
+ {
+ private UploadLicensesCommandTestable _command;
+
+ [SetUp]
+ public void SetUp() {
+ _command = new UploadLicensesCommandTestable(Substitute.For(),
+ Substitute.For());
+ }
+
+ [Test]
+ public void TestProceedResponse_SuccessResponse_DoesNotThrow() {
+ var response = "{\"success\": true}";
+ var options = new UploadLicensesOptions();
+ Assert.DoesNotThrow(() => _command.TestProceedResponse(response, options));
+ }
+
+ [Test]
+ public void TestProceedResponse_ErrorResponseWithErrorInfo_ThrowsException() {
+ var response = @"
+ {
+ ""success"": false,
+ ""errorInfo"": {
+ ""message"": ""Invalid license key"",
+ ""errorCode"": ""INVALID_KEY""
+ }
+ }";
+ var options = new UploadLicensesOptions();
+ var ex = Assert.Throws(() =>
+ _command.TestProceedResponse(response, options));
+ Assert.That(ex.Message,
+ Is.EqualTo("License not installed. ErrorCode: INVALID_KEY, Message: Invalid license key"));
+ }
+
+ [Test]
+ public void TestProceedResponse_ErrorResponseWithoutErrorInfo_ThrowsException() {
+ var response = "{\"success\": false}";
+ var options = new UploadLicensesOptions();
+ var ex = Assert.Throws(() =>
+ _command.TestProceedResponse(response, options));
+ Assert.That(ex.Message, Is.EqualTo("License not installed: Unknown error details"));
+ }
+
+ [Test]
+ public void TestProceedResponse_ResponseWithoutSuccessProperty_DoesNotThrow() {
+ var response = "{\"errorInfo\": { \"message\": \"Error occurred\" }}";
+ var options = new UploadLicensesOptions();
+ Assert.DoesNotThrow(() => _command.TestProceedResponse(response, options));
+ }
+ }
+
+ public class UploadLicensesCommandTestable : UploadLicensesCommand
+ {
+ public UploadLicensesCommandTestable(IApplicationClient applicationClient, EnvironmentSettings settings)
+ : base(applicationClient, settings) {
+ }
+
+ public void TestProceedResponse(string response, UploadLicensesOptions options) {
+ ProceedResponse(response, options);
+ }
+ }
+
+
+}
diff --git a/clio/Command/UploadLicensesCommand.cs b/clio/Command/UploadLicensesCommand.cs
index 5830c965..c4d809d4 100644
--- a/clio/Command/UploadLicensesCommand.cs
+++ b/clio/Command/UploadLicensesCommand.cs
@@ -1,6 +1,8 @@
namespace Clio.Command.PackageCommand
{
+ using System;
using System.IO;
+ using System.Text.Json;
using Clio.Common;
public class UploadLicensesCommand : RemoteCommand
@@ -18,5 +20,29 @@ protected override string GetRequestData(UploadLicensesOptions options) {
return "{\"licData\":\"" + fileBody + "\"}";
}
+ protected override void ProceedResponse(string response, UploadLicensesOptions options) {
+ var json = JsonDocument.Parse(response);
+ if (json.RootElement.TryGetProperty("success", out var successProperty) &&
+ successProperty.GetBoolean() == false) {
+ if (json.RootElement.TryGetProperty("errorInfo", out var errorInfo)) {
+ var errorMessage = errorInfo.TryGetProperty("message", out var messageProperty)
+ ? messageProperty.GetString()
+ : "Unknown error message";
+ var errorCode = errorInfo.TryGetProperty("errorCode", out var codeProperty)
+ ? codeProperty.GetString()
+ : "UNKNOWN_CODE";
+ throw new LicenseInstallationException(
+ $"License not installed. ErrorCode: {errorCode}, Message: {errorMessage}");
+ }
+ throw new LicenseInstallationException("License not installed: Unknown error details");
+ }
+ base.ProceedResponse(response, options);
+ }
}
+
+ public class LicenseInstallationException : Exception
+ {
+ public LicenseInstallationException(string message) : base(message) { }
+ }
+
}
From dda65b394642f8e2443e6974b93d5e95011d0c56 Mon Sep 17 00:00:00 2001
From: "P.Shvedun"
Date: Fri, 13 Dec 2024 01:18:29 +0200
Subject: [PATCH 02/10] Update version to 8.0.1.8
---
clio/clio.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/clio/clio.csproj b/clio/clio.csproj
index d470ca64..cf0d3117 100644
--- a/clio/clio.csproj
+++ b/clio/clio.csproj
@@ -9,7 +9,7 @@
creatio rnd team
cli ATF clio creatio
en
- 8.0.1.7
+ 8.0.1.8
$(AssemblyVersion)
$(AssemblyVersion)
CLI interface for Creatio
From 4850ff4dc853e221bc0ff2b65f6ed0eda46f94ac Mon Sep 17 00:00:00 2001
From: "P.Shvedun"
Date: Fri, 13 Dec 2024 02:10:50 +0200
Subject: [PATCH 03/10] Update version to 8.0.1.9
---
clio.tests/Command/UploadLicensesCommand.Tests.cs | 9 +++++++++
clio/Command/UploadLicensesCommand.cs | 5 ++++-
clio/clio.csproj | 2 +-
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/clio.tests/Command/UploadLicensesCommand.Tests.cs b/clio.tests/Command/UploadLicensesCommand.Tests.cs
index 4fff8041..ea1fc7f3 100644
--- a/clio.tests/Command/UploadLicensesCommand.Tests.cs
+++ b/clio.tests/Command/UploadLicensesCommand.Tests.cs
@@ -56,6 +56,15 @@ public void TestProceedResponse_ResponseWithoutSuccessProperty_DoesNotThrow() {
var options = new UploadLicensesOptions();
Assert.DoesNotThrow(() => _command.TestProceedResponse(response, options));
}
+
+ [Test]
+ public void TestProceedResponse_AuthenticationFailed_ThrowsLicenseInstallationException() {
+ var response = "{\"Message\":\"Authentication failed.\",\"StackTrace\":null,\"ExceptionType\":\"System.InvalidOperationException\"}";
+ var options = new UploadLicensesOptions();
+ var ex = Assert.Throws(() =>
+ _command.TestProceedResponse(response, options));
+ Assert.That(ex.Message, Is.EqualTo("License not installed: Authentication failed."));
+ }
}
public class UploadLicensesCommandTestable : UploadLicensesCommand
diff --git a/clio/Command/UploadLicensesCommand.cs b/clio/Command/UploadLicensesCommand.cs
index c4d809d4..95df9d80 100644
--- a/clio/Command/UploadLicensesCommand.cs
+++ b/clio/Command/UploadLicensesCommand.cs
@@ -36,7 +36,10 @@ protected override void ProceedResponse(string response, UploadLicensesOptions o
}
throw new LicenseInstallationException("License not installed: Unknown error details");
}
- base.ProceedResponse(response, options);
+ if (response.ToLower().Contains("authentication failed")) {
+ throw new LicenseInstallationException("License not installed: Authentication failed.");
+ }
+ base.ProceedResponse(response, options);
}
}
diff --git a/clio/clio.csproj b/clio/clio.csproj
index cf0d3117..b91aad7b 100644
--- a/clio/clio.csproj
+++ b/clio/clio.csproj
@@ -9,7 +9,7 @@
creatio rnd team
cli ATF clio creatio
en
- 8.0.1.8
+ 8.0.1.9
$(AssemblyVersion)
$(AssemblyVersion)
CLI interface for Creatio
From 54f68c5a99820bd4719f0b4ed8941e462892c97f Mon Sep 17 00:00:00 2001
From: Vladimir
Date: Fri, 13 Dec 2024 02:12:20 +0100
Subject: [PATCH 04/10] add unlock option in pushw
---
clio/Command/CommandLineOptions.cs | 6 ++++++
clio/Command/PushWorkspaceCommand.cs | 15 ++++++++++++++-
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/clio/Command/CommandLineOptions.cs b/clio/Command/CommandLineOptions.cs
index b09a92b8..996f41a5 100644
--- a/clio/Command/CommandLineOptions.cs
+++ b/clio/Command/CommandLineOptions.cs
@@ -123,6 +123,11 @@ public virtual bool ShowDefaultEnvironment() {
[Option("force", Required = false, HelpText = "Force restore")]
public bool Force { get; set; }
+ [Option("callback-process", Required = false, HelpText = "Callback process name")]
+ public string CallbackProcess {
+ get; set;
+ }
+
internal virtual bool RequiredEnvironment => true;
public void CopyFromEnvironmentSettings(EnvironmentOptions source)
@@ -156,6 +161,7 @@ public void CopyFromEnvironmentSettings(EnvironmentOptions source)
this.DbWorknigFolder = source.DbWorknigFolder;
this.DbName = source.DbName;
this.Force = source.Force;
+ this.CallbackProcess = source.CallbackProcess;
}
internal bool IsEmpty() {
diff --git a/clio/Command/PushWorkspaceCommand.cs b/clio/Command/PushWorkspaceCommand.cs
index 50bf3848..5638d4b0 100644
--- a/clio/Command/PushWorkspaceCommand.cs
+++ b/clio/Command/PushWorkspaceCommand.cs
@@ -1,6 +1,7 @@
namespace Clio.Command
{
using System;
+ using System.Linq;
using Clio.Common;
using Clio.Workspaces;
using CommandLine;
@@ -10,6 +11,8 @@ namespace Clio.Command
[Verb("push-workspace", Aliases = new string[] { "pushw" }, HelpText = "Push workspace to selected environment")]
public class PushWorkspaceCommandOptions : EnvironmentOptions
{
+ [Option("unlock", Required = false, HelpText = "Unlock workspace package after install workspace to the environment")]
+ public bool NeedUnlockPackage { get; set; }
}
#endregion
@@ -22,14 +25,16 @@ public class PushWorkspaceCommand : Command
#region Fields: Private
private readonly IWorkspace _workspace;
+ private UnlockPackageCommand _unlockPackageCommand;
#endregion
#region Constructors: Public
- public PushWorkspaceCommand(IWorkspace workspace) {
+ public PushWorkspaceCommand(IWorkspace workspace, UnlockPackageCommand unlockPackageCommand) {
workspace.CheckArgumentNull(nameof(workspace));
_workspace = workspace;
+ _unlockPackageCommand = unlockPackageCommand;
}
#endregion
@@ -39,7 +44,15 @@ public PushWorkspaceCommand(IWorkspace workspace) {
public override int Execute(PushWorkspaceCommandOptions options) {
try
{
+ Console.WriteLine("Push workspace...");
_workspace.Install();
+ if (options.NeedUnlockPackage) {
+ var unlockPackageCommandOptions = new UnlockPackageOptions();
+ unlockPackageCommandOptions.CopyFromEnvironmentSettings(options);
+ unlockPackageCommandOptions.Name = string.Join(',', _workspace.WorkspaceSettings.Packages);
+ Console.WriteLine("Unlock packages...");
+ _unlockPackageCommand.Execute(unlockPackageCommandOptions);
+ }
Console.WriteLine("Done");
return 0;
} catch (Exception e) {
From 999eac6ef6a55d560e1cd2f7bde026a235ded0b4 Mon Sep 17 00:00:00 2001
From: Kirill Krylov
Date: Fri, 13 Dec 2024 02:31:44 +0100
Subject: [PATCH 05/10] Added Process Args
---
clio/Command/StartProcess/ProcessArgs.cs | 65 ++++++++++++++++++++++++
1 file changed, 65 insertions(+)
create mode 100644 clio/Command/StartProcess/ProcessArgs.cs
diff --git a/clio/Command/StartProcess/ProcessArgs.cs b/clio/Command/StartProcess/ProcessArgs.cs
new file mode 100644
index 00000000..78611e3e
--- /dev/null
+++ b/clio/Command/StartProcess/ProcessArgs.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+using Newtonsoft.Json;
+
+namespace Clio.Command.StartProcess;
+
+[JsonObject]
+public record ProcessStartArgs
+{
+
+ [JsonObject]
+ public class ParameterValues
+ {
+ [JsonPropertyName("name")]
+ [JsonProperty("name")]
+ public string Name { get; init; }
+
+ [JsonPropertyName("value")]
+ [JsonProperty("value")]
+ public string Value { get; init; }
+ }
+
+ [JsonProperty("schemaName")]
+ [JsonPropertyName("schemaName")]
+ public string SchemaName { get; init; }
+
+ [JsonProperty("parameterValues")]
+ [JsonPropertyName("parameterValues")]
+ public ParameterValues[] Values { get; init; }
+
+ [JsonProperty("resultParameterNames")]
+ [JsonPropertyName("resultParameterNames")]
+ public string[] Result { get; init; }
+
+}
+
+
+[JsonObject]
+public record ProcessStartResponse
+{
+ [JsonPropertyName("processId")]
+ [JsonProperty("processId")]
+ public Guid ProcessId { get; init; }
+
+ [JsonPropertyName("processStatus")]
+ [JsonProperty("processStatus")]
+ public int ProcessStatus { get; init; }
+
+ [JsonPropertyName("resultParameterValues")]
+ [JsonProperty("resultParameterValues")]
+ public Dictionary ResultParameterValues { get; init; }
+
+ [JsonPropertyName("executionData")]
+ [JsonProperty("executionData")]
+ public object ExecutionData { get; init; }
+
+ [JsonPropertyName("success")]
+ [JsonProperty("success")]
+ public bool Success { get; init; }
+
+ [JsonPropertyName("errorInfo")]
+ [JsonProperty("errorInfo")]
+ public object ErrorInfo { get; init; }
+}
\ No newline at end of file
From 0f6cb894643df241a6a1d0c576fe42f02a0ddcb5 Mon Sep 17 00:00:00 2001
From: Vladimir
Date: Fri, 13 Dec 2024 02:47:51 +0100
Subject: [PATCH 06/10] add callback process
---
clio/Command/PushWorkspaceCommand.cs | 38 +++++++++++++++++++++++++---
1 file changed, 34 insertions(+), 4 deletions(-)
diff --git a/clio/Command/PushWorkspaceCommand.cs b/clio/Command/PushWorkspaceCommand.cs
index 5638d4b0..652dbaa8 100644
--- a/clio/Command/PushWorkspaceCommand.cs
+++ b/clio/Command/PushWorkspaceCommand.cs
@@ -1,7 +1,8 @@
namespace Clio.Command
{
using System;
- using System.Linq;
+ using System.Text.Json;
+ using Clio.Command.StartProcess;
using Clio.Common;
using Clio.Workspaces;
using CommandLine;
@@ -26,24 +27,32 @@ public class PushWorkspaceCommand : Command
private readonly IWorkspace _workspace;
private UnlockPackageCommand _unlockPackageCommand;
+ public IApplicationClientFactory _applicationClientFactory;
+ private readonly EnvironmentSettings _environmentSettings;
+ private readonly IServiceUrlBuilder _serviceUrlBuilder;
#endregion
#region Constructors: Public
- public PushWorkspaceCommand(IWorkspace workspace, UnlockPackageCommand unlockPackageCommand) {
+ public PushWorkspaceCommand(IWorkspace workspace, UnlockPackageCommand unlockPackageCommand,
+ IApplicationClientFactory applicationClientFactory, EnvironmentSettings environmentSettings,
+ IServiceUrlBuilder serviceUrlBuilder) {
workspace.CheckArgumentNull(nameof(workspace));
_workspace = workspace;
_unlockPackageCommand = unlockPackageCommand;
+ _applicationClientFactory = applicationClientFactory;
+ _environmentSettings = environmentSettings;
+ _serviceUrlBuilder = serviceUrlBuilder;
}
+
#endregion
#region Methods: Public
public override int Execute(PushWorkspaceCommandOptions options) {
- try
- {
+ try {
Console.WriteLine("Push workspace...");
_workspace.Install();
if (options.NeedUnlockPackage) {
@@ -53,6 +62,27 @@ public override int Execute(PushWorkspaceCommandOptions options) {
Console.WriteLine("Unlock packages...");
_unlockPackageCommand.Execute(unlockPackageCommandOptions);
}
+ if (!string.IsNullOrEmpty(options.CallbackProcess)) {
+ var applicationClient = _applicationClientFactory.CreateClient(_environmentSettings);
+ var runProcessUri = _serviceUrlBuilder.Build(ServiceUrlBuilder.KnownRoute.RunProcess);
+ ProcessStartArgs runProcessArgs = new() {
+ SchemaName = "AtfProcess_ShowMessage",
+ Values = [
+ new ProcessStartArgs.ParameterValues {
+ Name = "Message",
+ Value = "Workspace was succesfully restored"
+ },
+ new ProcessStartArgs.ParameterValues {
+ Name = "Title",
+ Value = "CLIO"
+ }
+ ]
+ };
+ Console.WriteLine($"Run callback process {options.CallbackProcess}");
+ var processRunResponseJson = applicationClient.ExecutePostRequest(runProcessUri, JsonSerializer.Serialize(runProcessArgs));
+ var response = JsonSerializer.Deserialize(processRunResponseJson);
+ Console.WriteLine($"Run process id {response.ProcessId}");
+ }
Console.WriteLine("Done");
return 0;
} catch (Exception e) {
From 301cb57a8b441acb1cb90dfbe7b3c161de543023 Mon Sep 17 00:00:00 2001
From: Vladimir
Date: Fri, 13 Dec 2024 02:52:02 +0100
Subject: [PATCH 07/10] fix set callback_process_name
---
clio/Command/PushWorkspaceCommand.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/clio/Command/PushWorkspaceCommand.cs b/clio/Command/PushWorkspaceCommand.cs
index 652dbaa8..144c2202 100644
--- a/clio/Command/PushWorkspaceCommand.cs
+++ b/clio/Command/PushWorkspaceCommand.cs
@@ -66,7 +66,7 @@ public override int Execute(PushWorkspaceCommandOptions options) {
var applicationClient = _applicationClientFactory.CreateClient(_environmentSettings);
var runProcessUri = _serviceUrlBuilder.Build(ServiceUrlBuilder.KnownRoute.RunProcess);
ProcessStartArgs runProcessArgs = new() {
- SchemaName = "AtfProcess_ShowMessage",
+ SchemaName = options.CallbackProcess,
Values = [
new ProcessStartArgs.ParameterValues {
Name = "Message",
From 54134cc17697db2c63a945ed4b6a3edc58cefa92 Mon Sep 17 00:00:00 2001
From: Vladimir
Date: Fri, 13 Dec 2024 03:03:16 +0100
Subject: [PATCH 08/10] add callback tp system
---
clio/Command/PushWorkspaceCommand.cs | 49 ++++++++++++++++------------
1 file changed, 28 insertions(+), 21 deletions(-)
diff --git a/clio/Command/PushWorkspaceCommand.cs b/clio/Command/PushWorkspaceCommand.cs
index 144c2202..7a1aa26e 100644
--- a/clio/Command/PushWorkspaceCommand.cs
+++ b/clio/Command/PushWorkspaceCommand.cs
@@ -54,43 +54,50 @@ public PushWorkspaceCommand(IWorkspace workspace, UnlockPackageCommand unlockPac
public override int Execute(PushWorkspaceCommandOptions options) {
try {
Console.WriteLine("Push workspace...");
+ CallbackInfo(options.CallbackProcess, "Push workspace...");
_workspace.Install();
if (options.NeedUnlockPackage) {
var unlockPackageCommandOptions = new UnlockPackageOptions();
unlockPackageCommandOptions.CopyFromEnvironmentSettings(options);
unlockPackageCommandOptions.Name = string.Join(',', _workspace.WorkspaceSettings.Packages);
Console.WriteLine("Unlock packages...");
+ CallbackInfo(options.CallbackProcess, "Unlock packages...");
_unlockPackageCommand.Execute(unlockPackageCommandOptions);
}
- if (!string.IsNullOrEmpty(options.CallbackProcess)) {
- var applicationClient = _applicationClientFactory.CreateClient(_environmentSettings);
- var runProcessUri = _serviceUrlBuilder.Build(ServiceUrlBuilder.KnownRoute.RunProcess);
- ProcessStartArgs runProcessArgs = new() {
- SchemaName = options.CallbackProcess,
- Values = [
- new ProcessStartArgs.ParameterValues {
- Name = "Message",
- Value = "Workspace was succesfully restored"
- },
- new ProcessStartArgs.ParameterValues {
- Name = "Title",
- Value = "CLIO"
- }
- ]
- };
- Console.WriteLine($"Run callback process {options.CallbackProcess}");
- var processRunResponseJson = applicationClient.ExecutePostRequest(runProcessUri, JsonSerializer.Serialize(runProcessArgs));
- var response = JsonSerializer.Deserialize(processRunResponseJson);
- Console.WriteLine($"Run process id {response.ProcessId}");
- }
Console.WriteLine("Done");
+ CallbackInfo(options.CallbackProcess, "Workspace was suvvesfully restored");
return 0;
} catch (Exception e) {
Console.WriteLine(e.Message);
+ CallbackInfo(options.CallbackProcess, e.Message);
return 1;
}
}
+ private void CallbackInfo(string callbackProcess, string message) {
+ if (!string.IsNullOrEmpty(callbackProcess)) {
+ var applicationClient = _applicationClientFactory.CreateClient(_environmentSettings);
+ var runProcessUri = _serviceUrlBuilder.Build(ServiceUrlBuilder.KnownRoute.RunProcess);
+ ProcessStartArgs runProcessArgs = new() {
+ SchemaName = callbackProcess,
+ Values = [
+ new ProcessStartArgs.ParameterValues {
+ Name = "Message",
+ Value = message
+ },
+ new ProcessStartArgs.ParameterValues {
+ Name = "Title",
+ Value = "CLIO"
+ }
+]
+ };
+ Console.WriteLine($"Run callback process {callbackProcess}");
+ var processRunResponseJson = applicationClient.ExecutePostRequest(runProcessUri, JsonSerializer.Serialize(runProcessArgs));
+ var response = JsonSerializer.Deserialize(processRunResponseJson);
+ Console.WriteLine($"Run process id {response.ProcessId}");
+ }
+ }
+
#endregion
}
From 3d7b7dd2603ebaf6ad53039aedde198bda7b36f0 Mon Sep 17 00:00:00 2001
From: Kirill Krylov
Date: Fri, 13 Dec 2024 03:20:55 +0100
Subject: [PATCH 09/10] spelling
---
clio/Command/PushWorkspaceCommand.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/clio/Command/PushWorkspaceCommand.cs b/clio/Command/PushWorkspaceCommand.cs
index 7a1aa26e..0b88e928 100644
--- a/clio/Command/PushWorkspaceCommand.cs
+++ b/clio/Command/PushWorkspaceCommand.cs
@@ -65,7 +65,7 @@ public override int Execute(PushWorkspaceCommandOptions options) {
_unlockPackageCommand.Execute(unlockPackageCommandOptions);
}
Console.WriteLine("Done");
- CallbackInfo(options.CallbackProcess, "Workspace was suvvesfully restored");
+ CallbackInfo(options.CallbackProcess, "Workspace was successfully restored");
return 0;
} catch (Exception e) {
Console.WriteLine(e.Message);
From 605c2774f8770f3781a52cc9196e4580005217b4 Mon Sep 17 00:00:00 2001
From: "P.Shvedun"
Date: Fri, 13 Dec 2024 04:25:30 +0200
Subject: [PATCH 10/10] Update version to 8.0.1.10
---
clio/clio.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/clio/clio.csproj b/clio/clio.csproj
index b91aad7b..fe1c2bfe 100644
--- a/clio/clio.csproj
+++ b/clio/clio.csproj
@@ -9,7 +9,7 @@
creatio rnd team
cli ATF clio creatio
en
- 8.0.1.9
+ 8.0.1.10
$(AssemblyVersion)
$(AssemblyVersion)
CLI interface for Creatio