[lucicfg] Make graph.key objects introspectable through Starlark.

They now have attributes 'container', 'kind', 'id'. This would become useful
for implementing rules that behave differently depending on a kind of an object
they are related to.

For the key [(k1, i1), (k2, i2), (k3, i3)]:
  'container' is key [(k1, i1), (k2, i2)]
  'kind' is string 'k3'
  'id' is string 'i3'

Term "container" was chosen to avoid confusion with term "parent", already used
in the graph API to denote a different sort of relation.

R=nodir@chromium.org, tandrii@chromium.org
BUG=833946

Change-Id: I16ea3709b6a2adbff9a9d7f810d1080cd5c48f24
Reviewed-on: https://chromium-review.googlesource.com/c/1385666
Reviewed-by: Nodir Turakulov <nodir@chromium.org>
Commit-Queue: Vadim Shtayura <vadimsh@chromium.org>
5 files changed
tree: a6636401286d99c9bd7e53bfb174777d9946891a
  1. appengine/
  2. auth/
  3. buildbucket/
  4. cipd/
  5. client/
  6. common/
  7. config/
  8. dm/
  9. examples/
  10. gce/
  11. grpc/
  12. hardcoded/
  13. infra/
  14. logdog/
  15. luci_notify/
  16. lucicfg/
  17. lucictx/
  18. machine-db/
  19. milo/
  20. mmutex/
  21. mp/
  22. scheduler/
  23. scripts/
  24. server/
  25. starlark/
  26. tokenserver/
  27. tools/
  28. tumble/
  29. vpython/
  30. web/
  31. .travis.yml
  32. AUTHORS
  33. codereview.settings
  34. CONTRIBUTING.md
  35. CONTRIBUTORS
  36. LICENSE
  37. OWNERS
  38. pre-commit-go.yml
  39. PRESUBMIT.py
  40. README.md
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.