code: func ParseGetBuildRequest(s string) (*pb.GetBuildRequest, error) {
  	id, err := strconv.ParseInt(s, 10, 64)
  	if err == nil {
  		return &pb.GetBuildRequest{Id: id}, nil
  	}
  
  	parts := strings.Split(s, "/")
  	if len(parts) == 4 {
  		num, err := strconv.Atoi(parts[3])
  		if err == nil {
  			return &pb.GetBuildRequest{
  				Builder: &pb.BuilderID{
  					Project: parts[0],
  					Bucket:  parts[1],
  					Builder: parts[2],
  				},
  				BuildNumber: int32(num),
  			}, nil
  		}
  	}
  
  	return nil, fmt.Errorf(
  		"build request string must be either an int64 build id or " +
  			"a <project>/<bucket>/<builder>/<build_number>, e.g. chromium/ci/linux-rel/1")
  
  }
docs: // ParseGetBuildRequest parses a GetBuild request.
  // Supports two forms:
  // - <build-id>
  // - <project>/<bucket>/<builder>/<build-number>