// Copyright 2019 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto3";

package testplans;

option go_package = "go.chromium.org/chromiumos/infra/proto/go/testplans";

message ProtoBytes { bytes serialized_proto = 1; }

message FilePattern {
  // Bash pattern for matching a file in the chromiumos checkout.
  // This may make use of globstar (i.e. **) notation to match against many
  // subdirectories at once. The pattern will be matched against a full
  // relative path in the chromiumos checkout.
  // e.g.
  // chromite/config/** to match anything under chromite/config/
  // **/OWNERS to match any OWNERS file
  // **/*.md to match any .md file
  // src/somefile.java to match a specific file
  string pattern = 1;

  // Bash patterns that exclude files in the chromiumos checkout from a match.
  //
  // A file in the chromiumos checkout is considered a match iff:
  // 1. It matches pattern.
  // 2. It doesn't match any of exclude_patterns.
  //
  // The matching rules of exclude_patterns are the same as patterns, e.g.
  // globstar is allowed.
  repeated string exclude_patterns = 2;
}
