You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: pull_request.rb
    path of file: ./repos/gitreflow/lib/git_reflow/git_server/git_hub
    
    the code of the file until where you have to start completion: require 'git_reflow/git_server/pull_request'

module GitReflow
  module GitServer
    class GitHub
      class PullRequest < GitReflow::GitServer::PullRequest
        def initialize(attributes)
          self.number              = attributes.number
          self.description         = attributes[:body]
          self.html_url            = attributes.html_url
          self.feature_branch_name = attributes.head.label[/[^:]+$/]
          self.base_branch_name    = attributes.base.label[/[^:]+$/]
          self.source_object       = attributes
          self.build               = Build.new(state: build.state, description: build.description, url: build.url)
        end

        def self.create(options = {})
          self.new(GitReflow.git_server.connect
    
        def merge!(options = {})

          # fallback to default merge process if user "forces" merge
          if(options[:force])
            super options
          else
            if deliver?
              GitReflow.say "Merging pull request ##{self.number}: '#{self.title}', from '#{self.feature_branch_name}' into '#{self.base_branch_name}'", :notice

              merge_method       = options[:merge_method] || GitReflow::Config.get("reflow.merge-method")
              merge_method       = "squash" if "#{merge_method}".length < 1
              merge_message_file = GitReflow.merge_message_path(merge_method: merge_method)

              unless options[:title] || options[:message]
                # prompts user for commit_title and commit_message
                File.open(merge_message_file, 'w') do |file|
                  file.write("#{self.title}\n#{self.commit_message_for_merge}\n")
                end

                GitReflow.run("#{GitReflow.git_editor_command} #{merge_message_file}", with_system: true)
                merge_message = File.read(merge_message_file).split(/[\r\n]|\r\n/).map(&:strip)

                title  = merge_message.shift

                File.delete(merge_message_file)

                unless merge_message.empty?
                  merge_message.shift if merge_message.first.empty?
                end