Skip to content

Remove fork relationship when the visibility of the parent is restricted

Problem to solve

If I fork a popular public project on GitLab.com but the author of that project makes it private, my fork will become private without warning.

This would be a serious problem if the original project is unmaintained, and my fork is now the actively developed fork with a large amount of community activity. At the moment, the original author might decide to make their project private to reduce confusion or some other reason, and without any warning seriously mess up numerous forks.

Further details

The current GitLab behavior also is inconsistent with GitHub, who simply remove the relationship the parent/root project is moved from public to private.

GitHub confirmation screen when making a public project private

clip-20191003T104609

Proposal

When a project that is public or internal and the visibility is reduced to internal or private, remove the relationship between that project and it's forks.

There should be a confirmation modal to make sure the consequence of changing visibility is clear, since this is a potentially non-revertible, destructive action. This modal would appear when users change the visibility and save changes in the Visibility, project features, permissions project settings.

🔍 Design specs with all states, measures and easy text copying

image

Before

graph TD
    Root[john/spark-lib]-->A[mary/spark-lib]
    Root-->B[paul/spark-lib]
    A-->J[chris/spark-lib]
    A-->K[james/spark-lib]
    A-->L[helen/spark-lib]
    A-->M[jane/spark-lib]

After

graph TD
    Root[john/spark-lib]-.->|removed|A[mary/spark-lib]
    Root-.->|removed|B[paul/spark-lib]
    A-->J[chris/spark-lib]
    A-->K[james/spark-lib]
    A-->L[helen/spark-lib]
    A-->M[jane/spark-lib]

Links / references

Edited by Pedro Moreira da Silva