Skip to content

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
  • 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
  • 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

Screen_Shot_2021-09-07_at_19.37.28

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
  • Were any app flags created, modified, or removed? If so:
    • Update config.js and all files in environment-configs/, including docker-config.js
    • Update "Runtime configuration options" documentation in README.md

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

Merge request reports