code: func (s *AuthorizationsService) CreateImpersonation(ctx context.Context, username string, authReq *AuthorizationRequest) (*Authorization, *Response, error) {
  	u := fmt.Sprintf("admin/users/%v/authorizations", username)
  	req, err := s.client.NewRequest("POST", u, authReq)
  	if err != nil {
  		return nil, nil, err
  	}
  
  	a := new(Authorization)
  	resp, err := s.client.Do(ctx, req, a)
  	if err != nil {
  		return nil, resp, err
  	}
  	return a, resp, nil
  }
docs: // CreateImpersonation creates an impersonation OAuth token.
  //
  // This requires admin permissions. With the returned Authorization.Token
  // you can e.g. create or delete a user's public SSH key. NOTE: creating a
  // new token automatically revokes an existing one.
  //
  // GitHub API docs: https://developer.github.com/enterprise/v3/enterprise-admin/users/#create-an-impersonation-oauth-token