Jenkins REST APIにアクセスするには、多くのURLに\api\json
という接尾辞を追加して、JenkinsがJSONセグメント(存在する場合はそれ以外の場合は404)を返すようにすることができます。 json2csharpのようなツールは、このシナリオでは非常に重要です。消費
方法
1.スクリプト
`curl -XGET 'http://myJenkinsInstance:8080/job/MyFolder/job/TestJob101/api/json' --user user.name:YourAPIToken`
これは、ジョブが既に存在するかどうかに応じて、200または404のいずれかを返します。
(C#のような)
2.プログラミング言語はそうのようなapi\json
をお使いのフォルダのURLにアクセスして、追加します。
http://myJenkinsInstance:8080/job/MyFolder/job/TestJob101/api/json
をそのフォルダには、ブラウザ、いくつかのJSONに表示されますが存在する場合、それ以外の場合は404を取得します。jsonをすべてコピーしてjson2csharpに貼り付け、C#を生成します。
次のC#を取得する必要があります:
public class Action
{
public string _class { get; set; }
}
public class Job
{
public string _class { get; set; }
public string name { get; set; }
public string url { get; set; }
public string color { get; set; }
}
public class PrimaryView
{
public string _class { get; set; }
public string name { get; set; }
public string url { get; set; }
}
public class View
{
public string _class { get; set; }
public string name { get; set; }
public string url { get; set; }
}
public class RootObject
{
public string _class { get; set; }
public List<Action> actions { get; set; }
public string description { get; set; }
public string displayName { get; set; }
public object displayNameOrNull { get; set; }
public string fullDisplayName { get; set; }
public string fullName { get; set; }
public string name { get; set; }
public string url { get; set; }
public List<object> healthReport { get; set; }
public List<Job> jobs { get; set; }
public PrimaryView primaryView { get; set; }
public List<View> views { get; set; }
}
あなたが何かにRootObjectクラスの名前を変更する必要がありより多くのあなたは、このコードができたらFolderCheck
のように、コードを読みやすくするために、あなたのコンテキスト内で完全な意味同じURLへのHTTP GET呼び出しを行うことができます。 (注:プログラムでのフォルダ名を代入すると、それはあなたが仕事をしたい任意のフォルダのために働くようになります)ので、Json.NET NuGetパッケージを使用して同じようにdeserialise:
var json = Adapter.Get(url, username, apiKey);
JsonConvert.DeserializeObject<FolderCheck>(json);
JSON変数が、その後、有効なJSONが含まれている場合そのフォルダが存在することを知っています。
Jenkins LTS 2.60.3および2.90でテスト済みです。
ありがとうございました。私はC#を使用しています –