Multi Branch Scanning

What it does #

Norma used to allow one scanned branch per repository. From release 2.3.0, a repository can be scanned on as many branches as you like. Each branch you add is treated as its own entry: its own scans, its own issues, its own score, its own stack profile.

You’ll see one card per (repository, branch) on the Repositories page. acme/web scanned on main and develop shows up as two cards sharing the same repository URL, with the branch name on each card so you can tell them apart at a glance.

The same repository can be scanned on more than one branch — for example main, develop, and a release branch — with independent scan history and Production Ready Score for each. Every branch appears as its own card on the Repositories page.

When you’d use it #

  • GitFlow workflows — track quality on develop, staging, and main independently.
  • Feature branches — scan a feature branch before merging to make sure you’re not introducing new issues.
  • Release branches — keep quality history for release/v1 and release/v2 in parallel.
  • Long-lived hotfix branches — same repo, different code path, different score.

If your team only ever cares about a single branch (usually main), you don’t need to do anything — the feature is opt-in per branch.

How to add another branch #

Adding a second branch of a repository you already imported starts from the same Import flow as a first-time import.

  1. On the Repositories page, click Import in the top right.
  2. The Connected Repositories picker lists every repository you have access to. Repositories you’ve already imported appear at the top with a purple accent bar and small branch chips showing which branches are already being scanned (e.g. main, develop).
  3. Click the repository you want to add a branch to. A + mark on the right side of each imported repo signals Add another branch.
  4. The Configure Repository step opens with an info banner: “You’re adding another branch to <repo-name>. Currently scanning: main, develop.”
  5. In the Branch to scan dropdown, pick a branch. Branches that are already scanned are shown but disabled with an “Already imported” note — no accidental duplicates.
  6. Click Add Branch & Analyze. Norma sets up the new branch, runs auto-discovery, and starts its first scan. A progress screen shows the same steps as a first-time import — the operation is essentially “import this branch of the repo.”

When the scan completes, a new card appears on the Repositories page for the branch you just added.

What the Repositories page looks like with multiple branches #

Each branch is a separate card. On each card you see:

  • The repository name and provider icon (same as any repo).
  • The branch being scanned — shown in a monospace pill so it stands out.
  • The stack, last scan status, timestamp, and duration for that specific branch.
  • View results and Run Scan — both act on the branch shown on the card.

Cards are keyed by branch, so the same repository can appear multiple times in the list without any confusion — the branch name tells you which is which.

Running a scan on a specific branch #

Click Run Scan on the card for the branch you want to scan. Scans are independent — starting a scan on develop doesn’t queue or delay a scan on main. See Running a scan for what happens next.

Removing a branch #

Click the trash icon on the card for the branch you want to remove, then confirm. Only that branch’s data is deleted — scan history, issues, score, stack profile. Other branches of the same repository are untouched.

If you remove the last branch of a repository, the repository disappears from the Repositories page entirely, and 1 repository slot is freed on your quota. See “Quotas” below.

Quotas #

Multi-branch scanning changes what counts against which quota:

  • Repositories quota (max_repositories) counts by repository URL, not by branch. Adding a second branch of a repo you’ve already imported does not use another repository slot. On the Free tier (1 repo), you can still add as many branches as you like to your one imported repository — you just can’t import a second, different repository without upgrading.
  • Scans quota counts every scan, on every branch. Scanning three branches consumes three scans from your weekly (Free) or monthly (Pro) allowance.

The Usage panel in Organisation Settings shows the repositories count deduplicated by URL — so a repository with three branches is 1 against your repo quota, even though it shows up as three cards. This is intentional and matches your billing.

See Tiers and quotas for the exact numbers per tier.

Limits & notes #

  • Every branch is its own entity. Score, issues, stack profile, and scan history are per branch. Comparing two branches means opening two cards side by side.
  • No branch comparison view yet. You can’t diff issues between main and a feature branch inside the product. This is on the roadmap for a later release.
  • Branch names come from your Git provider. Whatever your provider (GitHub, Bitbucket) reports is what Norma uses — no renaming or aliasing.
  • Deleting the repository from your Git provider or revoking access affects every branch. Since all branches share the same repository URL, they’ll all fail to scan on the next run. Re-grant access and they’ll resume.
  • Free tier can add branches without upgrading. The repository quota is the only tier-gated limit; branches only consume scan quota.
  • Adding a branch always triggers a scan. That scan counts against your scan quota. If your scan quota is exhausted, the branch is added and will scan when quotas reset.

Related #

Was it helpful ?