code: func (s *RepositoriesService) ReplaceAllTopics(ctx context.Context, owner, repo string, topics []string) ([]string, *Response, error) {
  	u := fmt.Sprintf("repos/%v/%v/topics", owner, repo)
  	t := &repositoryTopics{
  		Names: topics,
  	}
  	if t.Names == nil {
  		t.Names = []string{}
  	}
  	req, err := s.client.NewRequest("PUT", u, t)
  	if err != nil {
  		return nil, nil, err
  	}
  
  	// TODO: remove custom Accept header when this API fully launches.
  	req.Header.Set("Accept", mediaTypeTopicsPreview)
  
  	t = new(repositoryTopics)
  	resp, err := s.client.Do(ctx, req, t)
  	if err != nil {
  		return nil, resp, err
  	}
  
  	return t.Names, resp, nil
  }
docs: // ReplaceAllTopics replaces topics for a repository.
  //
  // GitHub API docs: https://developer.github.com/v3/repos/#replace-all-topics-for-a-repository