diff --git a/CHANGELOG b/CHANGELOG
index ca360c6706da31f670d7e51b4b00f9aec6e911ee..000c8b8b8eb8cb8185593bc826d08494d01d351b 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -20,6 +20,7 @@ v 8.6.0 (unreleased)
   - Memoize @group in Admin::GroupsController (Yatish Mehta)
   - Indicate how much an MR diverged from the target branch (Pierre de La Morinerie)
   - Added omniauth-auth0 Gem (Daniel Carraro)
+  - Add label description in tooltip to labels in issue index and sidebar
   - Strip leading and trailing spaces in URL validator (evuez)
   - Add "last_sign_in_at" and "confirmed_at" to GET /users/* API endpoints for admins (evuez)
   - Return empty array instead of 404 when commit has no statuses in commit status API
diff --git a/app/helpers/labels_helper.rb b/app/helpers/labels_helper.rb
index e238a7b4c265d80d6e79d226e8b93931b4ecc144..ed37176aa6ba95e76d15f78aa2aa79c02e1d3989 100644
--- a/app/helpers/labels_helper.rb
+++ b/app/helpers/labels_helper.rb
@@ -32,7 +32,7 @@ module LabelsHelper
   #   link_to_label(label) { "My Custom Label Text" }
   #
   # Returns a String
-  def link_to_label(label, project: nil, type: :issue, &block)
+  def link_to_label(label, project: nil, type: :issue, tooltip: true, &block)
     project ||= @project || label.project
     link = send("namespace_project_#{type.to_s.pluralize}_path",
                 project.namespace,
@@ -42,7 +42,7 @@ module LabelsHelper
     if block_given?
       link_to link, &block
     else
-      link_to render_colored_label(label), link
+      link_to render_colored_label(label, tooltip: tooltip), link
     end
   end
 
@@ -50,23 +50,24 @@ module LabelsHelper
     @project.labels.pluck(:title)
   end
 
-  def render_colored_label(label, label_suffix = '')
+  def render_colored_label(label, label_suffix = '', tooltip: true)
     label_color = label.color || Label::DEFAULT_COLOR
     text_color = text_color_for_bg(label_color)
 
     # Intentionally not using content_tag here so that this method can be called
     # by LabelReferenceFilter
-    span = %(<span class="label color-label") +
-      %(style="background-color: #{label_color}; color: #{text_color}">) +
+    span = %(<span class="label color-label #{"has_tooltip" if tooltip}" ) +
+      %(style="background-color: #{label_color}; color: #{text_color}" ) +
+      %(title="#{escape_once(label.description)}" data-container="body">) +
       %(#{escape_once(label.name)}#{label_suffix}</span>)
 
     span.html_safe
   end
 
-  def render_colored_cross_project_label(label)
+  def render_colored_cross_project_label(label, tooltip: true)
     label_suffix = label.project.name_with_namespace
     label_suffix = " <i>in #{escape_once(label_suffix)}</i>"
-    render_colored_label(label, label_suffix)
+    render_colored_label(label, label_suffix, tooltip: tooltip)
   end
 
   def suggested_colors
diff --git a/app/views/admin/labels/_label.html.haml b/app/views/admin/labels/_label.html.haml
index 5736a301910596866e63ae72392222419cec28ab..f417b2e44a411087ede12b3cbec7fdd9ec1698e6 100644
--- a/app/views/admin/labels/_label.html.haml
+++ b/app/views/admin/labels/_label.html.haml
@@ -1,6 +1,6 @@
 %li{id: dom_id(label)}
   .label-row
-    = render_colored_label(label)
+    = render_colored_label(label, tooltip: false)
     = markdown(label.description, pipeline: :single_line)
     .pull-right
       = link_to 'Edit', edit_admin_label_path(label), class: 'btn btn-sm'
diff --git a/app/views/shared/_label_row.html.haml b/app/views/shared/_label_row.html.haml
index 8134b15d24534de35ec312ca44e8dbc5b0c233f7..4b47b0291be69a334ad44bdbd2f1a19d7f25415a 100644
--- a/app/views/shared/_label_row.html.haml
+++ b/app/views/shared/_label_row.html.haml
@@ -1,4 +1,4 @@
 %span.label-row
-  = link_to_label(label)
+  = link_to_label(label, tooltip: false)
   %span.prepend-left-10
     = markdown(label.description, pipeline: :single_line)
diff --git a/app/views/shared/milestones/_labels_tab.html.haml b/app/views/shared/milestones/_labels_tab.html.haml
index ba27bafd1bc0ce870843a609f4c0bb4cb003d10b..868b2357003e8b14da5701cd5e3dd3b2378ebb61 100644
--- a/app/views/shared/milestones/_labels_tab.html.haml
+++ b/app/views/shared/milestones/_labels_tab.html.haml
@@ -5,7 +5,7 @@
     %li
       %span.label-row
         = link_to milestones_label_path(options) do
-          - render_colored_label(label)
+          - render_colored_label(label, tooltip: false)
         %span.prepend-left-10
           = markdown(label.description, pipeline: :single_line)
 
diff --git a/spec/helpers/labels_helper_spec.rb b/spec/helpers/labels_helper_spec.rb
index 4f129eca183f85a42f0732101231477ff7ee2b35..eca8bc8ab2d227eb7dd611d7c23b417a418cf4ca 100644
--- a/spec/helpers/labels_helper_spec.rb
+++ b/spec/helpers/labels_helper_spec.rb
@@ -11,7 +11,7 @@ describe LabelsHelper do
       end
 
       it 'uses the instance variable' do
-        expect(link_to_label(label)).to match %r{<a href="/#{@project.to_reference}/issues\?label_name=#{label.name}">.*</a>}
+        expect(link_to_label(label)).to match %r{<a href="/#{@project.to_reference}/issues\?label_name=#{label.name}"><span class="[\w\s\-]*has_tooltip".*</span></a>}
       end
     end
 
@@ -39,6 +39,14 @@ describe LabelsHelper do
       end
     end
 
+    context 'with a tooltip argument' do
+      context 'set to false' do
+        it 'does not include the has_tooltip class' do
+          expect(link_to_label(label, tooltip: false)).not_to match %r{has_tooltip}
+        end
+      end
+    end
+
     context 'with block' do
       it 'passes the block to link_to' do
         link = link_to_label(label) { 'Foo' }
@@ -49,7 +57,7 @@ describe LabelsHelper do
     context 'without block' do
       it 'uses render_colored_label as the link content' do
         expect(self).to receive(:render_colored_label).
-          with(label).and_return('Foo')
+          with(label, tooltip: true).and_return('Foo')
         expect(link_to_label(label)).to match('Foo')
       end
     end
diff --git a/spec/lib/banzai/filter/label_reference_filter_spec.rb b/spec/lib/banzai/filter/label_reference_filter_spec.rb
index e2d21f53b7e327177f9ae8d2f0603608beefc3b6..4c1d4a2d24cb2a0c531d77d281b693a5c83ba590 100644
--- a/spec/lib/banzai/filter/label_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/label_reference_filter_spec.rb
@@ -56,7 +56,7 @@ describe Banzai::Filter::LabelReferenceFilter, lib: true do
   describe 'label span element' do
     it 'includes default classes' do
       doc = reference_filter("Label #{reference}")
-      expect(doc.css('a span').first.attr('class')).to eq 'label color-label'
+      expect(doc.css('a span').first.attr('class')).to eq 'label color-label has_tooltip'
     end
 
     it 'includes a style attribute' do