docs: def get_repository(self, repository_id=None):
          """Gets the ``Repository`` specified by its ``Id``.
  
          In plenary mode, the exact ``Id`` is found or a ``NotFound``
          results. Otherwise, the returned ``Repository`` may have a
          different ``Id`` than requested, such as the case where a
          duplicate ``Id`` was assigned to a ``Repository`` and retained
          for compatibility.
  
          :param repository_id: ``Id`` of the ``Repository``
          :type repository_id: ``osid.id.Id``
          :return: the repository
          :rtype: ``osid.repository.Repository``
          :raise: ``NotFound`` -- ``repository_id`` not found
          :raise: ``NullArgument`` -- ``repository_id`` is ``null``
          :raise: ``OperationFailed`` -- unable to complete request
          :raise: ``PermissionDenied`` -- authorization failure
  
          *compliance: mandatory -- This method is must be implemented.*
  
          """
          if repository_id is None:
              raise NullArgument()
          url_path = construct_url('objective_banks',
                                   bank_id=repository_id)
          return objects.Repository(self._get_request(url_path))