68

curl HTTP 呼び出しを介してジョブを削除および再作成するスクリプトがあり、ハードコードされた "username:password" を削除したいと考えています。例えばcurl -X POST $url --user username:password

考慮事項:

  • Jenkins CLI (おそらくオプションではない)。Jenkins API (ジョブの作成など) と同様に CLI でも同じことを達成できるはずですが、私が理解している限りでは、Jenkins CLI で作成されたジョブは再起動または「リロード」後にのみ Jenkins に表示されるため、Jenkins CLI は私にとって良い代替手段ではありません。ディスクからの構成」であり、他の実行中のジョブがキャンセルされます。

  • API トークン。ユーザートークンを取得してスクリプトにパラメーターとして渡す方法がわかりませんが、それが解決策になる可能性があります..

4

7 に答える 7

88

この方法を試してください: (たとえば、ジョブを削除します)

curl --silent --show-error http://<username>:<api-token>@<jenkins-server>/job/<job-name>/doDelete

api-token は から取得できますhttp://<jenkins-server>/user/<username>/configure

于 2013-02-13T21:06:05.533 に答える
8
  • Jenkins CLI では、すべてをリロードする必要はありません。ジョブをロードするだけです ( update-jobコマンド)。CLI、AFAIKでトークンを使用することはできません-パスワードまたはパスワードファイルを使用する必要があります。

  • ユーザーのトークン名はhttp://<jenkins-server>/user/<username>/configure、「API トークンを表示」ボタンを押して取得できます。

  • API トークンの使用方法に関するリンクを次に示します(使用していますwgetが、curl非常に似ています)。

于 2012-05-22T08:47:45.043 に答える
7

CURL コマンドに POST を明示的に追加する必要がありました。

curl -X POST http://<user>:<token>@<server>/safeRestart

違いが生じる場合に備えて、SafeRestart プラグインもインストールしています。

于 2014-07-25T10:41:05.893 に答える
2

Jenkins APIを使用してジョブの作成を自動化するスクリプトを作成する場合は、APIクライアントの1つを使用してそれを行うことができます。JenkinsのRubyクライアントは、https://github.com/arangamani/jenkins_api_clientで入手できます。

gem install jenkins_api_client

require "rubygems"
require "jenkins_api_client"

# Initialize the client by passing in the server information
# and credentials to communicate with the server
client = JenkinsApi::Client.new(
  :server_ip => "127.0.0.1",
  :username => "awesomeuser",
  :password => "awesomepassword"
)

# The following block will create 10 jobs in Jenkins
# test_job_0, test_job_1, test_job_2, ...
10.times do |num|
  client.job.create_freestyle(:name => "test_job_#{num}")
end

# The jobs in Jenkins can be listed using
client.job.list_all

APIクライアントは、多くの操作を実行するために使用できます。

于 2013-03-19T06:28:43.220 に答える