code: func (s *RepositoriesService) GetCommitRaw(ctx context.Context, owner string, repo string, sha string, opt RawOptions) (string, *Response, error) {
  	u := fmt.Sprintf("repos/%v/%v/commits/%v", owner, repo, sha)
  	req, err := s.client.NewRequest("GET", u, nil)
  	if err != nil {
  		return "", nil, err
  	}
  
  	switch opt.Type {
  	case Diff:
  		req.Header.Set("Accept", mediaTypeV3Diff)
  	case Patch:
  		req.Header.Set("Accept", mediaTypeV3Patch)
  	default:
  		return "", nil, fmt.Errorf("unsupported raw type %d", opt.Type)
  	}
  
  	var buf bytes.Buffer
  	resp, err := s.client.Do(ctx, req, &buf)
  	if err != nil {
  		return "", resp, err
  	}
  
  	return buf.String(), resp, nil
  }
docs: // GetCommitRaw fetches the specified commit in raw (diff or patch) format.