#2419 Fork and edit in LXD (or other container)
Opened 2 years ago by techtonik. Modified 2 years ago

Story. As a user I find it hard to use pagure to contribute to open source projects, because many git operations like file rename (#2418) or making file executable are impossible to do in UI and checking out projects locally, setting up my ssh keys and git config credentials require too much work already. I would like an ability to spin an LXD instance (https://linuxcontainers.org/lxd/try-it/) in web UI that will open web console with project clone, my credentials and separate branch to do necessary modifications and commit them with git client.

As an additional benefit, spinned container may contain setup for running tests and other checks (linters, hooks scripts) that are useful for specific projects during development.


Metadata Update from @pingou:
- Issue tagged with: wishful

2 years ago

This sounds to me like pretty much what Eclipse Che/codenvy.com is all about.
I personally don't think this should be a part of Pagure, as it is an entirely different and complicated problem, as it drags in a ton of challenges, amongst others:
- How do you allocate resources? Things that people run still take memory and CPU, and this requires significant resources.
- How do you secure the containers so that users can't break out and do things in other people's containers?
- What software do you put in the containers?

My personal suggestion is that if you ever move anywhere with this, you should look at integrating with Eclipse Che/Codenvy and making that available from the UI, since they are entirely in the business of making those decisions.

We could check if it's possible to integrate with codenvy, and have workspaces spun up there in people's personal accounts or the like. That would make it the users' and codenvy's problem for resources/pricing, and we could offer things like passing credentials through automatically.
This sounds to me like the most sane idea.

These guys have solved security problem successfully:

It would be nice to develop a standard to interact with those "container providers".

But the point is to reuse pagure account (that is used to edit files online) for git repository modifications.

These guys have solved security problem successfully:

https://linuxcontainers.org/lxd/try-it/
http://www.eclipse.org/che/
https://codenvy.com/
https://c9.io/
https://www.katacoda.com/

It would be nice to develop a standard to interact with those "container providers".

Sure, that's also why that was my suggestion, since there's a reason it's literally the only thing these providers do and sell.
We also shouldn't forget the first problem I mentioned: resources. Containers aren't free. The programs you run in them still use CPU, they still use memory.
My main point was that Pagure should not reimplement what these people have been doing.

But the point is to reuse pagure account (that is used to edit files online) for git repository modifications.

The way we'd do this depends on what the provider we integrate with has available.
If they can generate an SSH key and send us the public key back, we're done.
If not, we should figure out how to get them to do something like that, as that's probably the most feasible solution.

Login to comment on this ticket.

Metadata