diff --git a/.gitignore b/.gitignore
index d4dfda9..fc27d6b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,4 @@ riderModule.iml
*.DotSettings
.DS_Store
result
+.profile*
diff --git a/Gitea.App/Gitea.App.fsproj b/Gitea.App/Gitea.App.fsproj
deleted file mode 100644
index 9a4258c..0000000
--- a/Gitea.App/Gitea.App.fsproj
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
- Exe
- net7.0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Gitea/Array.fs b/Gitea.Declarative.Lib/Array.fs
similarity index 95%
rename from Gitea/Array.fs
rename to Gitea.Declarative.Lib/Array.fs
index 405b09d..7b382da 100644
--- a/Gitea/Array.fs
+++ b/Gitea.Declarative.Lib/Array.fs
@@ -1,4 +1,4 @@
-namespace Gitea
+namespace Gitea.Declarative
[]
module internal Array =
diff --git a/Gitea.Declarative.Lib/AssemblyInfo.fs b/Gitea.Declarative.Lib/AssemblyInfo.fs
new file mode 100644
index 0000000..cf87b9a
--- /dev/null
+++ b/Gitea.Declarative.Lib/AssemblyInfo.fs
@@ -0,0 +1,6 @@
+namespace Gitea.Declarative.AssemblyInfo
+
+open System.Runtime.CompilerServices
+
+[]
+do ()
diff --git a/Gitea/ConfigSchema.fs b/Gitea.Declarative.Lib/ConfigSchema.fs
similarity index 99%
rename from Gitea/ConfigSchema.fs
rename to Gitea.Declarative.Lib/ConfigSchema.fs
index e1ec2d7..851d3ef 100644
--- a/Gitea/ConfigSchema.fs
+++ b/Gitea.Declarative.Lib/ConfigSchema.fs
@@ -1,4 +1,4 @@
-namespace Gitea
+namespace Gitea.Declarative
open System
open System.IO
diff --git a/Gitea/Domain.fs b/Gitea.Declarative.Lib/Domain.fs
similarity index 96%
rename from Gitea/Domain.fs
rename to Gitea.Declarative.Lib/Domain.fs
index 40518a9..e329a67 100644
--- a/Gitea/Domain.fs
+++ b/Gitea.Declarative.Lib/Domain.fs
@@ -1,4 +1,4 @@
-namespace Gitea
+namespace Gitea.Declarative
open System
open System.ComponentModel
diff --git a/Gitea/Gitea.fsproj b/Gitea.Declarative.Lib/Gitea.Declarative.Lib.fsproj
similarity index 54%
rename from Gitea/Gitea.fsproj
rename to Gitea.Declarative.Lib/Gitea.Declarative.Lib.fsproj
index 471e5cb..10a1102 100644
--- a/Gitea/Gitea.fsproj
+++ b/Gitea.Declarative.Lib/Gitea.Declarative.Lib.fsproj
@@ -1,9 +1,19 @@
- net6.0
+ netstandard2.1
true
true
+ true
+ Gitea.Declarative.Lib
+ Patrick Stevens
+ Specify Gitea configuration and reconcile it with a running Gitea server.
+ Copyright (c) Patrick Stevens 2022
+ README.md
+ https://github.com/Smaug123/
+ git
+ MIT
+ gitea
@@ -18,11 +28,13 @@
+
+
diff --git a/Gitea/Gitea.fs b/Gitea.Declarative.Lib/Gitea.fs
similarity index 99%
rename from Gitea/Gitea.fs
rename to Gitea.Declarative.Lib/Gitea.fs
index 799c5c3..8a18ca9 100644
--- a/Gitea/Gitea.fs
+++ b/Gitea.Declarative.Lib/Gitea.fs
@@ -1,4 +1,4 @@
-namespace Gitea
+namespace Gitea.Declarative
open System
open Microsoft.Extensions.Logging
diff --git a/Gitea/GiteaClient.fs b/Gitea.Declarative.Lib/GiteaClient.fs
similarity index 87%
rename from Gitea/GiteaClient.fs
rename to Gitea.Declarative.Lib/GiteaClient.fs
index 05efb5f..fe712b6 100644
--- a/Gitea/GiteaClient.fs
+++ b/Gitea.Declarative.Lib/GiteaClient.fs
@@ -1,4 +1,4 @@
-namespace Gitea
+namespace Gitea.Declarative
open SwaggerProvider
diff --git a/Gitea/GiteaConfig.schema.json b/Gitea.Declarative.Lib/GiteaConfig.schema.json
similarity index 100%
rename from Gitea/GiteaConfig.schema.json
rename to Gitea.Declarative.Lib/GiteaConfig.schema.json
diff --git a/Gitea/Map.fs b/Gitea.Declarative.Lib/Map.fs
similarity index 94%
rename from Gitea/Map.fs
rename to Gitea.Declarative.Lib/Map.fs
index 7951607..677c7d0 100644
--- a/Gitea/Map.fs
+++ b/Gitea.Declarative.Lib/Map.fs
@@ -1,4 +1,4 @@
-namespace Gitea
+namespace Gitea.Declarative
[]
module internal Map =
diff --git a/Gitea/SerialisedConfigSchema.fs b/Gitea.Declarative.Lib/SerialisedConfigSchema.fs
similarity index 98%
rename from Gitea/SerialisedConfigSchema.fs
rename to Gitea.Declarative.Lib/SerialisedConfigSchema.fs
index 1de551d..580b7d7 100644
--- a/Gitea/SerialisedConfigSchema.fs
+++ b/Gitea.Declarative.Lib/SerialisedConfigSchema.fs
@@ -1,4 +1,4 @@
-namespace Gitea
+namespace Gitea.Declarative
open System
open System.ComponentModel
diff --git a/Gitea/swagger.v1.json b/Gitea.Declarative.Lib/swagger.v1.json
similarity index 100%
rename from Gitea/swagger.v1.json
rename to Gitea.Declarative.Lib/swagger.v1.json
diff --git a/Gitea/version.json b/Gitea.Declarative.Lib/version.json
similarity index 100%
rename from Gitea/version.json
rename to Gitea.Declarative.Lib/version.json
diff --git a/Gitea.Test/Gitea.Test.fsproj b/Gitea.Declarative.Test/Gitea.Declarative.Test.fsproj
similarity index 88%
rename from Gitea.Test/Gitea.Test.fsproj
rename to Gitea.Declarative.Test/Gitea.Declarative.Test.fsproj
index 85c0350..6a702c1 100644
--- a/Gitea.Test/Gitea.Test.fsproj
+++ b/Gitea.Declarative.Test/Gitea.Declarative.Test.fsproj
@@ -23,7 +23,7 @@
-
+
diff --git a/Gitea.Test/GiteaConfig.json b/Gitea.Declarative.Test/GiteaConfig.json
similarity index 100%
rename from Gitea.Test/GiteaConfig.json
rename to Gitea.Declarative.Test/GiteaConfig.json
diff --git a/Gitea.Test/TestJsonSchema.fs b/Gitea.Declarative.Test/TestJsonSchema.fs
similarity index 90%
rename from Gitea.Test/TestJsonSchema.fs
rename to Gitea.Declarative.Test/TestJsonSchema.fs
index a511bf8..56d82d9 100644
--- a/Gitea.Test/TestJsonSchema.fs
+++ b/Gitea.Declarative.Test/TestJsonSchema.fs
@@ -1,8 +1,8 @@
-namespace Gitea.Test
+namespace Gitea.Declarative.Test
open System.IO
open System.Reflection
-open Gitea
+open Gitea.Declarative
open NUnit.Framework
open FsUnitTyped
open Newtonsoft.Json
@@ -21,7 +21,7 @@ module TestSchema =
Assembly.GetExecutingAssembly().Location
|> FileInfo
|> fun fi -> fi.Directory
- |> Utils.findFileAbove "Gitea/GiteaConfig.schema.json"
+ |> Utils.findFileAbove "Gitea.Declarative.Lib/GiteaConfig.schema.json"
let existing = JSchema.Parse (File.ReadAllText schemaFile.FullName)
let derived = schemaGen.Generate typeof
@@ -58,7 +58,7 @@ module TestSchema =
Assembly.GetExecutingAssembly().Location
|> FileInfo
|> fun fi -> fi.Directory
- |> Utils.findFileAbove "Gitea/GiteaConfig.schema.json"
+ |> Utils.findFileAbove "Gitea.Declarative.Lib/GiteaConfig.schema.json"
let schema = schemaGen.Generate typeof
diff --git a/Gitea.Test/TestSwaggerJson.fs b/Gitea.Declarative.Test/TestSwaggerJson.fs
similarity index 95%
rename from Gitea.Test/TestSwaggerJson.fs
rename to Gitea.Declarative.Test/TestSwaggerJson.fs
index a94b6ee..5dd733c 100644
--- a/Gitea.Test/TestSwaggerJson.fs
+++ b/Gitea.Declarative.Test/TestSwaggerJson.fs
@@ -1,4 +1,4 @@
-namespace Gitea.Test
+namespace Gitea.Declarative.Test
open System.IO
open System.Net.Http
diff --git a/Gitea.Test/Utils.fs b/Gitea.Declarative.Test/Utils.fs
similarity index 92%
rename from Gitea.Test/Utils.fs
rename to Gitea.Declarative.Test/Utils.fs
index 944e519..8e6fd50 100644
--- a/Gitea.Test/Utils.fs
+++ b/Gitea.Declarative.Test/Utils.fs
@@ -1,4 +1,4 @@
-namespace Gitea.Test
+namespace Gitea.Declarative.Test
open System.IO
diff --git a/Gitea.sln b/Gitea.Declarative.sln
similarity index 72%
rename from Gitea.sln
rename to Gitea.Declarative.sln
index b037add..df2d656 100644
--- a/Gitea.sln
+++ b/Gitea.Declarative.sln
@@ -1,10 +1,10 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Gitea", "Gitea\Gitea.fsproj", "{5F99DAF4-A9F0-4A76-A205-AF586C07FE40}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Gitea.Declarative.Lib", "Gitea.Declarative.Lib\Gitea.Declarative.Lib.fsproj", "{5F99DAF4-A9F0-4A76-A205-AF586C07FE40}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Gitea.Test", "Gitea.Test\Gitea.Test.fsproj", "{1E3E6442-11C5-4366-A1E8-A38E069934F7}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Gitea.Declarative.Test", "Gitea.Declarative.Test\Gitea.Declarative.Test.fsproj", "{1E3E6442-11C5-4366-A1E8-A38E069934F7}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Gitea.App", "Gitea.App\Gitea.App.fsproj", "{77DA39F7-AF01-448A-B71C-3D495EE2F6F4}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Gitea.Declarative", "Gitea.Declarative\Gitea.Declarative.fsproj", "{77DA39F7-AF01-448A-B71C-3D495EE2F6F4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/Gitea.Declarative/Gitea.Declarative.fsproj b/Gitea.Declarative/Gitea.Declarative.fsproj
new file mode 100644
index 0000000..659abcb
--- /dev/null
+++ b/Gitea.Declarative/Gitea.Declarative.fsproj
@@ -0,0 +1,31 @@
+
+
+ Exe
+ net7.0
+ true
+ Gitea.Declarative
+ Patrick Stevens
+ Reconcile the configuration of a running Gitea server with a declarative specification.
+ Copyright (c) Patrick Stevens 2022
+ README.md
+ https://github.com/Smaug123/
+ git
+ MIT
+ gitea
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Gitea.App/Program.fs b/Gitea.Declarative/Program.fs
similarity index 99%
rename from Gitea.App/Program.fs
rename to Gitea.Declarative/Program.fs
index ca9d009..fbb232a 100644
--- a/Gitea.App/Program.fs
+++ b/Gitea.Declarative/Program.fs
@@ -1,4 +1,4 @@
-namespace Gitea
+namespace Gitea.Declarative
open System
open System.IO
diff --git a/Gitea/AssemblyInfo.fs b/Gitea/AssemblyInfo.fs
deleted file mode 100644
index ae38a8c..0000000
--- a/Gitea/AssemblyInfo.fs
+++ /dev/null
@@ -1,6 +0,0 @@
-namespace Gitea.AssemblyInfo
-
-open System.Runtime.CompilerServices
-
-[]
-do ()
diff --git a/flake.nix b/flake.nix
index 0c7320c..b9f3568 100644
--- a/flake.nix
+++ b/flake.nix
@@ -14,8 +14,8 @@
}:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = nixpkgs.legacyPackages.${system};
- projectFile = "./Gitea.App/Gitea.App.fsproj";
- testProjectFile = "./Gitea.Test/Gitea.Test.fsproj";
+ projectFile = "./Gitea.Declarative/Gitea.Declarative.fsproj";
+ testProjectFile = "./Gitea.Declarative.Test/Gitea.Declarative.Test.fsproj";
pname = "dotnet-gitea-declarative";
dotnet-sdk = pkgs.dotnet-sdk_7;
dotnet-runtime = pkgs.dotnetCorePackages.runtime_7_0;
@@ -62,6 +62,7 @@
}));
default = pkgs.buildDotnetModule {
pname = pname;
+ name = "gitea-declarative";
version = version;
src = ./.;
projectFile = projectFile;
diff --git a/nix/deps.nix b/nix/deps.nix
index d9f5262..decc9a3 100644
--- a/nix/deps.nix
+++ b/nix/deps.nix
@@ -11,6 +11,11 @@
version = "3.1.2";
sha256 = "0gsk2q93qw7pqxwd4pdyq5364wz0lvldcqqnf4amz13jaq86idmz";
})
+ (fetchNuGet {
+ pname = "FSharp.Core";
+ version = "6.0.0";
+ sha256 = "1hjhvr39c1vpgrdmf8xln5q86424fqkvy9nirkr29vl2461d2039";
+ })
(fetchNuGet {
pname = "FSharp.Core";
version = "7.0.0";
@@ -27,34 +32,14 @@
sha256 = "07pc3qba6b7ljsdgxhjn5lx6jvzqx5rc20aibhpm1m195kmq097l";
})
(fetchNuGet {
- pname = "Microsoft.AspNetCore.App.Ref";
- version = "6.0.11";
- sha256 = "15n8x52njzxs2cwzzswi0kawm673jkvf2yga87jaf7hr729bfmcr";
+ pname = "Microsoft.Bcl.AsyncInterfaces";
+ version = "6.0.0";
+ sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3";
})
(fetchNuGet {
- pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64";
- version = "6.0.11";
- sha256 = "1pw25rnw5nm51wjdjbrhzhz9v0c8gjjqn2na2bam3c5xawvnqkqf";
- })
- (fetchNuGet {
- pname = "Microsoft.AspNetCore.App.Runtime.linux-x64";
- version = "6.0.11";
- sha256 = "0vd5da34frm7avrc9d16d39s2k5sgzd260j5pkjsianhpjby5rbn";
- })
- (fetchNuGet {
- pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64";
- version = "6.0.11";
- sha256 = "066018q4cr20404gi6i4x6xmq2hcvmlszrx5nv1gr6rlhg7xw6vh";
- })
- (fetchNuGet {
- pname = "Microsoft.AspNetCore.App.Runtime.osx-x64";
- version = "6.0.11";
- sha256 = "0gy7whqd7blj6k7zyv3bgfs2hhwxvkjvvdf4axvnq43w1sv8s92d";
- })
- (fetchNuGet {
- pname = "Microsoft.AspNetCore.App.Runtime.win-x64";
- version = "6.0.11";
- sha256 = "1yaybb1rmwia5n60bahbykn32y7wad9hqp818hkc3ypxzisd2hwp";
+ pname = "Microsoft.Bcl.AsyncInterfaces";
+ version = "7.0.0";
+ sha256 = "1waiggh3g1cclc81gmjrqbh128kwfjky3z79ma4bd2ms9pa3gvfm";
})
(fetchNuGet {
pname = "Microsoft.CodeCoverage";
@@ -131,61 +116,6 @@
version = "17.3.2";
sha256 = "0pm06nxqi8aw04lciqy7iz8ln1qm5mx06cpwgqa2dfwvnjp7zxnm";
})
- (fetchNuGet {
- pname = "Microsoft.NETCore.App.Host.linux-arm64";
- version = "6.0.11";
- sha256 = "0k8nl3hnr8h0ljw185dyhavrz2f7x6wavyadyf7f1v289jzasj72";
- })
- (fetchNuGet {
- pname = "Microsoft.NETCore.App.Host.linux-x64";
- version = "6.0.11";
- sha256 = "0bnq4dj7s5mspi7f8ihpp2y4bncb229ihrcmxvifsbb15mlhh8g4";
- })
- (fetchNuGet {
- pname = "Microsoft.NETCore.App.Host.osx-arm64";
- version = "6.0.11";
- sha256 = "09laias011a3v854zc962lcddjkc3bif3jwsi0blyk6v1m2mf4kl";
- })
- (fetchNuGet {
- pname = "Microsoft.NETCore.App.Host.osx-x64";
- version = "6.0.11";
- sha256 = "12g1ynar2n1jrrwa98fcp76gidj227c8swc6c3yfq4v3lgsws9mx";
- })
- (fetchNuGet {
- pname = "Microsoft.NETCore.App.Host.win-x64";
- version = "6.0.11";
- sha256 = "19x6xrjika4iz1xsclxcivffnml1byvazly2l16jk2g5yzab52bm";
- })
- (fetchNuGet {
- pname = "Microsoft.NETCore.App.Ref";
- version = "6.0.11";
- sha256 = "1j64ppdvh5s3pqr6sm3sq9bmk3fzj7l4j3bx023zn3dyllibpv68";
- })
- (fetchNuGet {
- pname = "Microsoft.NETCore.App.Runtime.linux-arm64";
- version = "6.0.11";
- sha256 = "03kvh4l5j8i8263wz7fmznzf5rs1grgazrhi3ayhynvhdal04mdk";
- })
- (fetchNuGet {
- pname = "Microsoft.NETCore.App.Runtime.linux-x64";
- version = "6.0.11";
- sha256 = "1f60dyl8pnj067i7bvmsbazcvrjkgrz9943vjj0ym49cfyq98cnw";
- })
- (fetchNuGet {
- pname = "Microsoft.NETCore.App.Runtime.osx-arm64";
- version = "6.0.11";
- sha256 = "12a0fqnwsnd6q8vdkdxylrzmmdwn4hfh58j1bdsii1kgm50qwmqp";
- })
- (fetchNuGet {
- pname = "Microsoft.NETCore.App.Runtime.osx-x64";
- version = "6.0.11";
- sha256 = "01bwpalzfw62qc708488aspyy8lpyjppj1ywfhswbqllaf00i5xs";
- })
- (fetchNuGet {
- pname = "Microsoft.NETCore.App.Runtime.win-x64";
- version = "6.0.11";
- sha256 = "07ym9n57gr4vwr9x693f73nz979p1x839fk04yq0vav6v29s6fgk";
- })
(fetchNuGet {
pname = "Microsoft.NETCore.Platforms";
version = "1.0.1";
@@ -231,6 +161,11 @@
version = "2.0.0";
sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy";
})
+ (fetchNuGet {
+ pname = "NETStandard.Library";
+ version = "2.0.3";
+ sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
+ })
(fetchNuGet {
pname = "Newtonsoft.Json";
version = "12.0.3";
@@ -546,6 +481,11 @@
version = "4.3.0";
sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
})
+ (fetchNuGet {
+ pname = "System.Buffers";
+ version = "4.5.1";
+ sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3";
+ })
(fetchNuGet {
pname = "System.Collections";
version = "4.0.11";
@@ -561,6 +501,11 @@
version = "4.3.0";
sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
})
+ (fetchNuGet {
+ pname = "System.ComponentModel.Annotations";
+ version = "5.0.0";
+ sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j";
+ })
(fetchNuGet {
pname = "System.Configuration.ConfigurationManager";
version = "4.4.0";
@@ -581,6 +526,11 @@
version = "4.3.0";
sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq";
})
+ (fetchNuGet {
+ pname = "System.Diagnostics.DiagnosticSource";
+ version = "7.0.0";
+ sha256 = "1jxhvsh5mzdf0sgb4dfmbys1b12ylyr5pcfyj1map354fiq3qsgm";
+ })
(fetchNuGet {
pname = "System.Diagnostics.Tools";
version = "4.0.1";
@@ -661,6 +611,16 @@
version = "4.1.0";
sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
})
+ (fetchNuGet {
+ pname = "System.Memory";
+ version = "4.5.4";
+ sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y";
+ })
+ (fetchNuGet {
+ pname = "System.Memory";
+ version = "4.5.5";
+ sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h";
+ })
(fetchNuGet {
pname = "System.Net.Http";
version = "4.3.4";
@@ -671,6 +631,16 @@
version = "4.3.0";
sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
})
+ (fetchNuGet {
+ pname = "System.Numerics.Vectors";
+ version = "4.4.0";
+ sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba";
+ })
+ (fetchNuGet {
+ pname = "System.Numerics.Vectors";
+ version = "4.5.0";
+ sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59";
+ })
(fetchNuGet {
pname = "System.ObjectModel";
version = "4.0.12";
@@ -751,6 +721,11 @@
version = "4.3.0";
sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
})
+ (fetchNuGet {
+ pname = "System.Runtime.CompilerServices.Unsafe";
+ version = "4.5.3";
+ sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln";
+ })
(fetchNuGet {
pname = "System.Runtime.CompilerServices.Unsafe";
version = "6.0.0";
@@ -911,6 +886,11 @@
version = "4.0.0";
sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
})
+ (fetchNuGet {
+ pname = "System.Threading.Tasks.Extensions";
+ version = "4.5.4";
+ sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153";
+ })
(fetchNuGet {
pname = "System.Xml.ReaderWriter";
version = "4.0.11";