Unleash the potential of Git in the new W3C standard for provenance.
JavaScript CSS
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Build Status Coverage Status

#Git2PROV Check out our One-minute Git2PROV tutorial on Vimeo

For an in-depth description of this tool and its creation, we refer to the following paper:

Git2PROV: Exposing Version Control System Content as W3C PROV by Tom De Nies, Sara Magliacane, Ruben Verborgh, Sam Coppens, Paul Groth, Erik Mannens, and Rik Van de Walle Published in 2013 in the Poster and Demo Proceedings of the 12th International Semantic Web Conference.

#Disclaimer and License Git2PROV is a joint work of Ghent University - iMinds - Multimedia Lab, and the Data2Semantics project of the VU University Amsterdam .

The people involved are:

  • Tom De Nies (Ghent University - iMinds - MMLab)
  • Sara Magliacane (VU Amsterdam)
  • Ruben Verborgh (Ghent University - iMinds - MMLab)
  • Sam Coppens (Ghent University - iMinds - MMLab)
  • Paul Groth (VU Amsterdam)
  • Erik Mannens (Ghent University - iMinds - MMLab)
  • Rik Van de Walle (Ghent University - iMinds - MMLab)

We chose to make Git2PROV open source under GPL Version 3 license because we believe this will lead it to its full potential, and be of much more value to the Web community than a single isolated instance running on a server somewhere.

So in short, you are free to use and modify Git2PROV for non-commercial purposes, as long as you make your stuff open source as well and you properly credit us. This is most conveniently done by citing the paper mentioned above.


Make sure you have node.js and git installed and in the system PATH variable. Then, run:

[sudo] npm install -g git2prov

Converting a repository

To convert a single repository, run:

git2prov git_url [serialization]

For example:

git2prov git@github.com:RubenVerborgh/N3.js.git PROV-JSON

Running the server

To run the server, use the following command:

git2prov-server [port]

For example:

git2prov-server 8905

Then go to your browser and enter the following url: http://localhost:8905/

This will give you the standard Git2PROV homepage.

TO use the service directly, use the following URL: http://localhost:8905/git2prov?giturl=&serialization=&[optional parameters] The OPTIONAL parameters are:


  • PROV-N (default)
  • PROV-O


  • true ---> This will force the git log to use short hashes, making the output more readable by humans


  • ---> This provenance relation will not appear in the output. Multiple values are possible.

Example: http://localhost:8905/git2prov?giturl=&serialization=PROV-JSON&shortHashes=true&ignore=wasInformedBy&ignore=used

To start a proxy server: node proxy.js for example: node proxy.js 80 8905

##Running as a service on a Linux/UNIX machine This script is used in combination with init.d. You could also modify it to work with upstart.

Copy the startup script "git2prov" to your /etc/init.d directory:

sudo cp scripts/git2prov /etc/init.d/git2prov

Make it executable

sudo chmod a+x /etc/init.d/git2prov

add it to the startup services

update-rc.d git2prov defaults

You can now do commands such as

sudo service git2prov start
sudo service git2prov restart
sudo service git2prov stop

And the service should automatically start when the machine is rebooted.