# 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                        /        a9875ddcbaf846e970826004db51f9a15a465911
cord-tester                  /        44ef9be3bf8f18fd64ea8cf44b5171ca049b9ef9
ofagent-go                   /        voltha-2.8
openolt                      /        voltha-2.8
voltctl                      /        voltha-2.8
voltha-go                    /        voltha-2.8
voltha-openolt-adapter       /        voltha-2.8
voltha-openonu-adapter-go    /        voltha-2.8
voltha-protos                /        9c3e1c8dc6a867d0f552861d2b36d0b44ca68fb1
voltha-system-tests          /        voltha-2.8
device-management-interface  /        6bdb0f7eb9f3bca1842d01bb55625fafd70279fc
voltha-helm-charts           /        voltha-2.8
