Milestones

Milestones in GitLab are a way to track issues and merge requests created to achieve a broader goal in a certain period of time.

Milestones allow you to organize issues and merge requests into a cohesive group, with an optional start date and an optional due date.

Milestones as releases

Milestones can be used to track releases. To do so:

  1. Set the milestone due date to represent the release date of your release and leave the milestone start date blank.
  2. Set the milestone title to the version of your release, such as Version 9.4.
  3. Add an issue to your release by associating the desired milestone from the issue’s right-hand sidebar.

Additionally, you can integrate milestones with the Releases feature.

Project milestones and group milestones

A milestone can belong to project or group.

You can assign project milestones to issues or merge requests in that project only. You can assign group milestones to any issue or merge request of any project in that group.

For information about project and group milestones API, see:

View project or group milestones

To view the milestone list:

  1. On the top bar, select Main menu > Projects and find your project or Main menu > Groups and find your group.
  2. Select Issues > Milestones.

In a project, GitLab displays milestones that belong to the project. In a group, GitLab displays milestones that belong to the group and all projects in the group.

View milestones in a project with issues turned off

If a project has issue tracking turned off, you can get to the milestones page by going to its URL.

To do so:

  1. Go to your project.
  2. Add: /-/milestones to your project URL. For example https://gitlab.com/gitlab-org/sample-data-templates/sample-gitlab-project/-/milestones.

Alternatively, this project’s issues are visible in the group’s milestone page.

Improving this experience is tracked in issue 339009.

View all milestones

You can view all the milestones you have access to in the entire GitLab namespace. You might not see some milestones because they’re in projects or groups you’re not a member of.

To do so, on the top bar select Main menu > Milestones.

View milestone details

To view more information about a milestone, in the milestone list select the title of the milestone you want to view.

The milestone view shows the title and description.

There are also tabs below these that show the following:

  • Issues: Shows all issues assigned to the milestone. These are displayed in three columns named:
    • Unstarted Issues (open and unassigned)
    • Ongoing Issues (open and assigned)
    • Completed Issues (closed)
  • Merge Requests: Shows all merge requests assigned to the milestone. These are displayed in four columns named:
    • Work in progress (open and unassigned)
    • Waiting for merge (open and assigned)
    • Rejected (closed)
    • Merged
  • Participants: Shows all assignees of issues assigned to the milestone.
  • Labels: Shows all labels that are used in issues assigned to the milestone.

Burndown charts

The milestone view contains a burndown and burnup chart, showing the progress of completing a milestone.

burndown chart

Milestone sidebar

The milestone sidebar on the milestone view shows the following:

  • Percentage complete, which is calculated as number of closed issues divided by total number of issues.
  • The start date and due date.
  • The total time spent on all issues and merge requests assigned to the milestone.
  • The total issue weight of all issues assigned to the milestone.

Project milestone page

Create a milestone

Changed the minimum user role from Developer to Reporter in GitLab 15.0.

You can create a milestone either in a project or a group.

Prerequisites:

  • You must have at least the Reporter role for the project or group the milestone belongs to.

To create a milestone:

  1. On the top bar, select Main menu > Projects and find your project or Main menu > Groups and find your group.
  2. On the left sidebar, select Issues > Milestones.
  3. Select New milestone.
  4. Enter the title.
  5. Optional. Enter description, start date, and due date.
  6. Select New milestone.

New milestone

Edit a milestone

Changed the minimum user role from Developer to Reporter in GitLab 15.0.

Prerequisites:

  • You must have at least the Reporter role for the project or group the milestone belongs to.

To edit a milestone:

  1. On the top bar, select Main menu > Projects and find your project or Main menu > Groups and find your group.
  2. Select a milestone’s title.
  3. Select Edit.
  4. Edit the title, start date, due date, or description.
  5. Select Save changes.

Delete a milestone

Changed the minimum user role from Developer to Reporter in GitLab 15.0.

Prerequisites:

  • You must have at least the Reporter role for the project or group the milestone belongs to.

To edit a milestone:

  1. On the top bar, select Main menu > Projects and find your project or Main menu > Groups and find your group.
  2. Select a milestone’s title.
  3. Select Delete.
  4. Select Delete milestone.

Promote a project milestone to a group milestone

If you are expanding the number of projects in a group, you might want to share the same milestones among this group’s projects. You can also promote project milestones to group milestones to make them available to other projects in the same group.

Promoting a milestone merges all project milestones across all projects in this group with the same name into a single group milestone. All issues and merge requests that were previously assigned to one of these project milestones become assigned to the new group milestone.

caution
This action cannot be reversed and the changes are permanent.

Prerequisites:

  • You must have at least the Reporter role for the group.

To promote a project milestone:

  1. On the top bar, select Main menu > Projects and find your project.
  2. Either:
    • Select Promote to Group Milestone ().
    • Select the milestone title, and then select Promote.
  3. Select Promote Milestone.

Assign a milestone to an issue or merge request

Every issue and merge request can be assigned one milestone. The milestones are visible on every issue and merge request page, on the right sidebar. They are also visible in the issue board.

To assign or unassign a milestone:

  1. View an issue or a merge request.
  2. On the right sidebar, next to Milestones, select Edit.
  3. In the Assign milestone list, search for a milestone by typing its name. You can select from both project and group milestones.
  4. Select the milestone you want to assign.

You can also use the /assign quick action in a comment.

Filter issues and merge requests by milestone

Filters in list pages

From the project and group issue/merge request list pages, you can filter by both group and project milestones.

Filters in issue boards

From project issue boards, you can filter by both group milestones and project milestones in:

From group issue boards, you can filter by only group milestones in:

Special milestone filters

When filtering by milestone, in addition to choosing a specific project milestone or group milestone, you can choose a special milestone filter.

  • None: Show issues or merge requests with no assigned milestone.
  • Any: Show issues or merge requests that have an assigned milestone.
  • Upcoming: Show issues or merge requests that have been assigned the open milestone and has the nearest due date in the future.
  • Started: Show issues or merge requests that have an open assigned milestone with a start date that is before today.