Skip to content

Commit f79825c

Browse files
cmd: extract getLFSAuthToken() into function
this makes no functional changes
1 parent a179b31 commit f79825c

File tree

1 file changed

+24
-16
lines changed

1 file changed

+24
-16
lines changed

cmd/serv.go

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,27 @@ func handleCliResponseExtra(extra private.ResponseExtra) error {
124124
return nil
125125
}
126126

127+
func getLFSAuthToken(ctx context.Context, lfsVerb string, results *private.ServCommandResults) (string, error) {
128+
now := time.Now()
129+
claims := lfs.Claims{
130+
RegisteredClaims: jwt.RegisteredClaims{
131+
ExpiresAt: jwt.NewNumericDate(now.Add(setting.LFS.HTTPAuthExpiry)),
132+
NotBefore: jwt.NewNumericDate(now),
133+
},
134+
RepoID: results.RepoID,
135+
Op: lfsVerb,
136+
UserID: results.UserID,
137+
}
138+
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
139+
140+
// Sign and get the complete encoded token as a string using the secret
141+
tokenString, err := token.SignedString(setting.LFS.JWTSecretBytes)
142+
if err != nil {
143+
return "", fail(ctx, "Failed to sign JWT Token", "Failed to sign JWT token: %v", err)
144+
}
145+
return fmt.Sprintf("Bearer %s", tokenString), nil
146+
}
147+
127148
func runServ(c *cli.Context) error {
128149
ctx, cancel := installSignals()
129150
defer cancel()
@@ -264,29 +285,16 @@ func runServ(c *cli.Context) error {
264285
if verb == lfsAuthenticateVerb {
265286
url := fmt.Sprintf("%s%s/%s.git/info/lfs", setting.AppURL, url.PathEscape(results.OwnerName), url.PathEscape(results.RepoName))
266287

267-
now := time.Now()
268-
claims := lfs.Claims{
269-
RegisteredClaims: jwt.RegisteredClaims{
270-
ExpiresAt: jwt.NewNumericDate(now.Add(setting.LFS.HTTPAuthExpiry)),
271-
NotBefore: jwt.NewNumericDate(now),
272-
},
273-
RepoID: results.RepoID,
274-
Op: lfsVerb,
275-
UserID: results.UserID,
276-
}
277-
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
278-
279-
// Sign and get the complete encoded token as a string using the secret
280-
tokenString, err := token.SignedString(setting.LFS.JWTSecretBytes)
288+
token, err := getLFSAuthToken(ctx, lfsVerb, results)
281289
if err != nil {
282-
return fail(ctx, "Failed to sign JWT Token", "Failed to sign JWT token: %v", err)
290+
return err
283291
}
284292

285293
tokenAuthentication := &git_model.LFSTokenResponse{
286294
Header: make(map[string]string),
287295
Href: url,
288296
}
289-
tokenAuthentication.Header["Authorization"] = fmt.Sprintf("Bearer %s", tokenString)
297+
tokenAuthentication.Header["Authorization"] = token
290298

291299
enc := json.NewEncoder(os.Stdout)
292300
err = enc.Encode(tokenAuthentication)

0 commit comments

Comments
 (0)