diff --git a/templates/repo/issue/view_content/sidebar.tmpl b/templates/repo/issue/view_content/sidebar.tmpl
index 4c14e08013..b6fe04be63 100644
--- a/templates/repo/issue/view_content/sidebar.tmpl
+++ b/templates/repo/issue/view_content/sidebar.tmpl
@@ -44,131 +44,12 @@
 	{{end}}
 
 	<div class="divider"></div>
-	<div class="ui equal width compact grid">
-		{{$issueReferenceLink := printf "%s#%d" .Issue.Repo.FullName .Issue.Index}}
-		<div class="row tw-items-center" data-tooltip-content="{{$issueReferenceLink}}">
-			<span class="text column truncate">{{ctx.Locale.Tr "repo.issues.reference_link" $issueReferenceLink}}</span>
-			<button class="ui two wide button column tw-p-2" data-clipboard-text="{{$issueReferenceLink}}">{{svg "octicon-copy" 14}}</button>
-		</div>
-	</div>
+	{{template "repo/issue/view_content/sidebar/reference" .}}
 
 	{{if and .IsRepoAdmin (not .Repository.IsArchived)}}
 		<div class="divider"></div>
 
-		{{if or .PinEnabled .Issue.IsPinned}}
-			<form class="tw-mt-1 form-fetch-action single-button-form" method="post" {{if $.NewPinAllowed}}action="{{.Issue.Link}}/pin"{{else}}data-tooltip-content="{{ctx.Locale.Tr "repo.issues.max_pinned"}}"{{end}}>
-				{{$.CsrfTokenHtml}}
-				<button class="fluid ui button {{if not $.NewPinAllowed}}disabled{{end}}">
-					{{if not .Issue.IsPinned}}
-						{{svg "octicon-pin" 16 "tw-mr-2"}}
-						{{ctx.Locale.Tr "pin"}}
-					{{else}}
-						{{svg "octicon-pin-slash" 16 "tw-mr-2"}}
-						{{ctx.Locale.Tr "unpin"}}
-					{{end}}
-				</button>
-			</form>
-		{{end}}
-
-		<button class="tw-mt-1 fluid ui show-modal button {{if .Issue.IsLocked}} negative {{end}}" data-modal="#lock">
-			{{if .Issue.IsLocked}}
-				{{svg "octicon-key"}}
-				{{ctx.Locale.Tr "repo.issues.unlock"}}
-			{{else}}
-				{{svg "octicon-lock"}}
-				{{ctx.Locale.Tr "repo.issues.lock"}}
-			{{end}}
-		</button>
-		<div class="ui tiny modal" id="lock">
-			<div class="header">
-				{{if .Issue.IsLocked}}
-					{{ctx.Locale.Tr "repo.issues.unlock.title"}}
-				{{else}}
-					{{ctx.Locale.Tr "repo.issues.lock.title"}}
-				{{end}}
-			</div>
-			<div class="content">
-				<div class="ui warning message">
-					{{if .Issue.IsLocked}}
-						{{ctx.Locale.Tr "repo.issues.unlock.notice_1"}}<br>
-						{{ctx.Locale.Tr "repo.issues.unlock.notice_2"}}<br>
-					{{else}}
-						{{ctx.Locale.Tr "repo.issues.lock.notice_1"}}<br>
-						{{ctx.Locale.Tr "repo.issues.lock.notice_2"}}<br>
-						{{ctx.Locale.Tr "repo.issues.lock.notice_3"}}<br>
-					{{end}}
-				</div>
-
-				<form class="ui form form-fetch-action" action="{{.Issue.Link}}{{if .Issue.IsLocked}}/unlock{{else}}/lock{{end}}"
-					method="post">
-					{{.CsrfTokenHtml}}
-
-					{{if not .Issue.IsLocked}}
-						<div class="field">
-							<strong> {{ctx.Locale.Tr "repo.issues.lock.reason"}} </strong>
-						</div>
-
-						<div class="field">
-							<div class="ui fluid dropdown selection">
-
-								<select name="reason">
-									<option value=""> </option>
-									{{range .LockReasons}}
-										<option value="{{.}}">{{.}}</option>
-									{{end}}
-								</select>
-								{{svg "octicon-triangle-down" 14 "dropdown icon"}}
-
-								<div class="default text"> </div>
-
-								<div class="menu">
-									{{range .LockReasons}}
-										<div class="item" data-value="{{.}}">{{.}}</div>
-									{{end}}
-								</div>
-							</div>
-						</div>
-					{{end}}
-
-					<div class="text right actions">
-						<button class="ui cancel button">{{ctx.Locale.Tr "settings.cancel"}}</button>
-						<button class="ui red button">
-							{{if .Issue.IsLocked}}
-								{{ctx.Locale.Tr "repo.issues.unlock_confirm"}}
-							{{else}}
-								{{ctx.Locale.Tr "repo.issues.lock_confirm"}}
-							{{end}}
-						</button>
-					</div>
-				</form>
-			</div>
-		</div>
-		<button class="tw-mt-1 fluid ui show-modal button" data-modal="#sidebar-delete-issue">
-			{{svg "octicon-trash"}}
-			{{ctx.Locale.Tr "repo.issues.delete"}}
-		</button>
-		<div class="ui g-modal-confirm modal" id="sidebar-delete-issue">
-			<div class="header">
-				{{if .Issue.IsPull}}
-					{{ctx.Locale.Tr "repo.pulls.delete.title"}}
-				{{else}}
-					{{ctx.Locale.Tr "repo.issues.delete.title"}}
-				{{end}}
-			</div>
-			<div class="content">
-				<p>
-					{{if .Issue.IsPull}}
-						{{ctx.Locale.Tr "repo.pulls.delete.text"}}
-					{{else}}
-						{{ctx.Locale.Tr "repo.issues.delete.text"}}
-					{{end}}
-				</p>
-			</div>
-			<form action="{{.Issue.Link}}/delete" method="post">
-				{{.CsrfTokenHtml}}
-				{{template "base/modal_actions_confirm" .}}
-			</form>
-		</div>
+		{{template "repo/issue/view_content/sidebar/actions" .}}
 	{{end}}
 
 	{{if and .Issue.IsPull .IsIssuePoster (not .Issue.IsClosed) .Issue.PullRequest.HeadRepo}}
