Branch permission patterns

Redirection notice

This page will redirect to /display/BitbucketServer/Branch+permission+patterns .

Stash supports a powerful type of pattern syntax for matching branch names (similar to pattern matching in Apache Ant).

These expressions use the following wild cards:

?

Matches one character (any character except path separators)

*

Matches zero or more characters (not including path separators)

**

Matches zero or more path segments.

Pattern used in branch permissions match against all refs pushed to Stash (i.e. branches and tags).

In git, branch and tag names can be nested in a namespace by using directory syntax within your branch names, e.g. stable/1.1. The '**' wild card selector enables you to match arbitrary directories.

  • A pattern can contain any number of wild cards.
  • If the pattern ends with / then ** is automatically appended - e.g. foo/ will match any branches or tags containing a foo path segment
  • Patterns only need to match a suffix of the fully qualified branch or tag name. Fully qualified branch names look like refs/heads/master, whilst fully qualified tags look like refs/tags/1.1.

Also see the Ant documentation.

Examples

*

Matches everything

PROJECT-*

Matches and branch or tag named PROJECT-*, even in a name space.

e.g. refs/heads/PROJECT-1234, refs/heads/stable/PROJECT-new or refs/tags/PROJECT-1.1

?.?

Matches any branch or tag of 2 characters separated by a '.'.

e.g. refs/heads/1.1, refs/heads/stable/2.X or refs/tags/3.1

tags/ or

tags/**

Matches all tags and any branches with 'tags' as a namespace.

e.g. refs/heads/stable/tags/some_branch, refs/tags/project-1.1.0

heads/**/master

Matches all branches called master.

e.g. refs/heads/master, refs/heads/stable/master

Was this helpful?

Thanks for your feedback!

Why was this unhelpful?

Have a question about this article?

See questions about this article

Powered by Confluence and Scroll Viewport