{"id":23473074,"url":"https://github.com/caltechlibrary/irdmtools","last_synced_at":"2026-04-02T19:10:29.811Z","repository":{"id":111429234,"uuid":"558629652","full_name":"caltechlibrary/irdmtools","owner":"caltechlibrary","description":"A Go and Python package for working with InvenioRDM repositories.","archived":false,"fork":false,"pushed_at":"2026-03-30T23:34:17.000Z","size":85495,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-31T00:29:12.176Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://caltechlibrary.github.io/irdmtools","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/caltechlibrary.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":"codemeta.json","zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-10-28T00:12:08.000Z","updated_at":"2026-03-30T23:34:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"9e60e4f3-9fd8-41a9-9130-8a17236c078e","html_url":"https://github.com/caltechlibrary/irdmtools","commit_stats":null,"previous_names":[],"tags_count":93,"template":false,"template_full_name":null,"purl":"pkg:github/caltechlibrary/irdmtools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caltechlibrary%2Firdmtools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caltechlibrary%2Firdmtools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caltechlibrary%2Firdmtools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caltechlibrary%2Firdmtools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caltechlibrary","download_url":"https://codeload.github.com/caltechlibrary/irdmtools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caltechlibrary%2Firdmtools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31314050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-24T17:15:05.712Z","updated_at":"2026-04-02T19:10:29.791Z","avatar_url":"https://github.com/caltechlibrary.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n[![Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip)\n\n\nInstitutional Repository Data Management Tools\n==============================================\n\nThis is a proof of concept set tools for working with Invenio RDM and migrating content from EPrints to RDM. It consists of a small set of Go based command line programs along with Python scripts and a wrapping irdm Python module. The Go based tooling is designed to work directory with a copy of you repositories' database (e.g. Postgres for RDM or MySQL for EPrints). \n\nThe proof of concept is being developed around RDM's web services (e.g. REST API and OAI-PMH), PostgreSQL database and external metadata services (e.g. CrossRef, DataCite). \n\nCaltech Library is using irdmtools to migrate content from our legacy EPrints 3.3 repositories (heavily customized) to RDM. Post migration the core Go tools will remain useful for curation at the collection level (e.g. [rdmutil](rdmutil.1.md))\n\n## Featured Tools\n\n### `rdmutil`\n\nThis tool is for interacting with an Invenio RDM repository via RDM's REST and OAI-PMH API. It covers most the JSON API documented at \u003chttps://inveniordm.docs.cern.ch/\u003e. This includes listing, submitting and managing records and draft records.\n\n`rdmutil` configuration is read either from the environment or a JSON formatted configuration file.  See the [man page](rdmutil.1.md) for details.\n\n### `ep3util`\n\nThis tool is used for migrating data out of EPrints. It can be used on a copy of your EPrints MySQL database. It parallels `rdmutil` and is an evolution of our tooling developed in [eprinttools](https://github.com/caltechlibrary/eprinttools). See the [man page](ep3util.1.md) for details.\n\n### `eprint2rdm`\n\nThis tool is migrating content from an EPrints repository via the EPrint REST API.  It will retrieve an EPrint XML representation of the EPrint record  and transform it into a JSON encoded simplified record nearly compatible with Invenio RDM.  See the [man page](eprint2rdm.1.md) for details.\n\n### `doi2rdm`\n\nThis tool will query the CrossRef or DataCite API and convert a works record into a JSON structure compatible with an RDM record (e.g. to be inserted via an RDM API call).  See the [man page](doi2rdm.1.md) for details\n\n### `ep3ds2citations`\n\nThis tools take an EPrint record in a dataset collection and returns an abbreviated record inspired by [citeproc](https://en.wikipedia.org/wiki/CiteProc). It also supports harvesting selected EPrint records into a dataset collection using the `-harvest` and `-ids` options. We use this feature to facilate creating \u003chttps://feeds.library.caltech.edu\u003e. See the [man page](ep3ds2citations.1.md) for details.\n\n### `rdmds2citations`\n\nThis tools take an RDM record in a dataset collection and returns an abbreviated record inspired by [citeproc](https://en.wikipedia.org/wiki/CiteProc). It also supports harvesting selected RDM records into a dataset collection using the `-harvest` and `-ids` options. We use this feature to facilate creating \u003chttps://feeds.library.caltech.edu\u003e. See the [man page](rdmds2citations.1.md) for details.\n\n## Requirements\n\n- An Invenio RDM deployment\n- To building the Go based software and documentation\n    - git\n    - Go \u003e= 1.22.1\n    - Make (e.g. GNU Make)\n    - Pandoc \u003e= 3\n- For harvesting content\n    - [dataset](https://github.com/caltechlibrary/dataset/) \u003e= 2\n- To migrate content from EPrints 3.3 to RDM\n    - Python 3 and packages listed in [requirements.txt]\n\n## Quick install\n\nIf you're running on Linux, macOS or Raspberry Pi OS you may be able to installed precompiled irdmtools Go based tools with the following curl command --\n\n~~~\ncurl https://caltechlibrary.github.io/irdmtools/installer.sh | sh\n~~~\n\n## Installation from source\n\nThis codebase is speculative. It is likely to change and \nas issues are identified. To install you need to download\nthe source code and compile it.  Here's the steps I take to\ninstall irdmtools.\n\n~~~\ngit clone git@github.com:caltechlibrary/irdmtools\ncd irdmtools\nmake\nmake test\nmake install\npython -m pip install -r requirements.txt\n~~~\n\n## Configuration\n\nThe Go based tools rely on a properly configured environment (i.e.\nenvironment variables set in your POSIX shell). Specific requirements\nare listed in the man pages for each of the Go based command line\nprograms.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaltechlibrary%2Firdmtools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaltechlibrary%2Firdmtools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaltechlibrary%2Firdmtools/lists"}