@@ -217,10 +217,11 @@ func runServ(c *cli.Context) error {
217
217
218
218
// Allow anonymous clone for public repositories.
219
219
var (
220
- keyID int64
221
- user * models.User
220
+ keyID int64
221
+ user * models.User
222
+ userID int64
222
223
)
223
- if requestedMode == models .AccessModeWrite || repo .IsPrivate || setting .Service .RequireSignInView {
224
+ if requestedMode == models .AccessModeWrite || repo .IsPrivate || setting .Service .RequireSignInView || verb == lfsAuthenticateVerb {
224
225
keys := strings .Split (c .Args ()[0 ], "-" )
225
226
if len (keys ) != 2 {
226
227
fail ("Key ID format error" , "Invalid key argument: %s" , c .Args ()[0 ])
@@ -258,6 +259,7 @@ func runServ(c *cli.Context) error {
258
259
// so for now use the owner
259
260
os .Setenv (models .EnvPusherName , username )
260
261
os .Setenv (models .EnvPusherID , fmt .Sprintf ("%d" , repo .OwnerID ))
262
+ userID = repo .OwnerID
261
263
} else {
262
264
user , err = private .GetUserByKeyID (key .ID )
263
265
if err != nil {
@@ -285,6 +287,7 @@ func runServ(c *cli.Context) error {
285
287
286
288
os .Setenv (models .EnvPusherName , user .Name )
287
289
os .Setenv (models .EnvPusherID , fmt .Sprintf ("%d" , user .ID ))
290
+ userID = user .ID
288
291
}
289
292
}
290
293
@@ -299,8 +302,8 @@ func runServ(c *cli.Context) error {
299
302
"exp" : now .Add (setting .LFS .HTTPAuthExpiry ).Unix (),
300
303
"nbf" : now .Unix (),
301
304
}
302
- if user != nil {
303
- claims ["user" ] = user . ID
305
+ if userID > 0 {
306
+ claims ["user" ] = userID
304
307
}
305
308
token := jwt .NewWithClaims (jwt .SigningMethodHS256 , claims )
306
309
0 commit comments