aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/protocol/packp/updreq_encode.go
diff options
context:
space:
mode:
authorMáximo Cuadros <mcuadros@gmail.com>2021-11-01 22:52:38 +0100
committerGitHub <noreply@github.com>2021-11-01 22:52:38 +0100
commit3211a7a12a0ec2922d257fb14f09c6ecfb0b7c77 (patch)
tree667f1a41e4223ac6c255463500a05a6d8ceab349 /plumbing/protocol/packp/updreq_encode.go
parented3b10c0489949843abf071e3ce2697c0c65f26d (diff)
parente729edb00d36e9bd19f99dfa493984233b0dccfa (diff)
downloadgo-git-3211a7a12a0ec2922d257fb14f09c6ecfb0b7c77.tar.gz
Merge pull request #399 from S-Bohn/add-push-options
Remote: PushOptions add push-options
Diffstat (limited to 'plumbing/protocol/packp/updreq_encode.go')
-rw-r--r--plumbing/protocol/packp/updreq_encode.go18
1 files changed, 18 insertions, 0 deletions
diff --git a/plumbing/protocol/packp/updreq_encode.go b/plumbing/protocol/packp/updreq_encode.go
index 2545e93..08a819e 100644
--- a/plumbing/protocol/packp/updreq_encode.go
+++ b/plumbing/protocol/packp/updreq_encode.go
@@ -29,6 +29,12 @@ func (req *ReferenceUpdateRequest) Encode(w io.Writer) error {
return err
}
+ if req.Capabilities.Supports(capability.PushOptions) {
+ if err := req.encodeOptions(e, req.Options); err != nil {
+ return err
+ }
+ }
+
if req.Packfile != nil {
if _, err := io.Copy(w, req.Packfile); err != nil {
return err
@@ -73,3 +79,15 @@ func formatCommand(cmd *Command) string {
n := cmd.New.String()
return fmt.Sprintf("%s %s %s", o, n, cmd.Name)
}
+
+func (req *ReferenceUpdateRequest) encodeOptions(e *pktline.Encoder,
+ opts []*Option) error {
+
+ for _, opt := range opts {
+ if err := e.Encodef("%s=%s", opt.Key, opt.Value); err != nil {
+ return err
+ }
+ }
+
+ return e.Flush()
+}