-
Notifications
You must be signed in to change notification settings - Fork 192
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nf-core download should support private repos #2406
Comments
huh, interesting. Does this URL not work for private repos? Line 384 in e5ce6ce
I guess it's because we're doing a plain download. I wonder if we could get it via the (authenticated) API instead.. 🤔 Or at least add in some headers to the download to provide auth. |
I'm not certain but I think it just does a requests.get |
Yeah exactly, sorry I phrased it badly. I just meant does that URL exist with authentication on private repos, or is it just not there at all? I think it's quite easy to extend We already have the username and token in code (if we were able to find it, eg. by the user having the |
Does it work on private repos with the Because for Tower downloads, it runs |
Ahhhh I looked at the code some more. So if the tower flag is false, you download the repo as a zip, but if it's true you clone it . That's clever stuff. |
So is there any reason not to use |
The main reason is the single cryptic package output that does not allow for easy config additions. When you So for every pipeline (and revision!), I need to get the respective configs and test files one by one, adapt the paths in them to the offline locations and then save the output in a separate directory for Tower to access (or submit them to
In contrast to that, the "classic" download is much more user-friendly. It creates a self-contained directory with the folders
Since you can access everything with a file manager and inspect/edit the file contents with an editor, it is easily customizable. In contrast, if you want to customize a released pipeline from a |
Why is this hard-coded to only support GitHub? There are plenty of other git hosting platforms that people may be using. |
There are a few reasons why the pipeline download code specifically is quite tied to GitHub:
If there is interest in supporting other git hosting platforms for |
I hate to be a spoilsport, but my personal interest in looking into that is relatively low and since I was virtually the only one writing code for All nf-core pipelines are on GitHub. Ensuring that they download correctly, including the containers, is already a cat-and-mouse game and even harder, if there is absolutely no standardization or uniformity in how the pipeline is built. Here be dragons is the level of liability I am willing to assume for anything that happens outside of nf-core. I shrug, if somebody tries downloading a non-nf-core pipeline and then complains about inappropriate defaults (#2892), but I fear more of those issues will pop up, if we open the floodgates a little wider by supporting additional git hosting platforms. That being said, The coarse roadmap is, that downloading pipelines and associated containers should become separate functions #2408. The pipeline download would then be harmonized to use only the Getting the separate container download to work will be more difficult, because a All of this would be nice to have, but I basically only get round to develop features that we as a facility need to have for our egoistic purposes (#2938). Anything that we will never use ourselves unfortunately has a relatively low priority. Writing a pipeline might at least result in a paper and a few citations ✌😏. |
Description of feature
Currently, nf-core download breaks on private repos, mainly because it tries to download some files as compressed zips. We should support a private Github repo where possible, authenticating using the existing Github mechanisms or general Git (e.g. run
git clone && zip
). This mainly affects pulling the repository contents itself but may affect configuration. This will enable users of private repos to stage them to an offline area.The text was updated successfully, but these errors were encountered: