19
19
import com .jcraft .jsch .Session ;
20
20
import java .io .File ;
21
21
import java .io .IOException ;
22
+ import java .util .ArrayList ;
22
23
import java .util .Arrays ;
23
24
import java .util .List ;
24
25
import java .util .Objects ;
41
42
import org .eclipse .jgit .transport .UsernamePasswordCredentialsProvider ;
42
43
import org .eclipse .jgit .transport .ssh .jsch .JschConfigSessionFactory ;
43
44
import org .eclipse .jgit .transport .ssh .jsch .OpenSshConfig ;
45
+ import pl .tlinkowski .annotation .basic .NullOr ;
44
46
45
47
/** API for doing the commit, tag, and push operations. See {@link GitCfg#withChangelog(File, ChangelogAndNext)}. */
46
48
public class GitActions implements AutoCloseable {
@@ -200,7 +202,7 @@ protected void configure(OpenSshConfig.Host host, Session session) {
200
202
}
201
203
202
204
// similar to https://github.com/ajoberstar/grgit/blob/5766317fbe67ec39faa4632e2b80c2b056f5c124/grgit-core/src/main/groovy/org/ajoberstar/grgit/auth/AuthConfig.groovy
203
- private static CredentialsProvider creds () {
205
+ private static @ NullOr CredentialsProvider creds () {
204
206
String username = System .getenv (GRGIT_USERNAME_ENV_VAR );
205
207
if (username != null ) {
206
208
String password = System .getenv (GRGIT_PASSWORD_ENV_VAR );
@@ -209,18 +211,25 @@ private static CredentialsProvider creds() {
209
211
}
210
212
return new UsernamePasswordCredentialsProvider (username , password );
211
213
}
212
- username = System .getenv (GH_TOKEN_ENV_VAR );
213
- if (username != null ) {
214
- return new UsernamePasswordCredentialsProvider (username , "" );
214
+ String githubToken = GITHUB_VARS .stream ()
215
+ .map (System ::getenv )
216
+ .filter (Objects ::nonNull )
217
+ .findFirst ().orElse (null );
218
+ if (githubToken != null ) {
219
+ return new UsernamePasswordCredentialsProvider (githubToken , "" );
215
220
}
216
221
return null ;
217
222
}
218
223
219
224
private static final String GRGIT_USERNAME_ENV_VAR = "GRGIT_USER" ;
220
225
private static final String GRGIT_PASSWORD_ENV_VAR = "GRGIT_PASS" ;
221
- private static final String GH_TOKEN_ENV_VAR = " gh_token" ;
226
+ private static final List < String > GITHUB_VARS = Arrays . asList ( "GH_TOKEN" , "GITHUB_TOKEN" , " gh_token") ;
222
227
223
228
private static List <String > envVars () {
224
- return Arrays .asList (GRGIT_USERNAME_ENV_VAR , GRGIT_PASSWORD_ENV_VAR , GH_TOKEN_ENV_VAR );
229
+ var list = new ArrayList <String >();
230
+ list .addAll (GITHUB_VARS );
231
+ list .add (GRGIT_USERNAME_ENV_VAR );
232
+ list .add (GRGIT_PASSWORD_ENV_VAR );
233
+ return list ;
225
234
}
226
235
}
0 commit comments