Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Five ways to use GitHub to automate scholarly work

Five ways to use GitHub to automate scholarly work

In this presentation I explain how GitHub's API and GitHub Actions can be used to automate common scholarly tasks and improve the reliability of our work.

03e2e7de45b193cac192ae7ea071e5ff?s=128

Arfon Smith

June 17, 2021
Tweet

Transcript

  1. Five ways to use GitHub to automate scholarly work GitHub

    Presented by @arfon
  2. GitHub

  3. GitHub

  4. Platform APIs REST (v3) GraphQL https://docs.github.com/en/rest https://docs.github.com/en/graphql

  5. GitHub Actions – Platform Automation

  6. Automated scholarly documents 1

  7. Markdown paper in repository

  8. GitHub Action configured to compile paper

  9. Pull request triggers recompilation

  10. Paper compiled and available to download

  11. Notebook CI 2

  12. Jupyter Notebooks for JWST data analysis

  13. Contributing a notebook

  14. Fixing the notebook ‘build’

  15. Jupyter Notebooks for JWST data analysis

  16. Archiving repositories with Zenodo 3

  17. Powered by the GitHub API (webhooks) https://guides.github.com/activities/citable-code/

  18. Zenodo landing page https://guides.github.com/activities/citable-code/

  19. DOI per-release https://guides.github.com/activities/citable-code/

  20. DOI per-release https://guides.github.com/activities/citable-code/

  21. Reproducible compute environments 4

  22. repo2docker https://github.com/jupyterhub/repo2docker

  23. Define dependencies, add binder badge

  24. Build Docker container image and launch

  25. Interactive versioned compute environment

  26. Flat 5

  27. Automatically sync data with GitHub https://octo.github.com/projects/flat-data

  28. GitHub Action to sync data from sources https://github.com/marketplace/actions/flat-data

  29. Cron job periodically syncs data https://github.com/marketplace/actions/flat-data

  30. Live, always up to date COVID dashboard https://githubocto.github.io/flat-demo-covid-dashboard/state/new-york

  31. Thanks! arfon@github.com @arfon