You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.0 KiB
Go
42 lines
1.0 KiB
Go
// Copyright 2018 Drone.IO Inc. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package oauth1
|
|
|
|
import (
|
|
"context"
|
|
|
|
"git.awesome-for.me/liuzhiguo/go-scm/scm"
|
|
)
|
|
|
|
// StaticTokenSource returns a TokenSource that always
|
|
// returns the same token. Because the provided token t
|
|
// is never refreshed, StaticTokenSource is only useful
|
|
// for tokens that never expire.
|
|
func StaticTokenSource(t *scm.Token) scm.TokenSource {
|
|
return staticTokenSource{t}
|
|
}
|
|
|
|
type staticTokenSource struct {
|
|
token *scm.Token
|
|
}
|
|
|
|
func (s staticTokenSource) Token(context.Context) (*scm.Token, error) {
|
|
return s.token, nil
|
|
}
|
|
|
|
// ContextTokenSource returns a TokenSource that returns
|
|
// a token from the http.Request context.
|
|
func ContextTokenSource() scm.TokenSource {
|
|
return contextTokenSource{}
|
|
}
|
|
|
|
type contextTokenSource struct {
|
|
}
|
|
|
|
func (s contextTokenSource) Token(ctx context.Context) (*scm.Token, error) {
|
|
token, _ := ctx.Value(scm.TokenKey{}).(*scm.Token)
|
|
return token, nil
|
|
}
|