mkdir

in lib/gitlab_git/repository.rb [868:899]


      def mkdir(path, options = {})
        
        
        ref = options[:commit][:branch]
        path = PathHelper.normalize_path(path).to_s
        rugged_ref = rugged.ref(ref)

        raise InvalidRef.new("Invalid ref") if rugged_ref.nil?

        target_commit = rugged_ref.target

        raise InvalidRef.new("Invalid target commit") if target_commit.nil?

        entry = tree_entry(target_commit, path)

        if entry
          if entry[:type] == :blob
            raise InvalidBlobName.new("Directory already exists as a file")
          else
            raise InvalidBlobName.new("Directory already exists")
          end
        end

        options[:file] = {
          content: '',
          path: "#{path}/.gitkeep",
          update: true
        }

        Blob.commit(self, options)
      end