Skip to content
GitLab
Next
    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    Projects Groups Topics Snippets
  • Register
  • Sign in
  • GitLab GitLab
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 52,755
    • Issues 52,755
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 1,551
    • Merge requests 1,551
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.orgGitLab.org
  • GitLabGitLab
  • Issues
  • #15013
Closed
Open
Issue created Feb 05, 2016 by Meirion Hughes@MeirionHughes

Edit default path and project name when forking

Problem to solve

When forking a project into a namespace, the fork name cannot be changed. If for example user wants to create a second, private fork of an already forked project, this is not possible via the GUI. API allows for this customization, but the same workflow cannot be achieved via the GUI.

Proposal

Provide a mechanism to change the initial name of a fork before the fork operations is performed. If the chosen name exists in the target namespace then disallow forking (existing behavior).

image

More mocks
Desktop Tablet Mobile
gitlab.com-projects-new__1_ gitlab.com-projects-new gitlab.com-projects-new__2_

Further details

Example: as a regular contributor to an open source project like gitlab-org/gitlab-ce, I have a public fork john/gitlab-ce from which I contribute improvements. Sometimes I want to work from a private fork john/private-ce when I need to fix a security issue and I can't work on it publicly. Or I might just be nervous about having my really bad WIP branches being public.

Currently this is possible using the API, or via an inconvenient workflow involving forking to a group, renaming and moving to my own namespace.

Streamlining the security release process for public projects is the primary motivation for making this easy. A developer who is going to resolve a confidential security issue, needs to be able to create a branch in a private fork. If a public fork already exists, this workflow is obstructed.

Another common use case is a template project that I want to create forks from, so that I can merge changes between projects since they are related.

Testing

There are existing QA tests that will be updated: gitlab-org/quality/testcases#1719 (moved)

Links / references

  • MR !53544 (merged)
  • Docs MR !56461 (merged)

Release notes

Description: Forking a project allows you to have an exact copy of an original repository where you can experiment, apply changes, and submit contributions to the parent project. When forking it's useful to provide forks a meaningful name that indicates the effort or goal related to it. Additionally, having multiple copies of a fork allows you to maintain diverging projects.

This release introduces the option to edit the project name and project slug when forking, as well as the possibility of having multiple forks of the same project, allowing for different names and different forks in a single namespace.

Docs: https://docs.gitlab.com/ee/user/project/repository/forking_workflow.html#creating-a-fork

fork-form

Edited Apr 01, 2021 by Daniel Gruesso
Assignee
Assign to
Time tracking