# git_refs
#
# This file contains a list of repos, paths within those repos, and git
# references (branch/tag/commit hash) that are checked out with `git checkout
# <ref>` during creation of documentation.
#
# - First column is the git repo name
# - Second column is the subdirectory of the repo to symlink into the
#   docs directory
# - Third column is the reference (branch/tag/commit) to checkout

_REPO NAME_           _DIR_    _REF_

att-workflow-driver   /docs    master
cord-tester           /docs    master
fabric                /docs    master
hippie-oss            /docs    master
kubernetes-service    /docs    master
olt-service           /docs    master
onos-service          /docs    master
openolt               /        master
openstack             /docs    master
rcord                 /docs    master
simpleexampleservice  /docs    master
exampleservice        /docs    master
vrouter               /docs    master
xos-gui               /docs    master
xos-tosca             /docs    master
xos                   /docs    master

