# `Pipette.Branch`
[🔗](https://github.com/tommeier/pipette-buildkite-plugin/blob/main/lib/pipette/branch.ex#L1)

Branch policy for activation.

Controls which groups are activated on matching branches and which
pipeline features are disabled.

## Fields

  * `:pattern` (`String.t()`) — branch name or glob pattern to match
    (e.g. `"main"`, `"release/*"`)
  * `:scopes` (`:all | [atom()] | nil`) — which scopes to activate.
    `:all` bypasses file-based targeting and activates every group.
    A list restricts activation to the named scopes. `nil` uses
    default file-based targeting.
  * `:disable` (`[atom()] | nil`) — pipeline features to turn off for
    this branch (e.g. `[:targeting]` to skip scope-based filtering)

## Example

    %Pipette.Branch{
      pattern: "main",
      scopes: :all,
      disable: [:targeting]
    }

    %Pipette.Branch{
      pattern: "release/*",
      scopes: [:api, :web],
      disable: nil
    }

# `t`

```elixir
@type t() :: %Pipette.Branch{
  __identifier__: term(),
  __spark_metadata__: term(),
  disable: [atom()] | nil,
  name: term(),
  pattern: String.t(),
  scopes: :all | [atom()] | nil
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
