Create Branch
API Name
API Name: Branch – Create
Overview
This API creates a new branch within a given project.
Branch name selection is delegated to the connector implementation because:
Branch naming rules vary across end systems.
Some systems enforce strict naming constraints.
Some systems automatically append suffixes for uniqueness.
Some systems reject duplicate branch names.
Connector responsibility:
Generate a unique branch name compliant with end system constraints.
Preferably use a timestamp-based strategy to ensure uniqueness.
Call the end system API to create the branch in the specified project.
Return created branch details.
If branch creation fails, return appropriate error response.
API URI
URI Parameters
projectId
True
String
ID of the project in which the branch needs to be created.
Behavior Rules
Branch must be created within the context of the given
projectId.Connector must:
Generate a branch name compliant with end system rules.
Ensure branch name uniqueness.
Recommended approach:
Use timestamp-based naming strategy (e.g.,
branch_YYYYMMddHHmmss).
The API must return the created branch details.
If branch creation fails:
Return appropriate HTTP error code.
Connector must not return a null response.
Response Payload
Sample Response
Response Parameters
branchId
True
String
Unique identifier of the newly created branch.
branchName
True
String
Display name of the branch.
Error Handling
400
Invalid project ID or invalid request.
404
Project not found.
409
Branch creation conflict (if applicable).
500
Internal server error during branch creation.
Example Use Case
Create New Branch
Implementation Guidelines
Connector must sanitize branch name according to end system rules.
Avoid hardcoding branch names.
Prefer deterministic timestamp-based naming for traceability.
Ensure created branch belongs strictly to provided project.
Return branch details exactly as created in end system.
Design Rationale
This API keeps branch naming logic flexible and system-aware.
By delegating naming to the connector:
The MBSE layer remains system-agnostic.
Integration remains portable across multiple modeling tools.
Naming conflicts are handled locally by connector logic.
This design ensures consistent behavior across heterogeneous MBSE systems.
Last updated

