MCPcopy Index your code
hub / github.com/rilldata/rill / userAccessToken

Method userAccessToken

admin/server/github.go:1041–1080  ·  view source on GitHub ↗
(ctx context.Context, user *database.User)

Source from the content-addressed store, hash-verified

1039}
1040
1041func (s *Server) userAccessToken(ctx context.Context, user *database.User) (string, error) {
1042 if user.GithubTokenExpiresOn != nil && user.GithubTokenExpiresOn.After(time.Now().Add(5*time.Minute)) {
1043 return user.GithubToken, nil
1044 }
1045
1046 if user.GithubRefreshToken == "" {
1047 return "", errors.New("refresh token is empty")
1048 }
1049
1050 oauthConf := &oauth2.Config{
1051 ClientID: s.opts.GithubClientID,
1052 ClientSecret: s.opts.GithubClientSecret,
1053 Endpoint: githuboauth.Endpoint,
1054 }
1055
1056 src := oauthConf.TokenSource(ctx, &oauth2.Token{RefreshToken: user.GithubRefreshToken})
1057 oauthToken, err := src.Token()
1058 if err != nil {
1059 return "", err
1060 }
1061
1062 // refresh token changes after using it for getting a new token
1063 _, err = s.admin.DB.UpdateUser(ctx, user.ID, &database.UpdateUserOptions{
1064 DisplayName: user.DisplayName,
1065 PhotoURL: user.PhotoURL,
1066 GithubUsername: user.GithubUsername,
1067 GithubToken: oauthToken.AccessToken,
1068 GithubTokenExpiresOn: &oauthToken.Expiry,
1069 GithubRefreshToken: oauthToken.RefreshToken,
1070 QuotaSingleuserOrgs: user.QuotaSingleuserOrgs,
1071 QuotaTrialOrgs: user.QuotaTrialOrgs,
1072 PreferenceTimeZone: user.PreferenceTimeZone,
1073 })
1074 if err != nil {
1075 s.logger.Error("failed to update user's github refresh token")
1076 return "", err
1077 }
1078
1079 return oauthToken.AccessToken, nil
1080}
1081
1082func (s *Server) fetchReposForUser(ctx context.Context, client *github.Client) ([]*adminv1.ListGithubUserReposResponse_Repo, error) {
1083 repos := make([]*adminv1.ListGithubUserReposResponse_Repo, 0)

Callers 3

GetGithubUserStatusMethod · 0.95
ListGithubUserReposMethod · 0.95
createRepoMethod · 0.95

Calls 4

AddMethod · 0.65
TokenMethod · 0.65
UpdateUserMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected