Revoke access to forks when a user loses access to the upstream project
## Problem to solve
As the owner/maintainer of a private project that uses a forking workflow for development, if I revoke a users access to the project, they will still have access to their fork. This is particularly problematic on GitLab.com where the users account contains both personal and work projects:
- this requires a well intentioned user to manually delete on GitLab
- this makes it easy for an ill intentioned user to retain a copy of the project
## Further details
The proposal would make GitLab and GitHub's forking models (https://help.github.com/en/articles/removing-organization-members-from-a-team) consistent:
> If you remove a person’s access to a private repository, any of their forks of that private repository are deleted. Local clones of the private repository are retained. If a team's access to a private repository is revoked or a team with access to a private repository is deleted, and team members do not have access to the repository through another team, private forks of the repository will be deleted.
## Proposal
When a user is removed from a project or group in GitLab:
- all personal forks of private projects should become inaccessible
- all other forks where none of the owners have permission to access the upstream project
### Existing forks
Existing forks will need to be handled with some care to prevent unexpected data loss.
Currently, if a user loses access to a private project, they will retain access to those forks. The GitLab.com Support Team will not delete them.
Therefore, we should remove the fork relationship from pre-existing private forks where the owner no longer has access to the upstream fork. This will prevent these projects unexpectedly being removed.
## Documentation
## Links
- https://help.github.com/en/articles/removing-a-member-from-your-organization
- https://help.github.com/en/articles/removing-organization-members-from-a-team
- https://help.github.com/en/articles/removing-a-collaborator-from-a-personal-repository
issue