github-community-projects / github-community-projects/private-mirrors
Implement a "one mirror" contribution model
- Dominant language
- TypeScript
- Stars
- 196
- Forks
- 41
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 4
Description
### Is your feature request related to a problem?
We've gotten feedback that the relationship between mirrors and branches is both confusing and counter to user expectations. We may need to adapt the current implementation to make this easier to understand and work with.
### Describe the solution you'd like
The current state can be described as:
A public fork has _N_ `[ fork's topic branch -> main on private mirror ]` relationships that ICF manages. The private mirrors may have work in flight in their own branches but when that work is merged to main, the sync to their topic branch on the public fork ( middle column in the diagram ) happens - and that topic branch becomes the basis for a PR upstream.
But this results in a proliferation of mirrors and a mix of branches on the fork that might map to upstream, might map to work directly on the fork, or might be part of a ICF-managed mirror. Additionally, at least one user says they expected a mapping of `[ fork topic branch -> mirror topic branch ]` and was surprised at the current implementation.
So this at least requires better explanation if not some additional work to simplify this mapping.

### Describe alternatives you've considered
_No response_
### Additional context
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.