Closed3
ChatGPT4に聞いてみながらJenkinsCLIを触る
「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文が動作しなかった
「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
これは正しく動作した
結論
これらを合わせてこうした。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にクローズされました