mirror of
https://github.com/go-gitea/gitea.git
synced 2025-07-20 12:25:10 +02:00
Support clone private repository from runner
This commit is contained in:
parent
b65e263f92
commit
a5a112425b
@ -10,6 +10,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
auth_model "code.gitea.io/gitea/models/auth"
|
auth_model "code.gitea.io/gitea/models/auth"
|
||||||
|
bots_model "code.gitea.io/gitea/models/bots"
|
||||||
user_model "code.gitea.io/gitea/models/user"
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/base"
|
"code.gitea.io/gitea/modules/base"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
@ -71,6 +72,7 @@ func (b *Basic) Verify(req *http.Request, w http.ResponseWriter, store DataStore
|
|||||||
log.Trace("Basic Authorization: Attempting login with username as token")
|
log.Trace("Basic Authorization: Attempting login with username as token")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check oauth2 token
|
||||||
uid := CheckOAuthAccessToken(authToken)
|
uid := CheckOAuthAccessToken(authToken)
|
||||||
if uid != 0 {
|
if uid != 0 {
|
||||||
log.Trace("Basic Authorization: Valid OAuthAccessToken for user[%d]", uid)
|
log.Trace("Basic Authorization: Valid OAuthAccessToken for user[%d]", uid)
|
||||||
@ -85,6 +87,7 @@ func (b *Basic) Verify(req *http.Request, w http.ResponseWriter, store DataStore
|
|||||||
return u
|
return u
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check personal access token
|
||||||
token, err := auth_model.GetAccessTokenBySHA(authToken)
|
token, err := auth_model.GetAccessTokenBySHA(authToken)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
log.Trace("Basic Authorization: Valid AccessToken for user[%d]", uid)
|
log.Trace("Basic Authorization: Valid AccessToken for user[%d]", uid)
|
||||||
@ -105,6 +108,31 @@ func (b *Basic) Verify(req *http.Request, w http.ResponseWriter, store DataStore
|
|||||||
log.Error("GetAccessTokenBySha: %v", err)
|
log.Error("GetAccessTokenBySha: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check runner token
|
||||||
|
runner, err := bots_model.GetRunnerByToken(authToken)
|
||||||
|
if err == nil {
|
||||||
|
log.Trace("Basic Authorization: Valid AccessToken for runner[%d]", runner.ID)
|
||||||
|
|
||||||
|
if runner.OwnerID > 0 {
|
||||||
|
u, err := user_model.GetUserByID(runner.OwnerID)
|
||||||
|
if err != nil {
|
||||||
|
log.Error("GetUserByID: %v", err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
|
||||||
|
// FIXME: for a system wide runner, runner act as admin?? Or we should have a bot account
|
||||||
|
u, err := user_model.GetAdminUser()
|
||||||
|
if err != nil {
|
||||||
|
log.Error("GetUserByID: %v", err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return u
|
||||||
|
} else {
|
||||||
|
log.Error("GetRunnerByToken: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
if !setting.Service.EnableBasicAuth {
|
if !setting.Service.EnableBasicAuth {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user