diff --git a/templates/repo/issue/view_content/sidebar/actions.tmpl b/templates/repo/issue/view_content/sidebar/actions.tmpl
new file mode 100644
index 0000000000..36f21822aa
--- /dev/null
+++ b/templates/repo/issue/view_content/sidebar/actions.tmpl
@@ -0,0 +1,114 @@
+{{if or .PinEnabled .Issue.IsPinned}}
+	<form class="tw-mt-1 form-fetch-action single-button-form" method="post" {{if $.NewPinAllowed}}action="{{.Issue.Link}}/pin"{{else}}data-tooltip-content="{{ctx.Locale.Tr "repo.issues.max_pinned"}}"{{end}}>
+		{{$.CsrfTokenHtml}}
+		<button class="fluid ui button {{if not $.NewPinAllowed}}disabled{{end}}">
+			{{if not .Issue.IsPinned}}
+				{{svg "octicon-pin" 16 "tw-mr-2"}}
+				{{ctx.Locale.Tr "pin"}}
+			{{else}}
+				{{svg "octicon-pin-slash" 16 "tw-mr-2"}}
+				{{ctx.Locale.Tr "unpin"}}
+			{{end}}
+		</button>
+	</form>
+{{end}}
+
+<button class="tw-mt-1 fluid ui show-modal button {{if .Issue.IsLocked}} negative {{end}}" data-modal="#lock">
+	{{if .Issue.IsLocked}}
+		{{svg "octicon-key"}}
+		{{ctx.Locale.Tr "repo.issues.unlock"}}
+	{{else}}
+		{{svg "octicon-lock"}}
+		{{ctx.Locale.Tr "repo.issues.lock"}}
+	{{end}}
+</button>
+<div class="ui tiny modal" id="lock">
+	<div class="header">
+		{{if .Issue.IsLocked}}
+			{{ctx.Locale.Tr "repo.issues.unlock.title"}}
+		{{else}}
+			{{ctx.Locale.Tr "repo.issues.lock.title"}}
+		{{end}}
+	</div>
+	<div class="content">
+		<div class="ui warning message">
+			{{if .Issue.IsLocked}}
+				{{ctx.Locale.Tr "repo.issues.unlock.notice_1"}}<br>
+				{{ctx.Locale.Tr "repo.issues.unlock.notice_2"}}<br>
+			{{else}}
+				{{ctx.Locale.Tr "repo.issues.lock.notice_1"}}<br>
+				{{ctx.Locale.Tr "repo.issues.lock.notice_2"}}<br>
+				{{ctx.Locale.Tr "repo.issues.lock.notice_3"}}<br>
+			{{end}}
+		</div>
+
+		<form class="ui form form-fetch-action" action="{{.Issue.Link}}{{if .Issue.IsLocked}}/unlock{{else}}/lock{{end}}"
+			method="post">
+			{{.CsrfTokenHtml}}
+
+			{{if not .Issue.IsLocked}}
+				<div class="field">
+					<strong> {{ctx.Locale.Tr "repo.issues.lock.reason"}} </strong>
+				</div>
+
+				<div class="field">
+					<div class="ui fluid dropdown selection">
+
+						<select name="reason">
+							<option value=""> </option>
+							{{range .LockReasons}}
+								<option value="{{.}}">{{.}}</option>
+							{{end}}
+						</select>
+						{{svg "octicon-triangle-down" 14 "dropdown icon"}}
+
+						<div class="default text"> </div>
+
+						<div class="menu">
+							{{range .LockReasons}}
+								<div class="item" data-value="{{.}}">{{.}}</div>
+							{{end}}
+						</div>
+					</div>
+				</div>
+			{{end}}
+
+			<div class="text right actions">
+				<button class="ui cancel button">{{ctx.Locale.Tr "settings.cancel"}}</button>
+				<button class="ui red button">
+					{{if .Issue.IsLocked}}
+						{{ctx.Locale.Tr "repo.issues.unlock_confirm"}}
+					{{else}}
+						{{ctx.Locale.Tr "repo.issues.lock_confirm"}}
+					{{end}}
+				</button>
+			</div>
+		</form>
+	</div>
+</div>
+<button class="tw-mt-1 fluid ui show-modal button" data-modal="#sidebar-delete-issue">
+	{{svg "octicon-trash"}}
+	{{ctx.Locale.Tr "repo.issues.delete"}}
+</button>
+<div class="ui g-modal-confirm modal" id="sidebar-delete-issue">
+	<div class="header">
+		{{if .Issue.IsPull}}
+			{{ctx.Locale.Tr "repo.pulls.delete.title"}}
+		{{else}}
+			{{ctx.Locale.Tr "repo.issues.delete.title"}}
+		{{end}}
+	</div>
+	<div class="content">
+		<p>
+			{{if .Issue.IsPull}}
+				{{ctx.Locale.Tr "repo.pulls.delete.text"}}
+			{{else}}
+				{{ctx.Locale.Tr "repo.issues.delete.text"}}
+			{{end}}
+		</p>
+	</div>
+	<form action="{{.Issue.Link}}/delete" method="post">
+		{{.CsrfTokenHtml}}
+		{{template "base/modal_actions_confirm" .}}
+	</form>
+</div>
diff --git a/templates/repo/issue/view_content/sidebar/reference.tmpl b/templates/repo/issue/view_content/sidebar/reference.tmpl
new file mode 100644
index 0000000000..bbbc099558
--- /dev/null
+++ b/templates/repo/issue/view_content/sidebar/reference.tmpl
@@ -0,0 +1,7 @@
+<div class="ui equal width compact grid">
+	{{$issueReferenceLink := printf "%s#%d" .Issue.Repo.FullName .Issue.Index}}
+	<div class="row tw-items-center" data-tooltip-content="{{$issueReferenceLink}}">
+		<span class="text column truncate">{{ctx.Locale.Tr "repo.issues.reference_link" $issueReferenceLink}}</span>
+		<button class="ui two wide button column tw-p-2" data-clipboard-text="{{$issueReferenceLink}}">{{svg "octicon-copy" 14}}</button>
+	</div>
+</div>