# 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_

bbsim                      /        master
cord-tester                /        master
ofagent-go                 /        master
openolt                    /        master
pyvoltha                   /        master
voltctl                    /        master
voltha-go                  /        master
voltha-openolt-adapter     /        master
voltha-openonu-adapter     /        master
voltha-openonu-adapter-go  /        master
voltha-protos              /        master
voltha-system-tests        /        master
kind-voltha                /        master
