HERMES

HERMES simplifies the publication of research software by continuously retrieving existing metadata in Citation File Format, CodeMeta and Git. Subsequently, the metadata is also compiled appropriately for InvenioRDM and Dataverse. Finally, CITATION.cff and codemeta.json are also updated for the publication repositories.

  1. Add .hermes/ to the .gitignore file

  2. Provide CITATION.cff file with additional metadata

    Important

    Make sure license is defined in the CITATION.cff file; otherwise, your release will not be accepted as open access by the Zenodo sandbox.

  3. Configure HERMES workflow

    The HERMES workflow is configured in the file TOML, where each step gets its own section.

    If you want to configure HERMES to use the metadata from Git and CITATION.cff, and to file in the Zenodo sandbox built on InvenioRDM, the hermes.toml file looks like this:

    hermes.toml
    # SPDX-FileCopyrightText: 2021 Veit Schiele
    #
    # SPDX-License-Identifier: BSD-3-Clause
    
    [harvest]
    from = [ "git", "cff" ]
    
    [deposit]
    mapping = "invenio"
    target = "invenio"
    
    [deposit.invenio]
    site_url = "https://sandbox.zenodo.org"
    access_right = "open"
    
    [postprocess]
    execute = [ "config_record_id" ]
    
  4. Access token for Zenodo Sandbox

    In order for GitHub Actions to publish your repository in the Zenodo Sandbox, you need a personal access token. To do this, you need to log in to Zenodo Sandbox and then create a personal access token in your user profile with the name HERMES workflow and the scopes deposit:actions und deposit:write:

    Zenodo: Neues persönliches Zugangstoken
  5. Copy the newly created token to a new GitHub secret named ZENODO_SANDBOX in your repository: Settings –> Secrets and Variables –> Actions –> New repository secret:

    GitHub: Neues Action-Secret
  6. Configure the GitHub action

    The HERMES project provides templates for continuous integration in a special repository: hermes-hmc/ci-templates. Copy the template file TEMPLATE_hermes_github_to_zenodo.yml into the .github/workflows/ directory of your repository and rename it, for example to hermes_github_to_zenodo.yml.

    Then you should go through the file and look for comments marked # ADAPT. Modify the file to suit your needs.

    Finally, add the workflow file to version control and push it to the GitHub server:

    $ git add .github/workflows/hermes_github_to_zenodo.yml
    $ git commit -m ":construction_worker: GitHub action for automatic publication with HERMES"
    $ git push
    
  7. GitHub actions should be allowed to create pull requests in your repository

    The HERMES workflow will not publish metadata without your approval. Instead, it will create a pull request so that you can approve or change the metadata that is stored. To enable this, go to Settings ‣ Actions ‣ General in your repository and in the Workflow permissions section, enable Allow GitHub Actions to create and approve pull requests.