# 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
fabric-crossconnect   /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

