Cookbook Management Workflows

Hi all, im working on trying to establish a working process for cookbook
management.

From reading a few articles, I was thrown for a loop with the idea of
not tracking cookbooks in the chef-repo git dir (although I was already
treating each cookbook as its own git repo), but I get the reasoning.

What I dont get is what kind of automation exists for taking the
cookbook requirements configured/required for each chef repo environment
and ensuring that the chef server has a copy of the right version from
whatever source its located at (similar to the way berkshelf/librarian
is used to get the cookbooks for continuous integration test cases on
individual cookbooks).

My current plan is to use berkshelf or librarian (leaning towards
bershelf, but I read somewhere the vagrant plugin is no longer being
developed from an old announcement?) for doing the automation on
cookbook dl’ing for individual cookbook testing but im not sure what can
be done at the chef repo/environment level. Is there support in
berkshelf/librarian/vagrant or something else to upload the cookbooks to
the server before an instance is built?

Thanks,