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