Safeguard
Security Guides•

How do you map projects, teams and tags when migrating scanners?

Decisions only make sense inside the right project and team. Map the project hierarchy, owners and tags before moving any triage history to a new scanner.

Safeguard Security Team
3 min read

Build a mapping sheet that pairs every old project with a new project, owner and set of tags before you move any decisions. A dismissal attached to the wrong project is worse than none, because it can hide a real finding in a different codebase that happens to use the same package.

Why structure matters more than it seems

Triage decisions are scoped. "Not used" is true for one service and false for its neighbor. Scanners model scope differently: some have organizations, groups and projects, others have flat repositories with labels, others tie scope to a build target. When you move history, you move scope with it, or you move nothing safely.

What to map

Old conceptQuestions to answerNew concept
Organization or workspaceSingle or split?Account or tenant
Group or business unitDoes ownership follow it?Team or folder
ProjectOne per repo, or one per build target?Project or repository
BranchWhich branches carry history?Default and release branches
Tag or labelIs it used in reports or policy?Tag or custom property
OwnerPerson, team or rota?Owner or code owner entry

The key question is granularity. If the old tool had one project per repository and the new one has one per build target, a monorepo's decisions need splitting. If it is the other way around, decisions merge, and conflicts must be resolved.

Steps

  1. Export the full project list with owner, tags and last scan date.
  2. Remove projects with no scan in the last year. Decide whether to archive them or leave them behind.
  3. For each remaining project, assign the new project, team and owner.
  4. Identify tags used in policy, reporting or access control. Those are functional, not decorative, and must exist in the new tool before cutover.
  5. Convert tags to the new tool's scheme and keep a table of the changes.
  6. Run the first import on three projects of different sizes and look for decisions that landed in the wrong place.

Ownership is not optional

Findings without owners stay open forever. Use the repository code owners file or your service catalog as the source of truth for owners, and confirm each one with the team lead. If the old tool's owner field is stale, do not import it.

Branches and versions

Decisions often depend on the version of the package, which depends on the branch. Decide which branches migrate. A common choice is the default branch and active release branches. Feature branch decisions can be dropped, since they expire when the branch does.

Check access control

If the old tool limited who could see which projects, replicate that in the new tool before importing. Triage comments can mention sensitive details about internal systems, and a broader audience than intended is an avoidable problem.

Quick check

What if the new tool has a different project model?

Write the rule for splitting or merging in the mapping sheet and test it on one project before the bulk import.

Do tags need to migrate?

Only those used in policy, reports or access control. Purely descriptive tags can be rebuilt later.

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.