5

Hudsonビルドで動作するPythonスクリプトがあり、プログラムでビルドの説明を設定できるようにしたいと考えています。

ビルドのページで[説明を追加]をクリックしてフォームに入力できますが、フォームと同じURLにデータをPOSTするにはどうすればよいですか?

4

4 に答える 4

7

application/x-www-form-urlencodedそれを理解し、フォームデータ(コンテンツタイプ)として以下をPOSTする必要があります

http:// myserver / hudson / job / thebuild / 10 / submitDescription

{"description": "Some Description for the build"}

コード内:

def set_description(build_url, desc):
    req_data = urllib.urlencode({'description': desc})
    req = urllib2.Request(build_url + '/submitDescription', req_data)
    req.add_header('Content-Type', 'application/x-www-form-urlencoded')
    urllib2.urlopen(req)
于 2011-02-02T03:10:11.407 に答える
3

(コメントしますが、十分な担当者ではありません)

アプローチの大部分を提供してくれたjtbに感謝します。サーバーでセキュリティが有効になっている場合、このコードを使用して認証できることがわかりました(ここから採用)

def set_description(build_url, desc, user, token):
    import base64, urllib, urllib2
    req_data = urllib.urlencode( {'description': desc } )
    req = urllib2.Request(build_url + '/submitDescription', req_data)
    req.add_header('Content-Type', 'application/x-www-form-urlencoded')
    auth = 'Basic {}'.format(base64.b64encode("{}:{}".format( user, token )))
    req.add_header( 'Authorization', auth )
    response = urllib2.urlopen(req)

ユーザーとトークンの値は、次のAPIトークンにあります。http://<myserver>/me/configure

于 2014-10-03T14:02:54.563 に答える
2

「システムGroovyスクリプトの実行」ビルドタスクの使用:

import hudson.model.Cause
import hudson.model.Job
import jenkins.model.Jenkins

final JOB_NAME = 'my-job-name'

final jenkins = Jenkins.instance
final job = jenkins.getItemByFullName(JOB_NAME, Job.class)
final currentBuild = Thread.currentThread().executable
final buildNumber = currentBuild.getNumber()

job.builds
    .findAll { build ->
        build.number == buildNumber
    }
    .each { build ->
        build.setDescription("Some Description for the build")
    }
于 2012-06-01T22:58:58.017 に答える
0

これは、シェルから正常に機能したcurlコマンドです。{}を含む間にあるテキストを置き換えます。

curl -X POST -u {user:password} -H'Content-Type:application / x-www-form-urlencoded' --data-urlencode description = {descriptionstring} {hudsonurl} / job / {jobname} / {buildnumber } / submitDescription

于 2015-09-04T02:25:59.107 に答える