in commands/multi.go [295:338]
func (mr *RunCommand) resetOneRunnerToken() bool {
var task runAtTask
runnerResetCh := make(chan *common.RunnerConfig)
config := mr.getConfig()
runnerToReset, runnerResetTime := nextRunnerToReset(config)
if runnerToReset != nil {
task = mr.runAt(runnerResetTime, func() {
runnerResetCh <- runnerToReset
})
}
select {
case runner := <-runnerResetCh:
// When the FF is enabled, the token is not reset, however, a message is logged to warn the user
// that his token is about to expire
if runner.IsFeatureFlagOn(featureflags.DisableAutomaticTokenRotation) {
mr.log().Warningln(fmt.Printf(
"Automatic token rotation is disabled for runner: %s-%s. Your token is about to expire",
runner.ShortDescription(),
runner.GetSystemID(),
))
return false
}
if common.ResetToken(mr.network, &runner.RunnerCredentials, runner.GetSystemID(), "") {
err := mr.saveConfig()
if err != nil {
mr.log().WithError(err).Errorln("Failed to save config")
}
}
case <-mr.runFinished:
if task != nil {
task.cancel()
}
return false
case <-mr.configReloaded:
if task != nil {
task.cancel()
}
}
return true
}