MCPcopy Create free account
hub / github.com/bufbuild/buf / PutMessage

Method PutMessage

private/buf/bufctl/controller.go:805–847  ·  view source on GitHub ↗
(
	ctx context.Context,
	schemaImage bufimage.Image,
	messageOutput string,
	message proto.Message,
	defaultMessageEncoding buffetch.MessageEncoding,
	options ...FunctionOption,
)

Source from the content-addressed store, hash-verified

803}
804
805func (c *controller) PutMessage(
806 ctx context.Context,
807 schemaImage bufimage.Image,
808 messageOutput string,
809 message proto.Message,
810 defaultMessageEncoding buffetch.MessageEncoding,
811 options ...FunctionOption,
812) (retErr error) {
813 defer c.handleFileAnnotationSetRetError(&retErr)
814 functionOptions := newFunctionOptions(c)
815 for _, option := range options {
816 option(functionOptions)
817 }
818 // Must be messageRefParser NOT c.buffetchRefParser as a NewMessageRefParser
819 // defaults to a defaultMessageEncoding and not dir.
820 messageRefParser := buffetch.NewMessageRefParser(
821 c.logger,
822 buffetch.MessageRefParserWithDefaultMessageEncoding(
823 defaultMessageEncoding,
824 ),
825 )
826 messageRef, err := messageRefParser.GetMessageRef(ctx, messageOutput)
827 if err != nil {
828 return err
829 }
830 if messageRef.IsNull() {
831 return nil
832 }
833 marshaler, err := newProtoencodingMarshaler(schemaImage, messageRef)
834 if err != nil {
835 return err
836 }
837 data, err := marshaler.Marshal(message)
838 if err != nil {
839 return err
840 }
841 writeCloser, err := c.buffetchWriter.PutMessageFile(ctx, c.container, messageRef)
842 if err != nil {
843 return err
844 }
845 _, err = writeCloser.Write(data)
846 return errors.Join(err, writeCloser.Close())
847}
848
849func (c *controller) GetCheckClientForWorkspace(
850 ctx context.Context,

Callers

nothing calls this directly

Calls 12

GetMessageRefMethod · 0.95
NewMessageRefParserFunction · 0.92
newFunctionOptionsFunction · 0.85
optionStruct · 0.85
IsNullMethod · 0.65
MarshalMethod · 0.65
PutMessageFileMethod · 0.65
WriteMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected