Documentation

Overview

Package gobmap finds relevant LUCI project config given a Gerrit CL.

gobmap constructs the map based on LUCI project's ConfigGroups, and supports efficiently updating the map whenever Project configs change.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Lookup

func Lookup(ctx context.Context, host, repo, ref string) (*changelist.ApplicableConfig, error)

Lookup returns config group IDs which watch the given combination of Gerrit host, repo and ref.

For example: the input might be ("chromium-review.googlesource.com", "chromium/src", "refs/heads/main"), and the output might be 0 or 1 or multiple IDs which can be used to fetch config groups.

Due to the ref_regexp[_exclude] options, CV can't ensure that each possible combination is watched by at most one ConfigGroup, which is why this may return multiple ConfigGroupIDs even for the same LUCI project.

func Update

func Update(ctx context.Context, project string) error

Update loads the new config and updates the gob map entities accordingly.

This may include adding, removing and modifying entities.

TODO(qyearsley): Handle possible race condition; There may be 2 or more concurrent Update calls, which could lead to corrupted data.

Types

This section is empty.

Source Files

Directories

Path Synopsis
internal Package internal contains GobMap storage protobufs.