this repo has no description
1{{ define "title" }}{{ .Tab }} settings &middot; {{ .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 }}