How to create DOI (Digital Object Identifier) for repository?


There are a few resources for assigning DOIs for GitHub repositories.

In my understanding, the mechanics of the first method is to create a release and upload a zipped archive of this version to Zenodo. Could it be as simple as that (i.e., could be done manually) to get a DOI for a repository?

Thanks in advance.

1 Like

Dear hellokitty,

In short, yes :slight_smile:

The first method is a recipe for setting up an automatic Zenodo-GitHub integration we currently have in Zenodo, but in the end it can be done manually for any software repository, even if it lives only locally on your machine, i.e. you can upload a zip-ball of your software to Zenodo, provide some metadata and publish it to get a DOI (just as you would if you uploaded a paper or data).

Having said that, it’s probably the best if you make a zip-ball of a tagged release, so that the DOI captures something “complete”. Additionally you can supplement your record metadata on Zenodo with a “related identifier” (e.g. a URL) and point back to the tag on your live repository. This way anyone who discovers your software in the future will also have means to follow your live repository and find the most recent version of the software.

Dear krzysztof, this is exactly the information I was looking for. So I can manually mimic the Zenodo-GitHub integration. The Mozilla method also seems to tag a specific release and stick a DOI to that, so maybe it’s the same (I have not tried it and otherwise have not found much documentation on it.) But excellent, thanks for the detailed explanation on associating to the URL with it also.