Documentation
¶
Overview ¶
Package merge consumes committing merge requests from Runway's merge queue. A request asks Runway to apply an ordered sequence of merge steps onto the merge target and commit the result.
The controller obtains a Merger for the request's merge target, calls Merge, and publishes the MergeResult (with the produced revisions) to the merge-signal queue. A merge conflict is an expected outcome (ack + publish FAILED result), not an infrastructure error.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Controller ¶
type Controller struct {
// contains filtered or unexported fields
}
Controller handles merge queue messages.
func NewController ¶
func NewController(p Params) *Controller
NewController creates a new merge controller for the runway service.
func (*Controller) ConsumerGroup ¶
func (c *Controller) ConsumerGroup() string
ConsumerGroup returns the consumer group for offset tracking.
func (*Controller) Name ¶
func (c *Controller) Name() string
Name returns the controller name for logging and metrics.
func (*Controller) Process ¶
Process deserializes the merge request, performs the committing merge, and publishes the result. Returns nil to ack, or an error to nack.
func (*Controller) TopicKey ¶
func (c *Controller) TopicKey() consumer.TopicKey
TopicKey returns the topic key this controller subscribes to.