GitLab – Changing the Project’s Default Labels


After setting up GitLab, I wanted to create a project workflow using Labels.  However, I did not like the default ones.  I set them up a my first Test project, but wanted to replicate the Labels across all future projects.  There was a lot of googling and grepping involved, but I found out how to do it.

All of the default labels are created in the file:

/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/issues_labels.rb

I saved a backup of the existing issues_labels.rb, then I edited my to follow my desired workflow  is basically involved setting a color and default text for each of my new labels as follows:

module Gitlab
    class IssuesLabels
        class << self
            def generate(project)
                orange = '#D99100'
                dk_orange = '#D95100'
                lt_green  = '#A8D659'
                dk_green  = '#5CB85C'
                lt_blue = '#A8DEEE'
                grey = '#7F8C8D'
                blue = '#428BCA'
               lt_orange = '#F0AD4E'
               lt_red = '#D9534F'

                labels = [
                    { title: "Bug", color: orange },
                    { title: "Bug - KI", color: dk_orange },
                    { title: "Dev - Design", color: dk_green },
                    { title: "Dev - Unit Test", color: dk_green },
                    { title: "Dev - Validation", color: dk_green },
                    { title: "Dev - Verification", color: dk_green },
                    { title: "Dev - Backlog", color: lt_green },
                    { title: "Documentation", color: lt_blue },
                    { title: "Enhancement", color: lt_blue },
                    { title: "Evaluated - Dropped", color: grey },
                    { title: "Evaluated - Duplicated", color: grey },
                    { title: "New", color: blue },
                    { title: "Support", color: lt_orange },
                    { title: "Priority - Critical", color: lt_red },
                    { title: "Priority - Low", color: lt_blue }
                ]

                labels.each do |label|
                    project.labels.create(label)
                end
            end
        end
    end
end

Afterwards a restart of GitLab was required

$ gitlab-ctl restart

Now when I create a new project, I will get the default Labels I use in my workflow.

– Update 5/31/16 – After running both a “gitlab-crl upgrade” as well as the ‘yum update all” my custom settings still exist.

– Update 10/2/16 – a cut and paste from above may cause GitLab (specifically unicorn) to not start.  Here my current issues_labels.rb in case you need the raw file.

Leave a comment

Your email address will not be published. Required fields are marked *