Allow non packagers to push to distgit forks via ssh #11292
Labels
No labels
announcement
authentication
automate
aws
backlog
blocked
bodhi
ci
Closed As
Duplicate
Closed As
Fixed
Closed As
Fixed with Explanation
Closed As
Initiative Worthy
Closed As
Insufficient data
Closed As
Invalid
Closed As
Spam
Closed As
Upstream
Closed As/Will Not
Can Not fix
cloud
communishift
copr
database
deprecated
dev
discourse
dns
downloads
easyfix
epel
factory2
firmitas
gitlab
greenwave
hardware
help wanted
high-gain
high-trouble
iad2
koji
koschei
lists
low-gain
low-trouble
mbs
medium-gain
medium-trouble
mini-initiative
mirrorlists
monitoring
Needs investigation
notifier
odcs
OpenShift
ops
OSBS
outage
packager_workflow_blocker
pagure
permissions
Priority
Needs Review
Priority
Next Meeting
Priority
🔥 URGENT 🔥
Priority
Waiting on Assignee
Priority
Waiting on External
Priority
Waiting on Reporter
rabbitmq
rdu-cc
release-monitoring
releng
repoSpanner
request-for-resources
s390x
security
SMTP
src.fp.o
staging
taiga
unfreeze
waiverdb
websites-general
wiki
No milestone
No project
No assignees
4 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: infrastructure/fedora-infrastructure#11292
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
NOTE
If your issue is for security or deals with sensitive info please
mark it as private using the checkbox below.
Describe what you would like us to do:
Users who aren't members of the packager group should be able to push to their distgit forks via ssh. The current
fedpkg clone -a
http clone solution is nonideal. It's confusing for new packagers.git clone
can't be used like it can for other git forges, as fedpkg is needed to setup the git cred helper. it requires a browser for the OIDC authentication, so it can't be used on a headless machine.Please fix this, I wasted few hours over the weekend trying to make a contribution to a package. The current situation is very unfriendly for new-commers as it is unresonably limited and complex.
I am afraid that if not improved, it might serious impact the ability to increase the number of packagers over time, as most people might lose interest if the entry barrier is so high. We can assume that almost anyone is able to fork, make a git commit and create a pull request, something that can be done from any platform (not only Fedora).
I am using a MacOS as my primary host and I found that since 2018 is no longer possible to get a working installation of the fedpkg on it.
Basically I am advocating for a fedpkg free workflow that should allow anyone to propose a contribution via git alone. No other tooling, no platform requirements, no weird login experience (ssh not allowed for non-packager and the console-to-web login is fully broken for remote access as it assumed a localhost:1234 port for the response back, instead of having a polling check in place). Basically I failed to login even from a Fedora VM because it was a headless one.
Opening ssh, might prove a good first step towards making 1st contribution easier.
So, I agree it would be great to fix this.
However, it's a big can of worms.
Our dist-git setup is from the cvs days, and here's how it works:
packages have real accounts on pkgs01 (ie, pkgs.fedoraproject.org/src.fedoraproject.org). When a packager pushes a commit, it actually runs as them and (in addition to pagure perms checks) it also uses filesystem permissions. When a non packager tries to push something it doesn't work because... they don't have an account there.
Now, pagure.io works completely on pagure acl checks and runs everything as the 'git' user. It has ssh keys in it's database (seperate from accounts)
pkgs01 has ssh keys in the account system / ipa and gets them from there, not pagure.
We could move to a model like that on pkgs01. However, we would need to be VERY CAREFUL not to break acls or introduce secure problems. This would involve changing all the files in the entire git repo and re-working the acl wrapper to make sure it does the right thing.
We have been waiting until we actually move to gitlab or some other forge to try and do this.
To answer the above question, you can already do PRs with just some git server. Push your changes to some branch on any network reachable git server. Go to the package and click on 'create pull request' and click on 'remote pull request'. Fill in the url to your commit/branch and other info and... done? Does that work for your use case?
Metadata Update from @kevin:
[backlog refinement]
This issue isn't a small task and needs to change the whole deployment of dist-git. @gotmax23 Please file this as CPE initiative as we don't have resources to work on this in Fedora Infra.
Metadata Update from @zlopez: