[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. .gitallowed
  2. .gitattributes
  3. .golangci.yml
  4. AUTHORS
  5. CONTRIBUTING.md
  6. CONTRIBUTORS
  7. LICENSE
  8. OWNERS
  9. PRESUBMIT.py
  10. README.md
  11. WATCHLISTS
  12. appengine/
  13. auth/
  14. auth_service/
  15. buildbucket/
  16. casviewer/
  17. cipd/
  18. client/
  19. cmdrunner/
  20. codereview.settings
  21. common/
  22. config/
  23. cv/
  24. dm/
  25. examples/
  26. gae/
  27. gce/
  28. go.mod
  29. go.sum
  30. grpc/
  31. hacks/
  32. hardcoded/
  33. led/
  34. logdog/
  35. luci_notify/
  36. lucicfg/
  37. lucictx/
  38. luciexe/
  39. machine-db/
  40. mailer/
  41. milo/
  42. mmutex/
  43. mp/
  44. resultdb/
  45. scheduler/
  46. scripts/
  47. server/
  48. starlark/
  49. swarming/
  50. tokenserver/
  51. tools.go
  52. tools/
  53. tumble/
  54. vpython/
  55. web/
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.