Skip to content

Commit

Permalink
plumbing: packp and server, Include the contents of `GO_GIT_USER_AGEN…
Browse files Browse the repository at this point in the history
…T_EXTRA` as the git user agent. Fixes #529
  • Loading branch information
stewing authored and mcuadros committed Sep 22, 2022
1 parent c35b808 commit 36e1f5b
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 5 deletions.
15 changes: 14 additions & 1 deletion plumbing/protocol/packp/capability/capability.go
@@ -1,6 +1,11 @@
// Package capability defines the server and client capabilities.
package capability

import (
"fmt"
"os"
)

// Capability describes a server or client capability.
type Capability string

Expand Down Expand Up @@ -238,7 +243,15 @@ const (
Filter Capability = "filter"
)

const DefaultAgent = "go-git/5.x"
const userAgent = "go-git/5.x"

// DefaultAgent provides the user agent string.
func DefaultAgent() string {
if envUserAgent, ok := os.LookupEnv("GO_GIT_USER_AGENT_EXTRA"); ok {
return fmt.Sprintf("%s %s", userAgent, envUserAgent)
}
return userAgent
}

var known = map[Capability]bool{
MultiACK: true, MultiACKDetailed: true, NoDone: true, ThinPack: true,
Expand Down
22 changes: 22 additions & 0 deletions plumbing/protocol/packp/capability/capability_test.go
@@ -0,0 +1,22 @@
package capability

import (
"fmt"
"os"

check "gopkg.in/check.v1"
)

var _ = check.Suite(&SuiteCapabilities{})

func (s *SuiteCapabilities) TestDefaultAgent(c *check.C) {
os.Unsetenv("GO_GIT_USER_AGENT_EXTRA")
ua := DefaultAgent()
c.Assert(ua, check.Equals, userAgent)
}

func (s *SuiteCapabilities) TestEnvAgent(c *check.C) {
os.Setenv("GO_GIT_USER_AGENT_EXTRA", "abc xyz")
ua := DefaultAgent()
c.Assert(ua, check.Equals, fmt.Sprintf("%s %s", userAgent, "abc xyz"))
}
2 changes: 1 addition & 1 deletion plumbing/protocol/packp/ulreq.go
Expand Up @@ -95,7 +95,7 @@ func NewUploadRequestFromCapabilities(adv *capability.List) *UploadRequest {
}

if adv.Supports(capability.Agent) {
r.Capabilities.Set(capability.Agent, capability.DefaultAgent)
r.Capabilities.Set(capability.Agent, capability.DefaultAgent())
}

return r
Expand Down
2 changes: 1 addition & 1 deletion plumbing/protocol/packp/updreq.go
Expand Up @@ -59,7 +59,7 @@ func NewReferenceUpdateRequestFromCapabilities(adv *capability.List) *ReferenceU
r := NewReferenceUpdateRequest()

if adv.Supports(capability.Agent) {
r.Capabilities.Set(capability.Agent, capability.DefaultAgent)
r.Capabilities.Set(capability.Agent, capability.DefaultAgent())
}

if adv.Supports(capability.ReportStatus) {
Expand Down
4 changes: 2 additions & 2 deletions plumbing/transport/server/server.go
Expand Up @@ -189,7 +189,7 @@ func (s *upSession) objectsToUpload(req *packp.UploadPackRequest) ([]plumbing.Ha
}

func (*upSession) setSupportedCapabilities(c *capability.List) error {
if err := c.Set(capability.Agent, capability.DefaultAgent); err != nil {
if err := c.Set(capability.Agent, capability.DefaultAgent()); err != nil {
return err
}

Expand Down Expand Up @@ -355,7 +355,7 @@ func (s *rpSession) reportStatus() *packp.ReportStatus {
}

func (*rpSession) setSupportedCapabilities(c *capability.List) error {
if err := c.Set(capability.Agent, capability.DefaultAgent); err != nil {
if err := c.Set(capability.Agent, capability.DefaultAgent()); err != nil {
return err
}

Expand Down

0 comments on commit 36e1f5b

Please sign in to comment.