code: def protect(self, developers_can_push=False, developers_can_merge=False,
                  **kwargs):
          
          id = self.get_id().replace('/', '%2F')
          path = '%s/%s/protect' % (self.manager.path, id)
          post_data = {'developers_can_push': developers_can_push,
                       'developers_can_merge': developers_can_merge}
          self.manager.gitlab.http_put(path, post_data=post_data, **kwargs)
          self._attrs['protected'] = True
docs: Protect the branch.
  
          Args:
              developers_can_push (bool): Set to True if developers are allowed
                                          to push to the branch
              developers_can_merge (bool): Set to True if developers are allowed
                                           to merge to the branch
              **kwargs: Extra options to send to the server (e.g. sudo)
  
          Raises:
              GitlabAuthenticationError: If authentication is not correct
              GitlabProtectError: If the branch could not be protected