Skip to content
Snippets Groups Projects
Commit 8e40ce8e authored by Neil Drumm's avatar Neil Drumm :wave: Committed by Neil Drumm
Browse files

Issue #3395666: Remove “Open merge request” button in favor of using GitLab directly

parent b540c8af
No related branches found
No related tags found
3 merge requests!312Issue # 3494493: Documentation: Document Maintainer Widget,!299Remove heroes from components field. Update CTA section and add variants.,!201Issue #3395666: Remove “Open merge request” button in favor of using GitLab directly
......@@ -428,7 +428,6 @@ class DrupalorgIssueFork extends Entity {
$output['#attached']['js'][0]['data']['drupalorgIssueBranch'] = $issue_branch;
}
$is_member = FALSE;
if (user_is_logged_in() && (versioncontrol_gitlab_get_user_id($GLOBALS['user']))) {
// Get push access form.
$output['header']['access'] = drupal_get_form('drupalorg_issue_fork_access_form', $this);
......@@ -494,9 +493,6 @@ class DrupalorgIssueFork extends Entity {
'#markup' => $compare_image . t('compare'),
'#suffix' => '</a> ',
];
if ($is_member && !is_null($this->getDevRelease())) {
$branch_output['operations']['mr'] = drupal_get_form('drupalorg_issue_fork_open_merge_request_form', $this, $row->branch);
}
}
foreach ($row->merge_requests as $iid => $info) {
$merge_request_url = $this->mergeRequestUrl($iid);
......@@ -990,74 +986,3 @@ function drupalorg_issue_fork_access_form_ajax(array $form, array $form_state) {
return $form;
}
}
/**
* Form for opening a merge request.
*/
function drupalorg_issue_fork_open_merge_request_form(array $form, array $form_state, \DrupalorgIssueFork $issue_fork, $branch) {
$form['#id'] = drupal_html_id('drupalorg-issue-fork-open-mr-form-' . $issue_fork->gitlab_project_id . '-' . $branch);
$form['actions'] = [
'#type' => 'actions',
'open_merge_request' => [
'#type' => 'submit',
'#value' => t('Open merge request'),
'#ajax' => [
'callback' => 'drupalorg_issue_fork_open_merge_request_form_ajax',
'progress' => ['type' => 'throbber'],
'wrapper' => $form['#id'],
],
],
];
return $form;
}
/**
* Form submit callback for drupalorg_issue_fork_open_merge_request_form().
*/
function drupalorg_issue_fork_open_merge_request_form_submit(array $form, array &$form_state) {
list($issue_fork, $branch) = $form_state['build_info']['args'];
try {
$issue_wrapper = $issue_fork->getIssueWrapper();
$gitlab_api = versioncontrol_gitlab_get_client($GLOBALS['user']->git_username)->api('merge_requests');
$merge_request = $gitlab_api->create($issue_fork->gitlab_project_id, NULL, NULL, NULL, [
'source_branch' => $branch,
'target_branch' => $issue_fork->getDevRelease()->field_release_vcs_label[LANGUAGE_NONE][0]['value'],
'title' => 'Issue #' . $issue_wrapper->getIdentifier() . ': ' . $issue_wrapper->label(),
'target_project_id' => versioncontrol_project_repository_load($issue_wrapper->field_project->raw())->gitlab_project_id,
'squash' => TRUE,
]);
$form_state['drupalorg_merge_request'] = $merge_request['iid'];
}
catch (Exception $e) {
$uri = $issue_fork->uri();
watchdog('drupalorg_issue_fork', 'Exception in opening merge request for !issue, branch @branch: %msg', [
'!issue' => l($issue_fork->label(), $uri['path'], $uri['options']),
'@branch' => $branch,
'%msg' => $e->getMessage(),
], WATCHDOG_ERROR);
drupal_set_message(t('Opening merge request failed!'), 'error');
}
}
/**
* #ajax callback for drupalorg_issue_fork_open_merge_request_form().
*/
function drupalorg_issue_fork_open_merge_request_form_ajax(array $form, array $form_state) {
if (isset($form_state['drupalorg_merge_request'])) {
list($issue_fork) = $form_state['build_info']['args'];
return l(t('<strong><abbr title="Merge Request">MR</abbr> !@iid</strong>', [
'@iid' => $form_state['drupalorg_merge_request'],
]), $issue_fork->mergeRequestUrl($form_state['drupalorg_merge_request']), [
'attributes' => ['class' => ['merge-request']],
'html' => TRUE,
'external' => TRUE,
]);
}
else {
// Let reattaching the form re-trigger behaviors, any errors will be shown.
return $form;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment