Closed3

ChatGPT4に聞いてみながらJenkinsCLIを触る

masaki morimasaki mori

「JenkinsCLIを使ってすべてのジョブを無効化する方法」と聞いてみたところ以下のシェルが出力された

bash
#!/bin/bash
JENKINS_URL=http://your-jenkins-server/
JENKINS_CLI=jenkins-cli.jar
JENKINS_AUTH=username:password

java -jar $JENKINS_CLI -s $JENKINS_URL -auth $JENKINS_AUTH list-jobs | while read job
do
  java -jar $JENKINS_CLI -s $JENKINS_URL -auth $JENKINS_AUTH disable-job "$job"
done

disable-jobのAPIは正しいが、while文が動作しなかった

masaki morimasaki mori

「jenkins cliを使ってすべてのジョブでfor文を実行するサンプル」と聞いてみる

bash
#!/bin/bash
JENKINS_URL=http://your-jenkins-server/
JENKINS_CLI=jenkins-cli.jar
JENKINS_AUTH=username:password

# 全てのジョブをリストアップ
jobs=$(java -jar $JENKINS_CLI -s $JENKINS_URL -auth $JENKINS_AUTH list-jobs)

# 各ジョブに対してget-jobコマンドを実行
for job in $jobs
do
  echo "Getting information for job: $job"
  java -jar $JENKINS_CLI -s $JENKINS_URL -auth $JENKINS_AUTH get-job $job
done

これは正しく動作した

masaki morimasaki mori

結論

これらを合わせてこうした。ChatGPTは細部にミスがあることが多いので、何パターンか出力させてみたりフォーカスさせる部分を変えてみて使うと良い。JenkinsCLIのようなほぼ触らないところも的確に回答してくれることもあり便利。

#!/bin/bash
JENKINS_URL=http://your-jenkins-server/
JENKINS_CLI=jenkins-cli.jar
JENKINS_AUTH=username:password

# 全てのジョブをリストアップ
jobs=$(java -jar $JENKINS_CLI -s $JENKINS_URL -auth $JENKINS_AUTH list-jobs)

# 各ジョブに対してget-jobコマンドを実行
for job in $jobs
do
    echo "Getting information for job: $job"
    java -jar $JENKINS_CLI -s $JENKINS_URL -auth $JENKINS_AUTH disable-job "$job"
done
このスクラップは2023/11/02にクローズされました