[cv][api] introduce run.CLQueryBuilder.

Using raw Datastore keys on Run IDs proved very complicated for my
brain, so I decided to encapsulate & test it well.

So, Min .. Max do what one would expect on strings.
And .After() and .Before() are introduced for ordering based on created
time, but limited to specific LUCI project.

R=robertocn, yiwzhang

Change-Id: Ib430e792d0073a22f0a53a88e18255b0b1ea5084
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/3182965
Auto-Submit: Andrii Shyshkalov <tandrii@google.com>
Commit-Queue: Andrii Shyshkalov <tandrii@google.com>
Reviewed-by: Roberto Carrillo <robertocn@chromium.org>
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
5 files changed
tree: 0aa5a555e9a160fc338f3fc3c62b32bfa93293d8
  1. appengine/
  2. auth/
  3. auth_service/
  4. buildbucket/
  5. casviewer/
  6. cipd/
  7. client/
  8. cmdrunner/
  9. common/
  10. config/
  11. cv/
  12. dm/
  13. examples/
  14. gae/
  15. gce/
  16. grpc/
  17. hacks/
  18. hardcoded/
  19. led/
  20. logdog/
  21. luci_notify/
  22. lucicfg/
  23. lucictx/
  24. luciexe/
  25. machine-db/
  26. mailer/
  27. milo/
  28. mmutex/
  29. mp/
  30. resultdb/
  31. scheduler/
  32. scripts/
  33. server/
  34. starlark/
  35. swarming/
  36. tokenserver/
  37. tools/
  38. tumble/
  39. vpython/
  40. web/
  41. .gitallowed
  42. .gitattributes
  43. .golangci.yml
  44. AUTHORS
  45. codereview.settings
  46. CONTRIBUTING.md
  47. CONTRIBUTORS
  48. go.mod
  49. go.sum
  50. LICENSE
  51. OWNERS
  52. PRESUBMIT.py
  53. README.md
  54. tools.go
  55. WATCHLISTS
README.md

luci-go: LUCI services and tools in Go

GoDoc

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

Contributing

Contributing uses the same flow as Chromium contributions.