* Update apiSyncMR function.
This commit is contained in:
@@ -4,3 +4,13 @@ $config->MR->create = new stdclass();
|
||||
$config->MR->create->requiredFields = 'gitlabID,sourceProject,sourceBranch,targetProject,targetBranch,title';
|
||||
$config->MR->create->skippedFields = 'projectID';
|
||||
|
||||
$config->MR->maps = new stdclass;
|
||||
$config->MR->maps->sync = array();
|
||||
$config->MR->maps->sync['title'] = 'title|field|';
|
||||
$config->MR->maps->sync['description'] = 'description|field|';
|
||||
$config->MR->maps->sync['assignee'] = 'assignees|userPairs|id';
|
||||
$config->MR->maps->sync['reviewer'] = 'reviewers|userPairs|id';
|
||||
$config->MR->maps->sync['targetBranch'] = 'target_branch|field|';
|
||||
$config->MR->maps->sync['status'] = 'state|field|';
|
||||
$config->MR->maps->sync['mergeStatus'] = 'merge_status|field|';
|
||||
|
||||
|
||||
+18
-2
@@ -201,11 +201,27 @@ class mrModel extends model
|
||||
public function apiSyncMR($MR)
|
||||
{
|
||||
$rawMR = $this->apiGetSingleMR($MR->gitlabID, $MR->targetProject, $MR->mriid);
|
||||
|
||||
if(isset($rawMR->iid))
|
||||
{
|
||||
$map = $this->config->MR->maps->sync;
|
||||
$gitlabUsers = $this->gitlab->getUserIdAccountPairs($MR->gitlabID);
|
||||
|
||||
$newMR = new stdclass;
|
||||
$newMR->status = $rawMR->state;
|
||||
$newMR->mergeStatus = $rawMR->merge_status;
|
||||
foreach($map as $syncField => $config)
|
||||
{
|
||||
$value = '';
|
||||
list($field, $optionType, $options) = explode('|', $config);
|
||||
|
||||
if($optionType == 'field') $value = $rawMR->$field;
|
||||
if($optionType == 'userPairs')
|
||||
{
|
||||
$gitlabUserID = isset($rawMR->$field->$options) ? $rawMR->$field->$options : '';
|
||||
$value = zget($gitlabUsers, $gitlabUserID, '');
|
||||
}
|
||||
|
||||
if($value) $newMR->$syncField = $value;
|
||||
}
|
||||
|
||||
/* Update MR in Zentao database. */
|
||||
$this->dao->update(TABLE_MR)->data($newMR)
|
||||
|
||||
Reference in New Issue
Block a user