[Buildbucket] GetBuild for led builds: Inherit the shadowed bucket's view permission

Users having view permissions in the shadowed bucket should automatically gain view permission to the led builds shadowing that bucket.

Note that this permission is checked at per build level, using `Build.Infra.Led.ShadowedBucket`. This can guarantee that if a shadow bucket `shadow` shadows two buckets `a` and `b`, users only have view permission in `a` can see led builds that shadow `a`, but not the ones shadow `b`.

Bug: 1501383
Change-Id: Icc821a10bfc662f33f1939419ee7680f5868d0b8
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/5064034
Reviewed-by: Yuanjun Huang <yuanjunh@google.com>
Reviewed-by: Randy Maldonado <randymaldonado@google.com>
Commit-Queue: Chan Li <chanli@chromium.org>
2 files changed
tree: 12730831eb078585671b2a5792652c54154877bf
  1. analysis/
  2. appengine/
  3. auth/
  4. auth_service/
  5. bisection/
  6. build/
  7. buildbucket/
  8. casviewer/
  9. cipd/
  10. cipkg/
  11. client/
  12. common/
  13. config/
  14. config_service/
  15. cv/
  16. deploy/
  17. examples/
  18. gae/
  19. gce/
  20. grpc/
  21. hardcoded/
  22. led/
  23. logdog/
  24. luci_notify/
  25. lucicfg/
  26. lucictx/
  27. luciexe/
  28. mailer/
  29. milo/
  30. mmutex/
  31. provenance/
  32. resultdb/
  33. scheduler/
  34. scripts/
  35. server/
  36. standalone/
  37. starlark/
  38. swarming/
  39. third_party/
  40. tokenserver/
  41. tools/
  42. tree_status/
  43. vpython/
  44. web/
  45. .gitallowed
  46. .gitattributes
  47. .gitignore
  48. .golangci.yml
  49. AUTHORS
  50. codereview.settings
  51. CONTRIBUTING.md
  52. CONTRIBUTORS
  53. go.mod
  54. go.sum
  55. LICENSE
  56. OWNERS
  57. PRESUBMIT.py
  58. README.md
  59. tools.go
  60. WATCHLISTS
README.md

luci-go: LUCI services and tools in Go

GoReference

Installing

LUCI Go code is meant to be worked on from an Chromium infra.git checkout, which enforces packages versions and Go toolchain version. First get fetch via depot_tools.git then run:

fetch infra
cd infra/go
eval `./env.py`
cd src/go.chromium.org/luci

It is now possible to directly install tools with go install:

go install go.chromium.org/luci/auth/client/cmd/...@latest
go install go.chromium.org/luci/buildbucket/cmd/...@latest
go install go.chromium.org/luci/cipd/client/cmd/...@latest
go install go.chromium.org/luci/client/cmd/...@latest
go install go.chromium.org/luci/cv/cmd/...@latest
go install go.chromium.org/luci/gce/cmd/...@latest
go install go.chromium.org/luci/grpc/cmd/...@latest
go install go.chromium.org/luci/logdog/client/cmd/...@latest
go install go.chromium.org/luci/luci_notify/cmd/...@latest
go install go.chromium.org/luci/lucicfg/cmd/...@latest
go install go.chromium.org/luci/luciexe/legacy/cmd/...@latest
go install go.chromium.org/luci/mailer/cmd/...@latest
go install go.chromium.org/luci/mmutex/cmd/...@latest
go install go.chromium.org/luci/resultdb/cmd/...@latest
go install go.chromium.org/luci/server/cmd/...@latest
go install go.chromium.org/luci/swarming/cmd/...@latest
go install go.chromium.org/luci/tokenserver/cmd/...@latest
go install go.chromium.org/luci/tools/cmd/...@latest

Contributing

Contributing uses the same flow as Chromium contributions.