Issues and Wikis in GitLab

Exclusive offer: get 50% off this eBook here
GitLab Repository Management

GitLab Repository Management — Save 50%

Delve into managing your projects with GitLab, while tailoring it to fit your environment with this book and ebook

€16.99    €8.50
by Jonathan M. Hethey | November 2013 | Open Source

This article, by Jonathan M. Hethey, author of GitLab Repository Management, covers the documentation of software and its development through built-in wikis. Use of issue tracking inside GitLab and assigning issues to developers will also be covered.

(For more resources related to this topic, see here.)

Issues

The built-in features for issue tracking and documentation will be very beneficial to you, especially if you're working on extensive software projects, the ones with many components, or those that need to be supported in multiple versions at once, for example, stable, testing, and unstable.

In this article, we will have a closer look at the formats that are supported for issues and wiki pages (in particular, Markdown); also the elements that can be referenced from within these and how issues can be organized. Furthermore, we will go through the process of assigning issues to team members, and keeping documentation in wiki pages, which can also be edited locally. Lastly, we will see how the RSS feeds generated by GitLab can keep your team in a closer loop around the projects they work on.

The metadata covered in this article may seem trivial, but many famous software projects have gained traction due to their extensive and well-written documentation, which initially was done by core developers. It enables your users to do the same with their projects, even if only internally; it opens up for a much more efficient collaboration.

GitLab-flavored Markdown

GitLab comes with a Markdown formatting parser that is fairly similar to GitHubs, which makes it very easy to adapt and migrate. Many standalone editors also support this format, such as Mou (http://mouapp.com/) for Mac or MarkdownPad (http://markdownpad.com/) for Windows. On Linux, editors with a split view, such as ReText (http://sourceforge.net/projects/retext/) or the more Zen-writing UberWriter (http://uberwriter.wolfvollprecht.de/) are available.

For the popular Vim editor , multiple Markdown plugins too are up for grabs on a number of GitHub repositories; one of them is Vim Markdown (https://github.com/tpope/vim-markdown) by Tim Pope.

Lastly, I'd like to mention that you don't need a dedicated editor for Markdown because they are plain text files. The mentioned editors simply enhance the view through syntax highlighting and preview modes.

About Markdown

Markdown was originally written by John Gruber, and has since evolved into various flavors. The intention of this very lightweight markup language is to have a source that is easy to edit and can be transformed into meaningful HTML to be displayed on the Web. Different variations of Markdown have made it to a majority of very successful software projects as the default language; readme files, documentation, and even blogging engines adopt it.

In Markdown, text styles can be applied, links placed, and images can be inserted. If ever Markdown, by default, does not support what you are currently trying to do, you can insert plain HTML, which will not be altered by the Markdown parser.

Referring to elements inside GitLab

When working with source code, it can be of importance to refer to a line of code, a file, or other things, when discussing something. Because many development teams are nowadays spread throughout the world, GitLab adapts to that and makes it easy to refer and reference many things directly from comments, wiki pages, or issues.

Some things like files or lines can be referenced via links, because GitLab has unique links to the branches of a repository; others are more directly accessible. The following items (basically, prefixed strings or IDs) can be referenced through shortcodes:

  • commit messages
  • comments
  • wall posts
  • issues
  • merge requests
  • milestones
  • wiki pages

To reference items, use the following shortcodes inside any field that supports Markdown or RDoc on the web interface:

  • @foofor team members
  • #123for issues
  • !123for merge requests
  • $123for snippets
  • 1234567for commits

Issues, knowing what needs to be done

An issue is a text message of variable length, describing a bug in the code, an improvement to be made, or something else that should be done or discussed. By commenting on the issue, developers or project leaders can respond to this request or statement. The meta information attached to an issue can be very valuable to the team, because developers can be assigned to an issue, and it can be tagged or labeled with keywords that describe the content or area to which it belongs. Furthermore, you can also set a goal for the milestone to be included in this fix or feature. In the following screenshot, you can see the interface for issues:

Creating issues

By navigating to the Issues tab of a repository in the web interface, you can easily create new issues. Their title should be brief and precise, because a more elaborate description area is available.

The description area supports the GitLab-flavored Markdown, as mentioned previously.

Upon creation, you can choose a milestone and a user to assign an issue to, but you can also leave these fields unset, possibly to let your developers themselves choose with what they want to work and at what time. Before they begin their work, they can assign the issues to themselves. In the following screenshot, you can see what the issue creation form looks like:

Working with labels or tags

Labels are tags used to organize issues by the topic and severity.

Creating labels is as easy as inserting them, separated by a comma, into the respective field while creating an issue.

Currently in Version 5.2, certain keywords trigger a certain background color on the label. Labels like critical or bug turn red, feature turns green, and other labels are blue by default.

The following screenshot shows what a list of labeled features looks like:

After the creation of a label, it will be listed under the Labels tab within the Issues page, with a link that lists all the issues that have been labeled the same.

Filtering by the label, assigned user, or milestone is also possible from the list of issues within each projects overview.

Summary

In this article, we have had a look at the project management side of things. You can now make use of the built-in possibilities to distribute tasks across team members through issues, keep track of things that still have to do with the issues, or enable observers to point out bugs.

Resources for Article :


Further resources on this subject:


GitLab Repository Management Delve into managing your projects with GitLab, while tailoring it to fit your environment with this book and ebook
Published: November 2013
eBook Price: €16.99
Book Price: €26.99
See more
Select your format and quantity:

About the Author :


Jonathan M. Hethey

Jonathan M. Hethey has been writing code since the age of 14 and has actively participated in shaping and experimenting with the IT systems around him. After finishing his finals and an apprenticeship as an IT supporter, he studied Multimedia Design in Kolding, Denmark, followed by studies of Web Development in Odense, Denmark.

Besides his studies, he has been working on several web projects—both on a freelance basis and in his company which was founded in 2011.

Because programming and working in teams efficiently are keys to success in a rapidly changing industry, whether we are speaking of app development or creating beautiful web experiences, he quickly became a fan of Git, and started looking for great implementations of it on the server-side that would allow newcomers to pick it up quicker and extend it with additional functionality and usability.

Books From Packt


The Oracle Universal Content Management Handbook
The Oracle Universal Content Management Handbook

Alfresco 4 Enterprise Content Management Implementation
Alfresco 4 Enterprise Content Management Implementation

Alfresco 3 Enterprise Content Management Implementation
Alfresco 3 Enterprise Content Management Implementation

Alfresco CMIS
Alfresco CMIS

Implementing Citrix XenServer Quickstarter
Implementing Citrix XenServer Quickstarter

Web Content Management with Documentum
Web Content Management with Documentum

Documentum Content Management Foundations: EMC Proven Professional Certification Exam E20-120 Study Guide
Documentum Content Management Foundations: EMC Proven Professional Certification Exam E20-120 Study Guide

Documentum 6.5 Content Management Foundations
Documentum 6.5 Content Management Foundations

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software