+1. All for it. Le mar. 18 août 2020 à 13:38, Daniel Beck <[email protected]> a écrit :
> Hi everyone, > > I'd like to propose a cleanup of 'fork' relationships of the repositories > in the jenkinsci GitHub organization. > > Background: > For many years, the plugin hosting process has forked existing > repositories. The expectation was always that the new repo in jenkinsci was > the canonical 'main' repository, but that wasn't enforced. For the past > year or two, we've even asked maintainers to delete their repository after > forking unless there were useful PRs and issues in there already, so that > the jenkinsci repo became the 'main' repo (with occasional mishaps if > someone else had forked before us). > > Some people enjoy the "branding" effect that having the source repository > creates. But this comes with downsides: Sometimes GitHub code search > doesn't work, depending on the popularity of the repository. Links to > create pull requests sometimes don't work quite right, and INFRA-2697 notes > that the GitHub CLI cannot really handle networks where a fork is the > "main" repo, probably for the same reason. Having a different repo than > what we consider canonical as the "root" repository confuses users trying > to file pull requests or issues on GitHub. It'll get worse once GitHub adds > repo-level discussions[1]. Basically, the more stuff is attached to a > repository that isn't trivially cloned/mirrored to forks, the worse it gets. > > In terms of security, GitHub for quite some time did not support security > warnings for forks. LGTM.com / GitHub Security Labs still does not > recognize forked repositories. Earlier this year a security researcher > recently used its CodeQL functionality to identify and submit fixes to > pom.xml files referencing plain HTTP Maven repositories, but couldn't do > that for forked repos. In many cases, the source repositories are much less > active than the repo in jenkinsci, or the maintainers have moved on > entirely, making this feature unavailable to (other) current maintainers, > or the Jenkins security team. > > The way we create forks is simply not a well-supported use case. > > My proposal therefore is to "unfork" plugin and similar repositories in > the jenkinsci organization. Only repositories that clearly are forks (e.g. > some libraries not maintained by us) would remain forks. > > After checking with GitHub support, the following options exist: > > 1. It is possible to invert the fork relationship. This requires approval > from both repo owners (i.e. jenkinsci and whoever we forked from). > 2. It is possible to cut the fork relationship. This requires approval > from the forked repo owner (i.e. jenkinsci). > > And while it is technically possible to re-attach repos to a network / > merge networks, GH support would rather not do that. > > Therefore I propose we implement the following steps: > > 1. We try to contact, wherever possible, whoever we forked from, and ask > them to contact GitHub support. I'll grant blanket permission on behalf of > jenkinsci and will tell everyone the support ticket number to reference so > this goes as smoothly as possible. > 2. We wait a while while folks ask GH support for an inversion of the fork > relationship. > 3. We ask GitHub support to cut the fork relationship of everything that's > left over. > > Additionally, we should change the hosting process to work with repo > transfers, or creation of repos without the fork relationship. That can be > done at any time though; as even now we don't really want that fork > relationship we create to exist. > > To understand the scope of this, I've written a script that periodically > updates a list of forked repositories in jenkinsci, you can see the result > at > https://www.jenkins.io/doc/developer/publishing/source-code-hosting/forks/ > > One potential problem are plugins that are actively maintained outside the > jenkinsci organization and only have an outdated fork in jenkinsci that > isn't being used. I think it makes sense to ask maintainers to move their > activity into jenkinsci (including perhaps a complete repo transfer to > retain issues and PRs). If they refuse, rather than cut the fork > relationship, we could just delete our unused fork. (While this touches on > plugins maintained exclusively outside jenkinsci, I consider that general > topic to be a separate conversation. Please keep this thread focused on > this proposal.) > > Thoughts? > > Daniel > > 1: > https://github.blog/2020-05-06-new-from-satellite-2020-github-codespaces-github-discussions-securing-code-in-private-repositories-and-more/#discussions > > > -- > You received this message because you are subscribed to the Google Groups > "Jenkins Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-dev/6D96DA83-2AE0-4C87-92D6-4CCC8DFE1E57%40beckweb.net > . > -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CANWgJS4PdgQgOpdtgNO5GEf0VhSU1Cq3ZmA-v6MhyBS-ZpWsEQ%40mail.gmail.com.
