/**
  * @param Branch $branch
  * @param string $domain
  * @param string $projectName
  * @param null|string $accessToken
  * @return Branch
  * @throws BuddySDKException
  */
 public function addBranch(Branch $branch, $domain, $projectName, $accessToken = null)
 {
     if (!$branch->getCommit() instanceof Commit) {
         throw new BuddySDKException('Commit with revision must be provided');
     }
     return $this->postJson($accessToken, ['name' => $branch->getName(), 'commit' => ['revision' => $branch->getCommit()->getRevision()]], '/workspaces/:domain/projects/:project_name/repository/branches', ['domain' => $domain, 'project_name' => $projectName])->getAsBranch();
 }