this repo has no description
1{{ define "title" }} 2 {{ .Pull.Title }} &middot; pull #{{ .Pull.PullId }} &middot; {{ .RepoInfo.FullName }} 3{{ end }} 4 5{{ define "repoContent" }} 6 <header class="pb-4"> 7 <h1 class="text-2xl dark:text-white"> 8 {{ .Pull.Title }} 9 <span class="text-gray-500 dark:text-gray-400">#{{ .Pull.PullId }}</span> 10 </h1> 11 </header> 12 13 {{ $bgColor := "bg-gray-800 dark:bg-gray-700" }} 14 {{ $icon := "ban" }} 15 16 {{ if .Pull.State.IsOpen }} 17 {{ $bgColor = "bg-green-600 dark:bg-green-700" }} 18 {{ $icon = "git-pull-request" }} 19 {{ else if .Pull.State.IsMerged }} 20 {{ $bgColor = "bg-purple-600 dark:bg-purple-700" }} 21 {{ $icon = "git-merge" }} 22 {{ end }} 23 24 <section> 25 <div class="flex items-center gap-2"> 26 <div 27 id="state" 28 class="inline-flex items-center rounded px-3 py-1 {{ $bgColor }}" 29 > 30 {{ i $icon "w-4 h-4 mr-1.5 text-white" }} 31 <span class="text-white">{{ .Pull.State.String }}</span> 32 </div> 33 <span class="text-gray-500 dark:text-gray-400 text-sm"> 34 opened by 35 {{ $owner := index $.DidHandleMap .Pull.OwnerDid }} 36 <a href="/{{ $owner }}" class="no-underline hover:underline" 37 >{{ $owner }}</a 38 > 39 <span class="select-none before:content-['\00B7']"></span> 40 <time>{{ .Pull.Created | timeFmt }}</time> 41 <span class="select-none before:content-['\00B7']"></span> 42 <span> 43 targeting 44 <span class="text-xs rounded bg-gray-100 dark:bg-gray-700 text-black dark:text-white font-mono px-2 mx-1/2 inline-flex items-center"> 45 <a href="/{{ .RepoInfo.FullName }}/tree/{{ .Pull.TargetBranch }}" class="no-underline hover:underline">{{ .Pull.TargetBranch }}</a> 46 </span> 47 </span> 48 {{ if not .Pull.IsPatch }} 49 <span>from 50 {{ if not .Pull.IsSameRepoBranch }} 51 <a href="/{{ $owner }}/{{ .PullSourceRepo.Name }}" class="no-underline hover:underline">{{ $owner }}/{{ .PullSourceRepo.Name }}</a> 52 {{ end }} 53 <span class="text-xs rounded bg-gray-100 dark:bg-gray-700 text-black dark:text-white font-mono px-2 mx-1/2 inline-flex items-center"> 54 <a href="/{{ $owner }}/{{ .PullSourceRepo.Name }}/tree/{{ .Pull.PullSource.Branch }}" class="no-underline hover:underline">{{ .Pull.PullSource.Branch }}</a> 55 </span> 56 </span> 57 {{ end }} 58 </span> 59 </div> 60 61 {{ if .Pull.Body }} 62 <article id="body" class="mt-2 prose dark:prose-invert"> 63 {{ .Pull.Body | markdown }} 64 </article> 65 {{ end }} 66 </section> 67 68{{ end }} 69 70{{ define "repoAfter" }} 71 <section id="submissions" class="mt-4"> 72 <div class="flex flex-col gap-4"> 73 {{ block "submissions" . }} {{ end }} 74 </div> 75 </section> 76 77 <div id="pull-close"></div> 78 <div id="pull-reopen"></div> 79{{ end }} 80 81{{ define "submissions" }} 82 {{ $lastIdx := sub (len .Pull.Submissions) 1 }} 83 {{ $targetBranch := .Pull.TargetBranch }} 84 {{ $repoName := .RepoInfo.FullName }} 85 {{ range $idx, $item := .Pull.Submissions }} 86 {{ $diff := $item.AsNiceDiff $targetBranch }} 87 {{ with $item }} 88 <details {{ if eq $idx $lastIdx }}open{{ end }}> 89 <summary id="round-#{{ .RoundNumber }}" class="list-none cursor-pointer"> 90 <div class="flex flex-wrap gap-2 items-center"> 91 <!-- round number --> 92 <div class="rounded bg-white dark:bg-gray-800 drop-shadow-sm px-3 py-2 dark:text-white"> 93 #{{ .RoundNumber }} 94 </div> 95 <!-- round summary --> 96 <div class="rounded drop-shadow-sm bg-white dark:bg-gray-800 p-2 text-gray-500 dark:text-gray-400"> 97 <span> 98 {{ $owner := index $.DidHandleMap $.Pull.OwnerDid }} 99 {{ $re := "re" }} 100 {{ if eq .RoundNumber 0 }} 101 {{ $re = "" }} 102 {{ end }} 103 <span class="hidden md:inline">{{$re}}submitted</span> 104 by <a href="/{{ $owner }}">{{ $owner }}</a> 105 <span class="select-none before:content-['\00B7']"></span> 106 <a class="text-gray-500 dark:text-gray-400 hover:text-gray-500" href="#round-#{{ .RoundNumber }}"><time>{{ .Created | shortTimeFmt }}</time></a> 107 <span class="select-none before:content-['·']"></span> 108 {{ $s := "s" }} 109 {{ if eq (len .Comments) 1 }} 110 {{ $s = "" }} 111 {{ end }} 112 {{ len .Comments }} comment{{$s}} 113 </span> 114 </div> 115 <!-- view patch --> 116 <a class="btn flex items-center gap-2 no-underline hover:no-underline p-2" 117 hx-boost="true" 118 href="/{{ $.RepoInfo.FullName }}/pulls/{{ $.Pull.PullId }}/round/{{.RoundNumber}}"> 119 {{ i "file-diff" "w-4 h-4" }} <span class="hidden md:inline">view patch</span> 120 </a> 121 </div> 122 </summary> 123 <div class="md:pl-12 flex flex-col gap-2 mt-2 relative"> 124 {{ range .Comments }} 125 <div id="comment-{{.ID}}" class="bg-white dark:bg-gray-800 rounded drop-shadow-sm py-2 px-4 relative w-fit"> 126 <div class="absolute left-8 -top-2 w-px h-2 bg-gray-300 dark:bg-gray-600"></div> 127 <div class="text-sm text-gray-500 dark:text-gray-400"> 128 {{ $owner := index $.DidHandleMap .OwnerDid }} 129 <a href="/{{$owner}}">{{$owner}}</a> 130 <span class="before:content-['·']"></span> 131 <a class="text-gray-500 dark:text-gray-400 hover:text-gray-500 dark:hover:text-gray-300" href="#comment-{{.ID}}"><time>{{ .Created | shortTimeFmt }}</time></a> 132 </div> 133 <div class="prose dark:prose-invert"> 134 {{ .Body | markdown }} 135 </div> 136 </div> 137 {{ end }} 138 139 {{ if eq $lastIdx .RoundNumber }} 140 {{ block "mergeStatus" $ }} {{ end }} 141 {{ block "resubmitStatus" $ }} {{ end }} 142 {{ end }} 143 144 {{ if $.LoggedInUser }} 145 {{ template "fragments/pullActions" (dict "LoggedInUser" $.LoggedInUser "Pull" $.Pull "RepoInfo" $.RepoInfo "RoundNumber" .RoundNumber "MergeCheck" $.MergeCheck "ResubmitCheck" $.ResubmitCheck) }} 146 {{ else }} 147 <div class="bg-white dark:bg-gray-800 rounded drop-shadow-sm px-6 py-4 w-fit dark:text-white"> 148 <div class="absolute left-8 -top-2 w-px h-2 bg-gray-300 dark:bg-gray-600"></div> 149 <a href="/login" class="underline">login</a> to join the discussion 150 </div> 151 {{ end }} 152 </div> 153 </details> 154 <hr class="md:hidden"/> 155 {{ end }} 156 {{ end }} 157{{ end }} 158 159{{ define "mergeStatus" }} 160 {{ if .Pull.State.IsClosed }} 161 <div class="bg-gray-50 dark:bg-gray-700 border border-black dark:border-gray-500 rounded drop-shadow-sm px-6 py-2 relative w-fit"> 162 <div class="absolute left-8 -top-2 w-px h-2 bg-gray-300 dark:bg-gray-600"></div> 163 <div class="flex items-center gap-2 text-black dark:text-white"> 164 {{ i "ban" "w-4 h-4" }} 165 <span class="font-medium">closed without merging</span 166 > 167 </div> 168 </div> 169 {{ else if .Pull.State.IsMerged }} 170 <div class="bg-purple-50 dark:bg-purple-900 border border-purple-500 rounded drop-shadow-sm px-6 py-2 relative w-fit"> 171 <div class="absolute left-8 -top-2 w-px h-2 bg-gray-300 dark:bg-gray-600"></div> 172 <div class="flex items-center gap-2 text-purple-500 dark:text-purple-300"> 173 {{ i "git-merge" "w-4 h-4" }} 174 <span class="font-medium">pull request successfully merged</span 175 > 176 </div> 177 </div> 178 {{ else if and .MergeCheck .MergeCheck.Error }} 179 <div class="bg-red-50 dark:bg-red-900 border border-red-500 rounded drop-shadow-sm px-6 py-2 relative w-fit"> 180 <div class="absolute left-8 -top-2 w-px h-2 bg-gray-300 dark:bg-gray-600"></div> 181 <div class="flex items-center gap-2 text-red-500 dark:text-red-300"> 182 {{ i "triangle-alert" "w-4 h-4" }} 183 <span class="font-medium">{{ .MergeCheck.Error }}</span> 184 </div> 185 </div> 186 {{ else if and .MergeCheck .MergeCheck.IsConflicted }} 187 <div class="bg-red-50 dark:bg-red-900 border border-red-500 rounded drop-shadow-sm px-6 py-2 relative w-fit"> 188 <div class="absolute left-8 -top-2 w-px h-2 bg-gray-300 dark:bg-gray-600"></div> 189 <div class="flex flex-col gap-2 text-red-500 dark:text-red-300"> 190 <div class="flex items-center gap-2"> 191 {{ i "triangle-alert" "w-4 h-4" }} 192 <span class="font-medium">merge conflicts detected</span> 193 </div> 194 <ul class="space-y-1"> 195 {{ range .MergeCheck.Conflicts }} 196 {{ if .Filename }} 197 <li class="flex items-center"> 198 {{ i "file-warning" "w-4 h-4 mr-1.5 text-red-500 dark:text-red-300" }} 199 <span class="font-mono">{{ slice .Filename 0 (sub (len .Filename) 2) }}</span> 200 </li> 201 {{ end }} 202 {{ end }} 203 </ul> 204 </div> 205 </div> 206 {{ else if .MergeCheck }} 207 <div class="bg-green-50 dark:bg-green-900 border border-green-500 rounded drop-shadow-sm px-6 py-2 relative w-fit"> 208 <div class="absolute left-8 -top-2 w-px h-2 bg-gray-300 dark:bg-gray-600"></div> 209 <div class="flex items-center gap-2 text-green-500 dark:text-green-300"> 210 {{ i "circle-check-big" "w-4 h-4" }} 211 <span class="font-medium">no conflicts, ready to merge</span> 212 </div> 213 </div> 214 {{ end }} 215{{ end }} 216 217{{ define "resubmitStatus" }} 218 {{ if .ResubmitCheck.Yes }} 219 <div class="bg-amber-50 dark:bg-amber-900 border border-amber-500 rounded drop-shadow-sm px-6 py-2 relative w-fit"> 220 <div class="absolute left-8 -top-2 w-px h-2 bg-gray-300 dark:bg-gray-600"></div> 221 <div class="flex items-center gap-2 text-amber-500 dark:text-amber-300"> 222 {{ i "triangle-alert" "w-4 h-4" }} 223 <span class="font-medium">this branch has been updated, consider resubmitting</span> 224 </div> 225 </div> 226 {{ end }} 227{{ end }}