code: func (s *MigrationService) StartUserMigration(ctx context.Context, repos []string, opt *UserMigrationOptions) (*UserMigration, *Response, error) {
  	u := "user/migrations"
  
  	body := &startUserMigration{Repositories: repos}
  	if opt != nil {
  		body.LockRepositories = Bool(opt.LockRepositories)
  		body.ExcludeAttachments = Bool(opt.ExcludeAttachments)
  	}
  
  	req, err := s.client.NewRequest("POST", u, body)
  	if err != nil {
  		return nil, nil, err
  	}
  
  	// TODO: remove custom Accept header when this API fully launches.
  	req.Header.Set("Accept", mediaTypeMigrationsPreview)
  
  	m := &UserMigration{}
  	resp, err := s.client.Do(ctx, req, m)
  	if err != nil {
  		return nil, resp, err
  	}
  
  	return m, resp, nil
  }
docs: // StartUserMigration starts the generation of a migration archive.
  // repos is a slice of repository names to migrate.
  //
  // GitHub API docs: https://developer.github.com/v3/migrations/users/#start-a-user-migration