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