From a9bc03fb01b5d1ac41bf5592f384d22df5425aa4 Mon Sep 17 00:00:00 2001 From: Melodi <62381002+Melodi17@users.noreply.github.com> Date: Sun, 6 Sep 2026 09:02:31 +1000 Subject: feat: vcs and secret management support --- src/marlin.web/Views/Jobs/Details.cshtml | 5 +++ src/marlin.web/Views/Jobs/List.cshtml | 4 ++ src/marlin.web/Views/Jobs/Spawn.cshtml | 56 ++++++++++++++++++++++++++++ src/marlin.web/Views/Shared/_Layout.cshtml | 5 ++- src/marlin.web/Views/VCS/Create.cshtml | 8 ++-- src/marlin.web/Views/VCS/CreateSecret.cshtml | 12 ++++++ src/marlin.web/Views/VCS/Details.cshtml | 44 ++++++++++++++++++---- src/marlin.web/Views/VCS/List.cshtml | 2 +- src/marlin.web/Views/VCS/ListSecret.cshtml | 45 ++++++++++++++++++++++ 9 files changed, 168 insertions(+), 13 deletions(-) create mode 100644 src/marlin.web/Views/Jobs/Details.cshtml create mode 100644 src/marlin.web/Views/Jobs/Spawn.cshtml create mode 100644 src/marlin.web/Views/VCS/CreateSecret.cshtml create mode 100644 src/marlin.web/Views/VCS/ListSecret.cshtml (limited to 'src/marlin.web/Views') diff --git a/src/marlin.web/Views/Jobs/Details.cshtml b/src/marlin.web/Views/Jobs/Details.cshtml new file mode 100644 index 0000000..e1fd184 --- /dev/null +++ b/src/marlin.web/Views/Jobs/Details.cshtml @@ -0,0 +1,5 @@ +@model marlin.core.models.Job + +@Model.Id + +Back \ No newline at end of file diff --git a/src/marlin.web/Views/Jobs/List.cshtml b/src/marlin.web/Views/Jobs/List.cshtml index 2c10e46..6ae1d96 100644 --- a/src/marlin.web/Views/Jobs/List.cshtml +++ b/src/marlin.web/Views/Jobs/List.cshtml @@ -1,5 +1,7 @@ @model ICollection +Spawn new... + @@ -10,6 +12,7 @@ + @@ -23,6 +26,7 @@ + } diff --git a/src/marlin.web/Views/Jobs/Spawn.cshtml b/src/marlin.web/Views/Jobs/Spawn.cshtml new file mode 100644 index 0000000..8f7ee43 --- /dev/null +++ b/src/marlin.web/Views/Jobs/Spawn.cshtml @@ -0,0 +1,56 @@ +@using System.Linq +@using System.Text.Json +@using marlin.web.Controllers +@model marlin.web.Controllers.JobsController.JobSpawnDetails + +@{ + var sourcesJson = JsonSerializer.Serialize(Model.Sources.Select(s => new + { + id = s.Id, + label = s.UpstreamUrl, + mainBranch = s.MainBranch, + branches = s.Branches.Select(b => new { name = b.Name, commit = b.Commit.Hash }) + })); +} + + + VCS:
+ Ref:
+ Commit:
+ Recipe:
+ + + + diff --git a/src/marlin.web/Views/Shared/_Layout.cshtml b/src/marlin.web/Views/Shared/_Layout.cshtml index f060fcf..e8be2af 100644 --- a/src/marlin.web/Views/Shared/_Layout.cshtml +++ b/src/marlin.web/Views/Shared/_Layout.cshtml @@ -24,7 +24,10 @@ Home + diff --git a/src/marlin.web/Views/VCS/Create.cshtml b/src/marlin.web/Views/VCS/Create.cshtml index adaa913..e04592d 100644 --- a/src/marlin.web/Views/VCS/Create.cshtml +++ b/src/marlin.web/Views/VCS/Create.cshtml @@ -2,10 +2,10 @@ @using marlin.core.models - URL: - Filter: - Main Branch: - Polling Interval: + URL:
+ Filter:
+ Main Branch:
+ Polling Interval:
diff --git a/src/marlin.web/Views/VCS/CreateSecret.cshtml b/src/marlin.web/Views/VCS/CreateSecret.cshtml new file mode 100644 index 0000000..6453056 --- /dev/null +++ b/src/marlin.web/Views/VCS/CreateSecret.cshtml @@ -0,0 +1,12 @@ +@using marlin.core.models +@model VersionControlSource + + + Label:
+ Kind:
+ May Reveal:
+ Content (JSON):
+ + + +Back diff --git a/src/marlin.web/Views/VCS/Details.cshtml b/src/marlin.web/Views/VCS/Details.cshtml index 8d25472..45c1a8f 100644 --- a/src/marlin.web/Views/VCS/Details.cshtml +++ b/src/marlin.web/Views/VCS/Details.cshtml @@ -1,13 +1,43 @@ @using marlin.core @using marlin.core.models -@model marlin.core.models.VersionControlSource +@using marlin.web.Controllers +@model (VersionControlSource Source, List SecretOptions) -
- URL: - Filter: - Main Branch: - Polling Interval: + + URL:
+ Filter:
+ Main Branch:
+ Polling Interval:
+ Access Secret: +
-Back \ No newline at end of file +
vcs branch agentcreated
@source.Source.UpstreamUrl @source.Ref @(source.Agent?.Name ?? "no agent assigned")@(source.CreatedReason)
+ + + + + + + + + @foreach (var branch in Model.Source.Branches) + { + + + + + + } + +
branchcommit
@(branch.Name == Model.Source.MainBranch ? "@" : "")@branch.Name@branch.Commit.Hash
+ +Secrets +Back diff --git a/src/marlin.web/Views/VCS/List.cshtml b/src/marlin.web/Views/VCS/List.cshtml index 90c3f48..4c248e4 100644 --- a/src/marlin.web/Views/VCS/List.cshtml +++ b/src/marlin.web/Views/VCS/List.cshtml @@ -1,4 +1,4 @@ -@model IReadOnlyList +@model ICollection New diff --git a/src/marlin.web/Views/VCS/ListSecret.cshtml b/src/marlin.web/Views/VCS/ListSecret.cshtml new file mode 100644 index 0000000..aa5f15c --- /dev/null +++ b/src/marlin.web/Views/VCS/ListSecret.cshtml @@ -0,0 +1,45 @@ +@model (marlin.core.models.VersionControlSource Source, List Secrets) + +New + + + + + + + + + + + + + @foreach (var secret in Model.Secrets) + { + + + + + + + + } + +
idlabelkindvalueactions
@secret.Id@secret.Label@secret.Kind + @if (secret.MayReveal) + { + @foreach (var pair in secret.Content) + { + @pair.Key = @pair.Value + } + } + else + { + secret cannot be revealed + } + +
+ +
+
+ +back -- cgit v1.3.1