| 115 | } |
| 116 | |
| 117 | func (tp *TokenProvider) needsRefresh() bool { |
| 118 | buffer := DefaultRefreshBuffer |
| 119 | if envBuffer := os.Getenv("GITHUB_TOKEN_REFRESH_BUFFER_MINUTES"); envBuffer != "" { |
| 120 | if val, err := strconv.Atoi(envBuffer); err == nil { |
| 121 | buffer = time.Duration(val) * time.Minute |
| 122 | } |
| 123 | } |
| 124 | |
| 125 | if tp.refreshFn != nil { |
| 126 | if tp.conn.TokenExpiresAt == nil { |
| 127 | return false |
| 128 | } |
| 129 | return time.Now().Add(buffer).After(*tp.conn.TokenExpiresAt) |
| 130 | } |
| 131 | |
| 132 | if tp.conn.RefreshToken == "" { |
| 133 | return false |
| 134 | } |
| 135 | if tp.conn.TokenExpiresAt == nil { |
| 136 | return false |
| 137 | } |
| 138 | return time.Now().Add(buffer).After(*tp.conn.TokenExpiresAt) |
| 139 | } |
| 140 | |
| 141 | func (tp *TokenProvider) refreshToken() errors.Error { |
| 142 | if tp.refreshFn != nil { |