GitLab Tutorial
- 1. Introduction to GitLab
- 2. Architecture & Self-Hosting
- 3. Groups, Projects & Namespaces
- 4. Issue Tracking & Agile
- 5. GitLab CI/CD Basics
- 6. GitLab Runners & Executors
- 7. Environments & Deployments
- 8. Merge Requests & Code Review
- 9. GitLab Container Registry
- 10. Package & Infra Registry
- 11. Security & Compliance
- 12. Monitoring & Analytics (DORA)
- 13. GitLab Pages Hosting
- 14. APIs, Webhooks & Integrations
- 15. GitLab Workflow & Best Practices
4. Issue Tracking & Agile Project Management
GitLab isn’t just a code repository hosting service; it is a full project management system. By keeping your planning tools (Issues) in the same application as your version control and pipelines, you achieve complete traceability from the inception of an idea to its production release.
Core Tracking Units: GitLab Issues
An Issue is the basic unit of collaboration. You use issues to report bugs, suggest features, discuss requirements, and assign tasks.
GitLab issues feature rich markdown formatting, task checklists, attachments, comments, and real-time updates.
Agile Tools: Epics & Milestones
GitLab incorporates Agile methodologies (Scrum/Kanban) natively:
- Epics: Used to track high-level initiatives or large feature groups. Epics allow you to group related issues together across multiple projects.
- Milestones: Represent a specific time frame or target date (such as a 2-week Sprint or a release version like v2.0). You associate issues with milestones to map out deliverables.
- Issue Weights: Assign numeric values to issues (e.g., Fibonacci scale 1, 2, 3, 5, 8) to indicate task complexity or effort required.
Dynamic Issue Boards (Kanban)
GitLab Issue Boards provide a visual representation of your workflows. You can move issues across horizontal lists, which automatically updates the issue's state or labels.
Common workflow boards are built using custom labels, such as:
[Backlog] ──> [To Do] ──> [In Progress] ──> [Under Review] ──> [Closed]The Power of Scoped Labels
One of GitLab’s standout features is Scoped Labels. These are double-colon labels (`key::value`) that allow mutually exclusive labeling. An issue can only have ONE value for a specific scope.
For example:
- If you apply the label `workflow::in-progress` to an issue, and then apply `workflow::review`, GitLab will automatically remove `workflow::in-progress`.
- Other popular scopes: `priority::high` vs `priority::medium` vs `priority::low`, or `severity::1` vs `severity::2`.
Visualizing the Roadmap
For GitLab Premium and Ultimate users, Roadmaps provide a Gantt-chart visualization of your Epics. You can view progress bars showing completed vs outstanding issues inside each initiative, enabling clear stakeholder communication without exporting data to external apps.