Skip to content
Snippets Groups Projects

Support adding and removing labels w/ push opts

Merged Christian Couder requested to merge add-label-push-opts into master
7 files
+ 128
5
Compare changes
  • Side-by-side
  • Inline
Files
7
  • 4efa8154
    MergeRequests::PushOptionsHandlerService has been updated to allow
    adding and removing labels to a merge request using git push options.
    
    To create a new merge request and add 2 labels to it:
    
          git push -u origin -o merge_request.create \
            -o merge_request.label="My label 1" \
            -o merge_request.label="My label 2"
    
    To update an existing merge request and remove a label while
    adding a different label:
    
          git push -u origin -o merge_request.label="My added label" \
            -o merge_request.unlabel="My removed label"
    
    Issue https://gitlab.com/gitlab-org/gitlab-ce/issues/64320
@@ -17,6 +17,9 @@ def execute
merge_request.source_project = find_source_project
merge_request.target_project = find_target_project
params[:add_label_ids] = params.delete(:label).keys if params.has_key?(:label)
params[:remove_label_ids] = params.delete(:unlabel).keys if params.has_key?(:unlabel)
filter_params(merge_request)
merge_request.assign_attributes(params.to_h.compact)
@@ -171,9 +174,8 @@ def assign_title_and_description
def assign_labels
return unless target_project.issues_enabled? && issue
return if merge_request.label_ids&.any?
merge_request.label_ids = issue.try(:label_ids)
merge_request.label_ids = issue.try(:label_ids) unless merge_request.label_ids&.any?
end
def assign_milestone
Loading