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: bitbucket.rb
    path of file: ./repos/dependabot-core/common/lib/dependabot/clients
    
    the code of the file until where you have to start completion: # typed: strict
# frozen_string_literal: true

require "excon"
require "sorbet-runtime"

require "dependabot/shared_helpers"

module Dependabot
  module Clients
    class Bitbucket
      extend T::Sig

      class NotFound < StandardError; end

      class Unauthorized < StandardError; end

      class Forbidden < StandardError; end

      class TimedOut < StandardError; end

      ####################
    
      def create_commit(repo, branch_name, base_commit, commit_message, files,
                        author_details)
        parameters = {
          message: commit_message, # TODO: Format markup in commit message
          author: "#{author_details.fetch(:name)} <#{author_details.fetch(:email)}>",
          parents: base_commit,
          branch: branch_name
        }

        files.each do |file|
          parameters[file.path] = file.content
        end

        body = encode_form_parameters(parameters)

        commit_path = "#{repo}/src"
        post(base_url + commit_path, body, "application/x-www-form-urlencoded")
      end