internal/{worker,stdlib}: /fetch-std-master: avoid cloning go repo

On each call of the /fetch-std-master endpoint, we cloned the Go repo
for each supported branch to determine its current commit. Although
not a big deal, that is a bit wasteful and it also would occasionally
fail obscurely.

Instead we use git's remote list feature to get all the repo's refs in
one call. We then compare the hashes with the stored pseudo-versions
to see if the branch has moved.

Change-Id: I1d70e63668fcf6d35b90b9c231255faec614a04e
Trust: Jonathan Amsterdam <>
Run-TryBot: Jonathan Amsterdam <>
TryBot-Result: kokoro <>
Reviewed-by: Julie Qiu <>
3 files changed
tree: 4083f7f589d52994896a73b42a96855c6bd62f99
  1. .dockerignore
  2. .eslintignore
  3. .eslintrc.yaml
  4. .gitignore
  5. .prettierignore
  6. .prettierrc.yaml
  7. .stylelintignore
  8. .stylelintrc.yaml
  13. all.bash
  14. cloudbuild.yaml
  15. cmd/
  16. devtools/
  17. doc/
  18. go.mod
  19. go.sum
  20. internal/
  21. jest.config.js
  22. migrations/
  23. package-lock.json
  24. package.json
  25. static/
  26. tests/
  27. third_party/
  28. tsconfig.json

Go Reference

A site for discovering Go packages is a website for discovering and evaluating Go packages and modules.

You can check it out at


If you want to report a bug or have a feature suggestion, please first check the known issues to see if your issue is already being discussed. If an issue does not already exist, feel free to file an issue.

For answers to frequently asked questions, see

You can also chat with us on the #pkgsite Slack channel on the Gophers Slack.


We would love your help!

Our canonical Git repository is located at There is a mirror of the repository at

To contribute, please read our contributing guide.


Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.