IGA can be installed as either (or both) a command-line program on your computer or a GitHub Action in a GitHub repository.

IGA as a normal program

Please choose an approach that suits your situation and preferences. Then, after installation, proceed to (1) get an InvenioRDM token and (2) configure IGA for command-line use.

Installation alternative 1: installing IGA using pipx

Pipx lets you install Python programs in a way that isolates Python dependencies from other Python programs on your system, and yet the resulting iga command can be run from any shell and directory – like any normal program on your computer. If you use pipx on your system, you can install IGA with the following command:

pipx install iga

Installation alternative 2: installing IGA using pip

IGA is available from the Python package repository PyPI and can be installed using pip:

python3 -m pip install iga

As an alternative to getting it from PyPI, you can install iga directly from GitHub:

python3 -m pip install git+

If you already installed IGA once before, and want to update to the latest version, add --upgrade to the end of either command line above.

Installation alternative 3: installing IGA from sources

If you prefer to install IGA directly from the source code, first obtain a copy by either downloading the source archive from the IGA releases page on GitHub, or by using git to clone the repository to a location on your computer. For example,

git clone

Next, after getting a copy of the files, run inside the code directory:

cd iga
python3 install

IGA as a GitHub workflow

A GitHub Actions workflow is an automated process that runs on GitHub’s servers under control of a file in your repository. Follow these steps to create the IGA workflow file:

  1. In the main branch of your GitHub repository, create a .github/workflows directory

  2. In the .github/workflows directory, create a file named (e.g.) iga.yml and copy the following content (which is also available as file sample-workflow.yml in the GitHub repository for IGA):

    # GitHub Actions workflow for InvenioRDM GitHub Archiver version 1.2.2
    # This is available as the file "sample-workflow.yml" from the open-
    # source repository for IGA at
    # ╭────────────────────────────────────────────╮
    # │ Configure this section                     │
    # ╰────────────────────────────────────────────╯
      # 👋🏻 Set the next variable to your InvenioRDM server address 👋🏻
      # Set to an InvenioRDM record ID to mark release as a new version.
      parent_record: none
      # The variables below are other IGA options. Please see the docs.
      community:     none
      draft:         false
      all_assets:    false
      all_metadata:  false
      debug:         false
    # ╭────────────────────────────────────────────╮
    # │ The rest of this file should be left as-is │
    # ╰────────────────────────────────────────────╯
    name: InvenioRDM GitHub Archiver
        types: [published]
            description: "The release tag (empty = latest):"
            description: "ID of parent record (for versioning):"
            description: "Name of InvenioRDM community (if any):"
            description: "Mark the record as a draft"
            type: boolean
            description: "Attach all GitHub assets"
            type: boolean
            description: "Include additional GitHub metadata"
            type: boolean
            description: "Print debug info in the GitHub log"
            type: boolean
    run-name: Archive ${{inputs.release_tag || 'latest release'}} in InvenioRDM
        name: "Send to ${{needs.get_repository.outputs.server}}"
        runs-on: ubuntu-latest
        needs: get_repository
          - uses: caltechlibrary/iga@main
              INVENIO_SERVER: ${{env.INVENIO_SERVER}}
              INVENIO_TOKEN:  ${{secrets.INVENIO_TOKEN}}
              all_assets:     ${{github.event.inputs.all_assets || env.all_assets}}
              all_metadata:   ${{github.event.inputs.all_metadata || env.all_metadata}}
              debug:          ${{github.event.inputs.debug || env.debug}}
              draft:          ${{github.event.inputs.draft || env.draft}}
              community:      ${{ ||}}
              parent_record:  ${{github.event.inputs.parent_record || env.parent_record}}
              release_tag:    ${{github.event.inputs.release_tag || 'latest'}}
        name: "Get repository name"
        runs-on: ubuntu-latest
          server: ${{}}
          - name: Extract name from INVENIO_SERVER
            id: parse
            run: echo "host=$(cut -d'/' -f3 <<< ${{env.INVENIO_SERVER}} | cut -d':' -f1)" >> $GITHUB_OUTPUT
  3. Edit the value of the INVENIO_SERVER variable near the top of the file above ↑. For CaltechDATA the value should be

  4. Optionally, change the values of other options (parent_record, community, etc.)

  5. Save the file, commit the changes to git, and push your changes to GitHub

Once you have installed the GitHub Action workflow for IGA, the next steps are (1) get an InvenioRDM token and (2) configure the GitHub Action workflow.