this repo has no description
1{{ define "title" }}{{ .Tab }} settings · {{ .RepoInfo.FullName }}{{ end }}
2
3{{ define "repoContent" }}
4 <section class="w-full grid grid-cols-1 md:grid-cols-4 gap-2">
5 <div class="col-span-1">
6 {{ template "repo/settings/fragments/sidebar" . }}
7 </div>
8 <div class="col-span-1 md:col-span-3 flex flex-col gap-6 p-2">
9 {{ template "spindleSettings" . }}
10 {{ if $.CurrentSpindle }}
11 {{ template "secretSettings" . }}
12 {{ end }}
13 <div id="operation-error" class="text-red-500 dark:text-red-400"></div>
14 </div>
15 </section>
16{{ end }}
17
18{{ define "spindleSettings" }}
19 <div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
20 <div class="col-span-1 md:col-span-2">
21 <h2 class="text-sm pb-2 uppercase font-bold">Spindle</h2>
22 <p class="text-gray-500 dark:text-gray-400">
23 Choose a spindle to execute your workflows on. Only repository owners
24 can configure spindles. Spindles can be selfhosted,
25 <a class="text-gray-500 dark:text-gray-400 underline" href="https://tangled.sh/@tangled.sh/core/blob/master/docs/spindle/hosting.md">
26 click to learn more.
27 </a>
28 </p>
29 </div>
30 {{ if not $.RepoInfo.Roles.IsOwner }}
31 <div class="col-span-1 md:col-span-1 md:justify-self-end group flex gap-2 items-stretch">
32 {{ or $.CurrentSpindle "No spindle configured" }}
33 </div>
34 {{ else }}
35 <form hx-post="/{{ $.RepoInfo.FullName }}/settings/spindle" class="col-span-1 md:col-span-1 md:justify-self-end group flex gap-2 items-stretch">
36 <select
37 id="spindle"
38 name="spindle"
39 required
40 class="p-1 max-w-64 border border-gray-200 bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700">
41 <option value="" disabled>
42 Choose a spindle
43 </option>
44 {{ range $.Spindles }}
45 <option value="{{ . }}" class="py-1" {{ if eq . $.CurrentSpindle }}selected{{ end }}>
46 {{ . }}
47 </option>
48 {{ end }}
49 </select>
50 <button class="btn flex gap-2 items-center" type="submit" {{ if not $.RepoInfo.Roles.IsOwner }}disabled{{ end }}>
51 {{ i "check" "size-4" }}
52 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }}
53 </button>
54 </form>
55 {{ end }}
56 </div>
57{{ end }}
58
59{{ define "secretSettings" }}
60 <div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
61 <div class="col-span-1 md:col-span-2">
62 <h2 class="text-sm pb-2 uppercase font-bold">SECRETS</h2>
63 <p class="text-gray-500 dark:text-gray-400">
64 Secrets are accessible in workflow runs via environment variables. Anyone
65 with collaborator access to this repository can add and use secrets in
66 workflow runs.
67 </p>
68 </div>
69 <div class="col-span-1 md:col-span-1 md:justify-self-end">
70 {{ template "addSecretButton" . }}
71 </div>
72 </div>
73 <div class="flex flex-col rounded border border-gray-200 dark:border-gray-700 divide-y divide-gray-200 dark:divide-gray-700 w-full">
74 {{ range .Secrets }}
75 {{ template "repo/settings/fragments/secretListing" (list $ .) }}
76 {{ else }}
77 <div class="flex items-center justify-center p-2 text-gray-500">
78 no secrets added yet
79 </div>
80 {{ end }}
81 </div>
82{{ end }}
83
84{{ define "addSecretButton" }}
85 <button
86 class="btn flex items-center gap-2"
87 popovertarget="add-secret-modal"
88 popovertargetaction="toggle">
89 {{ i "plus" "size-4" }}
90 add secret
91 </button>
92 <div
93 id="add-secret-modal"
94 popover
95 class="bg-white w-full md:w-96 dark:bg-gray-800 p-4 rounded border border-gray-200 dark:border-gray-700 drop-shadow dark:text-white backdrop:bg-gray-400/50 dark:backdrop:bg-gray-800/50">
96 {{ template "addSecretModal" . }}
97 </div>
98{{ end}}
99
100{{ define "addSecretModal" }}
101<form
102 hx-put="/{{ $.RepoInfo.FullName }}/settings/secrets"
103 hx-indicator="#spinner"
104 hx-swap="none"
105 class="flex flex-col gap-2"
106>
107 <p class="uppercase p-0">ADD SECRET</p>
108 <p class="text-sm text-gray-500 dark:text-gray-400">Secrets are available as environment variables in the workflow.</p>
109 <input
110 type="text"
111 id="secret-key"
112 name="key"
113 required
114 placeholder="SECRET_NAME"
115 />
116 <textarea
117 type="text"
118 id="secret-value"
119 name="value"
120 required
121 placeholder="secret value"></textarea>
122 <div class="flex gap-2 pt-2">
123 <button
124 type="button"
125 popovertarget="add-secret-modal"
126 popovertargetaction="hide"
127 class="btn w-1/2 flex items-center gap-2 text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300"
128 >
129 {{ i "x" "size-4" }} cancel
130 </button>
131 <button type="submit" class="btn w-1/2 flex items-center">
132 <span class="inline-flex gap-2 items-center">{{ i "plus" "size-4" }} add</span>
133 <span id="spinner" class="group">
134 {{ i "loader-circle" "ml-2 w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }}
135 </span>
136 </button>
137 </div>
138 <div id="add-secret-error" class="text-red-500 dark:text-red-400"></div>
139</form>
140{{ end }}