Skip to content

docs(ast-orchestrator): document the AST branch pattern across the four ALMs - #648

Open
italovs wants to merge 1 commit into
mainfrom
docs/ast-branch-pattern
Open

italovs wants to merge 1 commit into
mainfrom
docs/ast-branch-pattern

Conversation

@italovs

@italovs italovs commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

What

The merge gate that dispatches the AST orchestrator used to compare the merged PR's base branch to a single name, with exact equality. Only two setups were expressible: one branch, or every branch. It is now a regular expression — the AST branch pattern — resolved at two levels.

The "Merge target branch" section had no way to describe that, so it is replaced by an "AST branch pattern" section in all four ALM orchestrator guides: GitHub, GitLab, Bitbucket and Azure DevOps.

What each guide now documents

  • Where the pattern is set — repository-level (Branch pattern column on the repository table) and integration-level (Branch pattern that runs the AST).
  • Resolution order — repository → integration → orchestrator Ref (legacy fallback) → every branch.
  • Matching semantics — the whole branch name must match, so main does not match maintenance; | lists branches; a plain branch name behaves exactly as before.
  • Validation — a pattern that does not compile, exceeds 500 characters, or is too slow is refused at save time, with the reason under the field.
  • Fail-closed behaviour — a stored pattern that errors or times out while a merge is evaluated skips the scan instead of dispatching it.
  • Worked examplesmain, main|develop, release/.*, main|release/.*.
  • Run AST on demand — the new Branch to scan picker, listing only branches matching the asset's pattern.

Anchoring and fail-closed are stated explicitly because both are observable behaviour, not implementation detail.

Ref keeps its own entry plus a note saying it is the orchestrator's branch — where ast.yml lives — and not a branch policy. It remains the filter only when nothing else is set.

Migration

None. Every value already stored keeps its exact meaning, and the guides say so plainly.

Also updated

Configuration step, validation checklist, troubleshooting table and frontmatter (description + keywords) of each of the four guides, and the AST row of the GitLab repositories validation table.

Related

  • Backend: convisoappsec/platform-backend#14364
  • Frontend: convisoappsec/platform-frontend#3094

🤖 Generated with Claude Code

…ur ALMs

The merge gate compared the merged branch to a single name with exact equality,
so the guides could only describe two setups: one branch, or every branch. It is
now a regular expression resolved at two levels, which the "Merge target branch"
section had no way to express.

That section is replaced with "AST branch pattern" in the GitHub, GitLab,
Bitbucket and Azure DevOps guides: where each level is configured, the resolution
order (repository -> integration -> orchestrator ref as a legacy fallback -> every
branch), how a pattern is matched and validated, worked examples, and the branch
picker now on the on-demand Run AST dialog.

Anchoring and the fail-closed behaviour are stated explicitly because both are
observable: `main` does not match `maintenance`, and a pattern that errors or
times out while a merge is evaluated skips the scan rather than dispatching it.
Values already stored keep their exact meaning, so the guides say plainly that
there is nothing to migrate.

Ref keeps its own entry and a note saying it is the orchestrator's branch, not a
branch policy -- it stays the filter only when nothing else is set.

Also updates the configuration step, validation checklist, troubleshooting table
and frontmatter of each guide, and the AST row of the GitLab repositories
validation table.

Backend: convisoappsec/platform-backend#14364
Frontend: convisoappsec/platform-frontend#3094

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@conviso-platform-appsec

Copy link
Copy Markdown

Conviso Security Gate — No Security Gate rule configured

No conviso_ast rule and no default rule are configured for this asset or company, so there is no policy to evaluate. Nothing was passed or failed.

No new findings were introduced by this pull request.

View the full run in Conviso

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant