Add DOI repositories, URL/file paths, and references
This MR builds on !449 (merged) to introduce:
- Support for DOI repositories (in addition to Git repositories)
- Ability to specify a Git reference
- Ability to specify a URL path (for example
/rstudio
, which is needed for transparent support of RStudio-based repositories) - Removed the big 'experimental' warning, and added a 'BETA' label instead
In the process I simplified the custom workflow code introduced by !449 (merged). In particular I removed dead code paths and unused types.
Fixes #564 (closed)
How to Test
- Try starting an RStudio-based, Figshare DOI:
- Paste the following in the
Git repository URL or DOI
input:10.6084/m9.figshare.9782777.v1
- Paste the following in the
URL to open e.g. /rstudio
input:/rstudio
- This should succeed, and when you click on the workflow interaction button a tab with RStudio should open
- Paste the following in the
- Try starting a workflow from a particular branch on a GitHub repository
- Paste the following in the
Git repository URL or DOI
input:https://github.com/binder-examples/minimal-dockerfile
- Paste the following in the
Git ref (branch, tag, or commit)
input:betatim-patch-1
- Paste the following in the
- Make sure you can't launch an invalid workflow
- Specify a reference and/or path, but with an empty repository URL or DOI
- The server 'Create' button should be disabled
- Enter something into the repository URL or DOI input
- The server 'Create' button should now be enabled
- Ensure that the 'Remove workflow' button still functions
- This button should be enabled/clickable when there is anything entered in any of the three input fields
- Check that button is enabled for both valid and invalid workflows
- Ensure that pressing the 'Remove workflow' button clears the workflow input fields in both invalid and valid workflow cases
Screenshots
See https://youtu.be/07t9pTtoCxM for a demo.
QA Checklist
-
Any changes to 'widgets' in src/Style/Widgets/
? If so:- Update
src/Style/StyleGuide.elm
showing example usage of that widget
- Update
-
Were any app flags created, modified, or removed? If so: - Update
config.js
and all files inenvironment-configs/
, includingdocker-config.js
- Update "Runtime configuration options" documentation in README.md
- Update
Post-Merge Checklist
-
Create follow-up issues for anything left over for another merge request - If any technical debt is introduced, assign these follow-up issues to the MR submitter
Edited by Julian Pistorius