docs: def present(name, profile="github", **kwargs):
      '''
      Ensure a user is present
  
      .. code-block:: yaml
  
          ensure user test is present in github:
              github.present:
                  - name: 'gitexample'
  
      The following parameters are required:
  
      name
          This is the github handle of the user in the organization
      '''
  
      ret = {
          'name': name,
          'changes': {},
          'result': None,
          'comment': ''
      }
  
      target = __salt__['github.get_user'](name, profile=profile, **kwargs)
  
      # If the user has a valid github handle and is not in the org already
      if not target:
          ret['result'] = False
          ret['comment'] = 'Couldnt find user {0}'.format(name)
      elif isinstance(target, bool) and target:
          ret['comment'] = 'User {0} is already in the org '.format(name)
          ret['result'] = True
      elif not target.get('in_org', False) and target.get('membership_state') != 'pending':
          if __opts__['test']:
              ret['comment'] = 'User {0} will be added to the org'.format(name)
              return ret
  
          # add the user
          result = __salt__['github.add_user'](
              name, profile=profile, **kwargs
          )
  
          if result:
              ret['changes'].setdefault('old', None)
              ret['changes'].setdefault('new', 'User {0} exists in the org now'.format(name))
              ret['result'] = True
          else:
              ret['result'] = False
              ret['comment'] = 'Failed to add user {0} to the org'.format(name)
      else:
          ret['comment'] = 'User {0} has already been invited.'.format(name)
          ret['result'] = True
  
      return ret