Documentation
¶
Overview ¶
Package teeth contains a job that will read leech and pull request event records from BigQuery and publish any available log invocations in a PR comment.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var PublisherSourceQuery string
PublisherSourceQuery is the source query that teeth job pipeline will use to publish results.
Functions ¶
func SaveInvocationCommentStatus ¶ added in v0.0.16
func SaveInvocationCommentStatus(ctx context.Context, bqClient BigQueryClient, statuses []*InvocationCommentStatusRecord) error
SaveInvocationCommentStatus inserts the statuses into the InvocationCommentStatus table.
Types ¶
type BQConfig ¶
type BQConfig struct {
ProjectID string
DatasetID string
PullRequestEventsTable string
InvocationCommentStatusTable string
EventsTable string
LeechStatusTable string
}
TODO: Add query limit param.
BQConfig defines configuration parameters for the BigQuery client and the tables used by the teeth job pipeline.
type BigQuery ¶ added in v0.0.16
type BigQuery struct {
// contains filtered or unexported fields
}
BigQuery provides a client to BigQuery API.
func NewBigQuery ¶ added in v0.0.16
NewBigQuery creates a new instance of a BigQuery client with config.
func (*BigQuery) Insert ¶ added in v0.0.16
func (bq *BigQuery) Insert(ctx context.Context, statuses []*InvocationCommentStatusRecord) error
Insert writes statuses to the InvocationCommentStatusTable.
func (*BigQuery) QueryLatest ¶ added in v0.0.16
func (bq *BigQuery) QueryLatest(ctx context.Context) ([]*PublisherSourceRecord, error)
QueryLatest executes the source query for the latest PublisherSourceRecords to process.
type BigQueryClient ¶
type BigQueryClient interface {
QueryLatest(context.Context) ([]*PublisherSourceRecord, error)
Insert(context.Context, []*InvocationCommentStatusRecord) error
}
BigQueryClient defines the spec for calls to read from and write to BigQuery tables.
type InvocationCommentStatusRecord ¶
type InvocationCommentStatusRecord struct {
PullRequestID int `bigquery:"pull_request_id"`
PullRequestURL string `bigquery:"pull_request_html_url"`
ProcessedAt time.Time `bigquery:"processed_at"`
CommentID bigquery.NullInt64 `bigquery:"comment_id"`
Status string `bigquery:"status"`
JobName string `bigquery:"job_name"`
}
InvocationCommentStatusRecord is the output data structure that maps to the teeth pipeline's output table schema for invocation comment statuses.
type PublisherSourceRecord ¶
type PublisherSourceRecord struct {
DeliveryID string `bigquery:"delivery_id"`
PullRequestID int `bigquery:"pull_request_id"`
PullRequestURL string `bigquery:"pull_request_html_url"`
Received time.Time `bigquery:"received"`
LogsURI string `bigquery:"logs_uri"`
HeadSHA string `bigquery:"head_sha"`
}
PublisherSourceRecord maps the columns from the source query to a struct.
func GetLatestSourceRecords ¶ added in v0.0.16
func GetLatestSourceRecords(ctx context.Context, bqClient BigQueryClient) ([]*PublisherSourceRecord, error)
GetLatestSourceRecords gets the latest publisher source records.