prow/pubsub/reporter/reporter.go
func (c *Client) Report(pj *prowapi.ProwJob) ([]*prowapi.ProwJob, error) {
	message := c.generateMessageFromPJ(pj)

	ctx := context.Background()
	client, err := pubsub.NewClient(ctx, message.Project)

	if err != nil {
		return nil, fmt.Errorf("could not create pubsub Client: %v", err)
	}
	topic := client.Topic(message.Topic)

	d, err := json.Marshal(message)
	if err != nil {
		return nil, fmt.Errorf("could not marshal pubsub report: %v", err)
	}

	res := topic.Publish(ctx, &pubsub.Message{
		Data: d,
	})

	_, err = res.Get(ctx)
	if err != nil {
		return nil, fmt.Errorf(
			"failed to publish pubsub message with run ID %q to topic: \"%s/%s\". %v",
			message.RunID, message.Project, message.Topic, err)
	}

	return []*prowapi.ProwJob{pj}, nil
}
func (c *Client) Report(pj *prowapi.ProwJob) ([]*prowapi.ProwJob, error) {
	message := c.generateMessageFromPJ(pj)

	ctx := context.Background()
	client, err := pubsub.NewClient(ctx, message.Project)

	if err != nil {
		return nil, fmt.Errorf("could not create pubsub Client: %v", err)
	}
	topic := client.Topic(message.Topic)

	d, err := json.Marshal(message)
	if err != nil {
		return nil, fmt.Errorf("could not marshal pubsub report: %v", err)
	}

	res := topic.Publish(ctx, &pubsub.Message{
		Data: d,
	})

	_, err = res.Get(ctx)
	if err != nil {
		return nil, fmt.Errorf(
			"failed to publish pubsub message with run ID %q to topic: \"%s/%s\". %v",
			message.RunID, message.Project, message.Topic, err)
	}

	return []*prowapi.ProwJob{pj}, nil
}
func ( c * Client ) Report ( pj * prowapi . ProwJob ) ( [ ] * prowapi . ProwJob , error ) { message := c . generateMessageFromPJ ( pj ) ctx := context . Background ( ) client , err := pubsub . NewClient ( ctx , message . Project ) if err != nil { return nil , fmt . Errorf ( " " , err ) } topic := client . Topic ( message . Topic ) d , err := json . Marshal ( message ) if err != nil { return nil , fmt . Errorf ( " " , err ) } res := topic . Publish ( ctx , & pubsub . Message { Data : d , } ) _ , err = res . Get ( ctx ) if err != nil { return nil , fmt . Errorf ( " \" \" " , message . RunID , message . Project , message . Topic , err ) } return [ ] * prowapi . ProwJob { pj } , nil }
// Report takes a prowjob, and generate a pubsub ReportMessage and publish to specific Pub/Sub topic
// based on Pub/Sub related labels if they exist in this prowjob
Report takes a prowjob and generate a pubsub ReportMessage and publish to specific Pub / Sub topic based on Pub / Sub related labels if they exist in this prowjob