func findOrCreateToken(user, password, twoFactorCode string) (token string, err error) { basicAuth := octokit.BasicAuth{Login: user, Password: password, OneTimePassword: twoFactorCode} client := octokit.NewClient(basicAuth) authsService, err := client.Authorizations(nil, nil) if err != nil { return } auths, result := authsService.GetAll() if result.HasError() { err = result.Err return } for _, auth := range auths { if auth.NoteURL == OAuthAppURL { token = auth.Token break } } if token == "" { authParam := octokit.AuthorizationParams{} authParam.Scopes = append(authParam.Scopes, "repo") authParam.Note = "gh" authParam.NoteURL = OAuthAppURL auth, result := authsService.Create(authParam) if result.HasError() { err = result.Err return } token = auth.Token } return }