Skip to main content
It looks like you're using Internet Explorer 11 or older. This website works best with modern browsers such as the latest versions of Chrome, Firefox, Safari, and Edge. If you continue with this browser, you may see unexpected results.

You can still access the UC Berkeley Library's services and resources. Here's how.

How to make your code citable: Home

This guide will help you to learn how to make your code citable. It will take you step by step to archive your code using data and code archiving platform Zenodo and get a DOI for your code.


Note that this guide is still under review!



Publishing and preserving your research software helps you to ensure this software is citable and accessible in addition to ensuring the reproducibility and open science. This guide will help you to learn how to publish your code on Github and how to generate a citable archived repository for your code on Zenodo, a research data and code repository. Zenodo allows users to get permanent citable DOIs for published repositories on GitHub. The guide assumes that you already have a Github account.

If you want to learn how to prepare your code for publishing, check out this guide

Why making your code citable is important

Publishing and preserving code is important:

For you 

  • You will be using your code in future
  • Your software will be easily found
  • You want people to use your code and give you credit
  • Others would be encouraged to contribute to your code
  • It is required now by funders and publishers to publish your data and code

For others: 

  • Others can easily use your methods and code and build upon it 
  • Providing citation information make it easy for others to cite your work and your code

For community:

  • Advance the science
  • Encourage open science 
  • Allow reproducibility and transparency

Workflow for preserving your code

The following workflow is divided into two main parts: 

  • Publishing your code/software on GitHub
  • Getting DOI for your code/software

Publishing your code on GitHub:

  1. Log in to your GitHub account if you are not logged in.
  2. Create a new repository:
    1. Head over to the top of green button in the middle of the page to generate a new repository.
    2. Fill in the repository data, e.g., name (make the name descriptive), description. 
    3. Make the repo public to be able to archive it.
  3. Initiate the repository with a README or you can add it later.
    1. Follow guidelines here to see what you should include in your
  4. Add your scripts and other related files to your software.
  5. Add licensing information to your repository.

An important tip: Provide an informative descriptive for your code!

Getting a DOI for your software:



  1. Link GitHub with Zendodo:

    1. Head over to
    2. You can log in to Zenodo with your GitHub account.
      • You may need to authorize Zenodo application
    3. Zenodo will redirect you back to GitHub for Authorization
    4. Choose the repository webhooks options
    5. From the drop-down menu next to your email address at the top of the page, select GitHub.
      • You will be presented with a list of all your Github repositories
  2. Archiving a repo:
    1. Select a repository you want to archive on Zenodo.
    2. Toggle the "on" button next to the repository ou need to archive.
    3. Click on the Repo that you want to reserve.
    4. Click on Create release button at the top of the page. Zenodo will redirect you back to GitHub’s repo page to generate a release 
  3. Trigger Zenodo to Archive your repository
    1. Go to GitHub and create a release. Zenodo will automatically download a .zip-ball of each new release and register a DOI. 
    2. If this is the first release of your code then you should give it a version number of v1.0.0. Add description for your release then click the Publish release button.
    3.  Zenodo takes an archive of your GitHub repository each time you create a new Release
  4. To ensure that everything is working:
    1. go to,  or the Upload page (, you will find your repo is listed 
    2. Click on the repo, Zenodo will redirect you to a page that contains a DOI for your repo will the information that you added to the repo. 
    3. You can edit the archive on Zenodo and/or publish a new version of your software.
    4. It is recommended that you add a description for your repo and fill in other metadata in the edit page. 
    5. Your code is now published on a Github public repository and archived on Zenodo. 

Your software is now published on a Github public repository and has a DOI that can be used for citations.


Tools for Documentation

Software sharing platforms:

Software Archiving options:


Research Data Management Program Service Lead