I持ってcurl
INGのジェンキンス$ BUILD_URL/API/JSONからの次の出力:私がすることになっている現在利用可能ジェンキンスプラグインとしてビルドジョブを開始した「はuserId」を抽出しようとしているjqを使ってJenkinsのビルドURLでcurlからuserIdを抽出するには?
[email protected] ~ - $ curl -s --insecure -u itaig:password https://ip.us-west-2.compute.amazonaws.com/job/Company-Analytics-Prod-Deploy_New/24/api/json |
jq -r '.actions[]'
{
"_class": "hudson.model.CauseAction",
"causes": [
{
"_class": "hudson.model.Cause$UserIdCause",
"shortDescription": "Started by user Itai Ganot",
"userId": "itaig",
"userName": "Itai Ganot"
}
]
}
{
"_class": "hudson.model.CauseAction",
"causes": [
{
"_class": "com.sonyericsson.rebuild.RebuildCause",
"shortDescription": "Rebuilds build #23",
"upstreamBuild": 23,
"upstreamProject": "Company-Analytics-Prod-Deploy_New",
"upstreamUrl": "view/Prod-US%20Deploy/job/Company-Analytics-Prod-Deploy_New/"
}
]
}
{
"_class": "hudson.model.ParametersAction",
"parameters": [
{
"_class": "eu.markov.jenkins.plugin.mvnmeta.MavenMetadataParameterValue",
"name": "Version"
},
{
"_class": "hudson.model.StringParameterValue",
"name": "region",
"value": "us-east-1"
},
{
"_class": "hudson.model.StringParameterValue",
"name": "StackName",
"value": "Company-Prd-21"
},
{
"_class": "hudson.model.StringParameterValue",
"name": "autostart",
"value": "No"
}
]
}
{}
{}
{
"_class": "hudson.plugins.git.util.BuildData",
"buildsByBranchName": {
"refs/remotes/origin/master": {
"_class": "hudson.plugins.git.util.Build",
"buildNumber": 24,
"buildResult": null,
"marked": {
"SHA1": "0e71efeac11c9909838453f4f103457ec3b04d27",
"branch": [
{
"SHA1": "0e71efeac11c9909838453f4f103457ec3b04d27",
"name": "refs/remotes/origin/master"
}
]
},
"revision": {
"SHA1": "0e71efeac11c9909838453f4f103457ec3b04d27",
"branch": [
{
"SHA1": "0e71efeac11c9909838453f4f103457ec3b04d27",
"name": "refs/remotes/origin/master"
}
]
}
}
},
"lastBuiltRevision": {
"SHA1": "0e71efeac11c9909838453f4f103457ec3b04d27",
"branch": [
{
"SHA1": "0e71efeac11c9909838453f4f103457ec3b04d27",
"name": "refs/remotes/origin/master"
}
]
},
"remoteUrls": [
"[email protected]:company.ci.git"
],
"scmName": ""
}
{
"_class": "hudson.plugins.git.GitTagAction"
}
{}
{}
{}
{}
{}
[email protected] ~ - $
それは何らかの理由でうまくいかないのですか?
これは私が試したものですが、それは私にエラーを与える:
[email protected] ~ - $ curl -s --insecure -u itaig:password https://ip.us-west-2.compute.amazonaws.com/job/Company-Analytics-Prod-Deploy_New/24/api/json |
jq -r '.actions[].causes[] | .userId'
itaig
null
jq: error (at <stdin>:0): Cannot iterate over null (null)
[email protected] ~ - $
私はそれが「.ACTIONS []」ブロックの一部には「.causes []」はありませんという事実に関連すると思いますその場合、「userId」を抽出することは可能ですか?
私は、カット/ AWKでそれを行う方法を知っているが、私は、JQと感謝をそれを行う方法を学ぶことを好みます。 –
実際に私はあまりにも好きです:)、ちょうどそれも '古いファッション'ソリューションを追加するのが適切だろうと思う。 – chenchuk