{"owner":"jenkinsci","repo":"jenkins","hasSkills":true,"totalSkillsCount":12,"totalTokensCount":10761,"categories":["anthropic-skill"],"hasMcp":false,"mcpConfig":null,"found":["test/src/test/resources/plugins/alternative-update-center.json","test/src/test/resources/plugins/no-wiki-update-center.json","test/src/test/resources/plugins/htmlpublisher-update-center.json","test/src/test/resources/plugins/invalid-signature-update-center.json","test/src/test/resources/plugins/deprecations-update-center.json","test/src/test/resources/plugins/available-update-center.json","test/src/test/resources/plugins/invalid-signature-update-center-core-cm.json","test/src/test/resources/plugins/search-test-update-center2.json","test/src/test/resources/plugins/search-test-update-center1.json","test/src/test/resources/plugins/upload-test-update-center.json","test/src/test/resources/plugins/warnings-update-center-malformed.json","test/src/test/resources/plugins/security3037-update-center.json"],"skills":{"test/src/test/resources/plugins/alternative-update-center.json":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", // has to be here because updateDirectly sniffs only very limited formats\n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"alternative\",\n    \"plugins\": {\n        \"tasks\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [{\"name\": \"lokadm\"}],\n            \"excerpt\": \"   This plug-in scans for open tasks in a specified set of files in the project modules   and visualizes the results.  \",\n            \"name\": \"tasks\",\n            \"wiki\": \"https://plugins.jenkins.io/tasks\",\n            \"requiredCore\": \"1.264\",\n            \"sha1\": \"wtzlciUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Jenkins Task Scanner Plug-in\",\n            \"url\": \"tasks.jpi\",\n            \"version\": \"2.23\"\n        },\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"wiki\": \"https://plugins.example.com/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Dummy\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\"\n        },\n        \"foo\": {\n            \"dependencies\": [],\n            \"name\": \"foo\",\n            \"wiki\": \"https://plugins.jenkins.io/foo\",\n            \"version\": \"1.0\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","test/src/test/resources/plugins/no-wiki-update-center.json":"updateCenter.post(\n{\n  \"connectionCheckUrl\": \"https://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Jun 20, 2026\",\n    \"name\": \"core\",\n    \"sha1\": \"dummy\",\n    \"sha256\": \"dummy\",\n    \"size\": 1,\n    \"url\": \"https://updates.jenkins.io/download/war/2.570/jenkins.war\",\n    \"version\": \"2.570\"\n  },\n  \"generationTimestamp\": \"2026-06-20T00:00:00Z\",\n  \"id\": \"NoWiki\",\n  \"deprecations\": [],\n  \"plugins\": {\n    \"plugin-without-wiki\": {\n      \"buildDate\": \"Jun 20, 2026\",\n      \"dependencies\": [],\n      \"excerpt\": \"A plugin without a wiki URL.\",\n      \"health\": 100,\n      \"name\": \"plugin-without-wiki\",\n      \"popularity\": 1,\n      \"releaseTimestamp\": \"2026-06-20T00:00:00.00Z\",\n      \"requiredCore\": \"2.0\",\n      \"sha1\": \"dummy\",\n      \"sha256\": \"dummy\",\n      \"title\": \"Plugin Without Wiki\",\n      \"url\": \"https://updates.jenkins.io/download/plugins/plugin-without-wiki/1.0/plugin-without-wiki.hpi\",\n      \"version\": \"1.0\"\n    }\n  },\n  \"updateCenterVersion\": \"1\"\n}\n);\n","test/src/test/resources/plugins/htmlpublisher-update-center.json":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", // has to be here because updateDirectly sniffs only very limited formats\n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"htmlpublisher\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [\n                {\n                    \"developerId\": \"mcrooney\",\n                    \"name\": \"Michael Rooney\"\n                }\n            ],\n            \"excerpt\": \"This plugin publishes HTML reports.\",\n            \"name\": \"htmlpublisher\",\n            \"wiki\": \"https://plugins.jenkins.io/htmlpublisher\",\n            \"requiredCore\": \"1.398\",\n            \"sha1\": \"tVSI0DVK02k9R3KV1M3A451Da3c=\",\n            \"title\": \"HTML Publisher\",\n            \"url\": \"htmlpublisher.jpi\",\n            \"version\": \"0.7\"\n        },\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"wiki\": \"https://plugins.jenkins.io/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Dummy\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","test/src/test/resources/plugins/invalid-signature-update-center.json":"{\n  \"updateCenterVersion\": \"1\",\n  \"core\": {\n    \"name\": \"core\",\n    \"version\": \"2.541\",\n    \"url\": \"http://updates.jenkins.io/download/war/2.541/jenkins.war\"\n  },\n  \"plugins\": {},\n  \"signature\": {\n    \"certificates\": [\n      \"InvalidBase64CertificateDataThatWillFailValidation==\"\n    ],\n    \"correct_digest\": \"invalid_digest_value\",\n    \"correct_signature\": \"invalid_signature_value\"\n  }\n}\n","test/src/test/resources/plugins/deprecations-update-center.json":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Dec 31, 1969\",\n    \"name\": \"core\",\n    \"url\": \"jenkins.war\",\n    \"version\": \"23\"\n  },\n  \"id\": \"default\",\n  \"plugins\": {\n    \"credentials\": {\n      \"buildDate\": \"Apr 04, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"icon-shim\",\n          \"optional\": false,\n          \"version\":\"2.0.2\"\n        }\n      ],\n      \"developers\": [],\n      \"excerpt\": \"This plugin allows you to store credentials in Jenkins.\",\n      \"gav\": \"org.jenkins-ci.plugins:credentials:1.27\",\n      \"labels\": [],\n      \"name\": \"credentials\",\n      \"previousTimestamp\": \"2016-03-24T01:19:58.00Z\",\n      \"previousVersion\": \"1.26\",\n      \"releaseTimestamp\": \"2016-04-04T16:26:54.00Z\",\n      \"requiredCore\": \"1.565\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"XWJpfL8B2x7qrISJg7IY2ZTPxFk=\",\n      \"title\": \"Credentials Plugin\",\n      \"url\": \"credentials.hpi\",\n      \"version\": \"1.27\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Credentials+Plugin\"\n    },\n    \"icon-shim\": {\n      \"buildDate\": \"Feb 23, 2016\",\n      \"dependencies\": [],\n      \"developers\": [],\n      \"excerpt\": \"This plugin allows other Jenkins plugins to take advantage of the <l:icon> tag. \",\n      \"gav\": \"org.jenkins-ci.plugins.icon-shim:icon-shim:2.0.3\",\n      \"labels\": [\"deprecated\"],\n      \"name\": \"icon-shim\",\n      \"previousTimestamp\": \"2016-01-09T20:01:12.00Z\",\n      \"previousVersion\": \"2.0.2\",\n      \"releaseTimestamp\": \"2016-02-23T23:08:18.00Z\",\n      \"requiredCore\": \"1.609\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"umtSUbNwIuqU6JGEQcBxqFt1X24=\",\n      \"title\": \"Icon Shim Plugin\",\n      \"url\": \"icon-shim.hpi\",\n      \"version\": \"2.0.3\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Icon+Shim+Plugin\"\n    },\n    \"token-macro\": {\n      \"buildDate\": \"Dec 14, 2015\",\n      \"dependencies\": [],\n      \"developers\": [],\n      \"excerpt\": \"This plugin adds reusable macro expansion capability for other plugins to use\",\n      \"gav\": \"org.jenkins-ci.plugins:token-macro:1.12.1\",\n      \"labels\": [\"deprecated\"],\n      \"name\": \"token-macro\",\n      \"previousTimestamp\": \"2015-12-11T08:27:18.00Z\",\n      \"previousVersion\": \"1.12\",\n      \"releaseTimestamp\": \"2015-12-14T18:07:56.00Z\",\n      \"requiredCore\": \"1.609.2\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"TV61PGo+od75URp3maLGUFJ768k=\",\n      \"title\": \"Token Macro Plugin\",\n      \"url\": \"token-macro.hpi\",\n      \"version\": \"1.9\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Token+Macro+Plugin\"\n    }\n  },\n  \"deprecations\": {\n      \"icon-shim\": { \"url\": \"https://www.jenkins.io/deprecations/icon-shim/\" },\n      \"variant\": { \"url\": \"https://www.jenkins.io/deprecations/variant/\" }\n  },\n  \"updateCenterVersion\": 1\n}\n);\n","test/src/test/resources/plugins/available-update-center.json":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", // has to be here because updateDirectly sniffs only very limited formats\n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"dummy2\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy2\",\n            \"wiki\": \"https://plugins.jenkins.io/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"ALowTitle\",\n            \"url\": \"http://nowhere.net/dummy2.hpi\",\n            \"version\": \"1.0\",\n            \"popularity\": \"1.0\"\n        },\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"wiki\": \"https://plugins.jenkins.io/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"TheHighTitle\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\",\n            \"popularity\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","test/src/test/resources/plugins/invalid-signature-update-center-core-cm.json":"{\n  \"updateCenterVersion\": 1,\n  \"core\": {\n    \"name\": \"core\",\n    \"version\": \"2.541\",\n    \"url\": \"http://updates.jenkins.io/download/war/2.541/jenkins.war\"\n  },\n  \"plugins\": {},\n  \"signature\": {\n    \"correct_digest\": \"scNImoAz/AONJTUC+jwpX1ik1Mg=\",\n    \"correct_digest512\": \"0442f8003c5b707bdd7f8f06c096d51c3da1ad5715946ad226a8e4c8ce85a71a4db1cf4f7bf9565220a7339a2103780ae75e85a08c18e9642165c9f296660e56\",\n    \"certificates\": [\n      \"MIIFhDCCA2wCCQDGSFE7A358zjANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkRFMRgwFgYDVQQKDA9DbG91ZEJlZXMsIEluYy4xFjAUBgNVBAMMDXVwZGF0ZS1jZW50ZXIxNTAzBgkqhkiG9w0BCQEWJm9wZXJhdGlvbnMrdXBkYXRlLWNlbnRlckBjbG91ZGJlZXMuY29tMB4XDTIwMDUyOTAxMjgxNFoXDTMwMDUyNzAxMjgxNFowgYMxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJERTEYMBYGA1UECgwPQ2xvdWRCZWVzLCBJbmMuMRYwFAYDVQQDDA11cGRhdGUtY2VudGVyMTUwMwYJKoZIhvcNAQkBFiZvcGVyYXRpb25zK3VwZGF0ZS1jZW50ZXJAY2xvdWRiZWVzLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJyeG1X+jhC6NdNTyYRP0iPBF8j1gt9BGsGfTktdwpHpHSfHWwn2S3SAkAGVpck6kOWudejHvKmaAHMEiON0T4RHLnOc0BRd5W/BOzyVgB0eytkjSANeB9UIRNuCZoUM8NdNCyAcr9fmsns6jVRzCwnuyxeXFvGYgikzoO/ZC0/vsyAHp/2AzvgTE/7tFuJYHuvQ8ACfSPRgSQ3rc0hpSnSVV1UqTwrE/1AIhEjisNRXc6eMxlStFIsVuRkdaJRr7pi6W0mFmQr2gFtDHJkqX2nwHqNPzuJ7AVF2VXlh4j7GecDxwVdtVKdQEuCxn7IbX8UbWLcA/IwBnR8ZaHUr1KER+LjTIjwXlQnv3wAoz3YqCvgvKlx1HVTtf/PVlJG0STiPHZtwSqJpgXjQ+XLXCW1gsevDR2fyyddxC5p21AvQ480SGY1cRuesTEpoZjTYW4jNJsb8JKhyyAM50GHYWIgCyCavgHH+da+J7kgSqVmBIgum9Ws4Mh6AQHTUcxozff3vIUnRU8B5Lg20q4UZqDrFHKxQMyvEFXBmGIsqw6EtPTKzPWIq/noq2YT4mrpi1iFDPd8phHuy7IIDqmHPP0GvcL9f/QUDysmVgOuOQShtFhA5ZX2KHJ4sjtPDzYq/EjStI+tytR10aV12a/iL4eBfNlhP0UiPVhw2hLg3xMLBAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAHGSLYRRZ032pmbwHY8yg9+z7P2TljaYA4dI5/WUmev0oNyEwEwcbMhhLq1yIG9bDjo65WFYyNijX7eJHGSTR2clRLRZ67N2z4hOkymgLbpXgCoyAr7Pgkl2sxz3lW/VPTN7ZFl37ZkbsUuSFy5BnNXkISh5bDATX9JCJCPYzdVKBbjd2kyMeiOz7Gf/SYOEBvp/vgz3gqv5ZLQIEKFmZT2imiELmfgO0uuVlCgJWU9PDGEb2MW4Td0v0hzL5aycYQSl0bAbiTSqofSIOUdniELYJEtn0G/tdxY5ZnlgEP8jdSNlsnESArjyxGJanwxzQdMps6MaTxew+tYPzjMACEQaLeNUHmLtlMRFaqWPcOj85XZ3qzBwwOESFq3NQu8NZcOJrNr84AHFkPnE90gSNaZlA2XJReioGViBmo421LypKobjbny0z2L2jvQ7lI23Hdt4DA34cB6dlPg/6Vi9PyhokeNTL5VZCGpU8WzhMoxq/4pNLawq2suE92OeYuWDz2v65OJWJe1EEXQhX5H8G1001pv2OD+p5xew/QfDxshCsi3hPVRSB1qVquMgmhOBCnq1j/ocGOubLKQ0WpeSUYDynVrfpvQ1rCW+Sbz0fEduMPrD8c+2+v/U6NFDxqZCtooRbtNQeKuyJYtKoB6VuUAWHOqi95lCirlplY2Mjljn\"\n    ],\n    \"correct_signature\": \"ZDSVZkFRPiIbwDkpwfj0B3B/PvGc5mNpNvR6tcxCn2LKDWKeYXu/MJzsna+3ElohT+QXzzvKvw5oiAkhvTQ0l9o/jOhBzMiS8dYl6uVebdb70DVgoLrNe02DqxXoMTkXLOnZ/tpGRrWxPhi2dMy6bUt5aBl6gGbiog3OSlA+TafO/KH4yxK5/0cv8kfUW3c6HopY5rRq4z6RUXTPaljO1iVE91w3QYrDahhHBBC3UPetfslEWSliTgckUFojfdX/67hR1921lgL2ITxGtOS4j+dO9ydUVAaY6McAU1kJVrljY9IwsLxMaENrAL7otXG2xKBBCskTNcrizODuyzIg7LHOOVX6/EIzTN+o9RZG4b5zxwQZq5NS4yldbPpXPZuXnezCWr8qndwK3pqbiwmvLiBcsFCrnz7e2ixiAs7c6ZY6srb5WScVywZeLHwhpISEBPZe4ejvWQRHaDanca15IKeqARJKL8H/Jti1aUHqrLkH92s8FWaEL25TrMXb5u2r15qpL6OCMP+5O2jEnVl0ajkkNb/BBqUPuPXsg5vo8tkuk7gylNrK0LSM/t49gdYGBE/Cp2GgvGwfhasM27Os+J1TnIs0Bqsl125CwWxa7aXql39JQ/t12ekAUZvgziTGY1LHO4V7YMWTdiBdr57LKudFpFJZGXsPMkupi8mtlCU=\",\n    \"correct_signature512\": \"0403e57342c6610922a4ca1c647b075923baa9d38ba50a9b5eb3fd2cd4154febf60434d3d9dc2e15db536128191f69a0bafe119cba7b7d887b8b0d38ebac0855da7b6f958afe06a48362cee018159628852fa593e58e56aa8cf94c978f344e906db8559b69d72971b918322e7108a23fb124022b2f442f73f12e5a34af0385295954f7347da4ff0faf33db8c2dc1c1684551a0018c30fd2d39117717b092c42e20c6d78506d89d942d30c66295c5e04cfd655259e4a4a263a85a7b3a89377ae067279989a164ab46ae34edbed7f722f3c4f2bbd9d59412559eeaed03ef5e743602c54d0222d010ce0c010576a682b9979654e976aa418deb0de5069139031e04a61d26904e70bdca2168dc434f5955c6f39f6c6fe45b6014702b5afedfa2f89763f2e43fbb82d47858a1fd0bd04bea05a4f23d207d28c3246a99c2b2ac84a4fa16da292148074afd358728a2844ef985bf9a1479d6cf1bb1d7acc48c9731e2a9906f8beac110d91c851736bfd12508ae08c669d89a74a347a764b1f4be5fe01829ab0f80e6da5e2abafeb045a50b066ec3d6a6a95254fdc57e898eaf91b48d8585ef74b9ab1feecea2583c37be77d7c295c5918d492e01515b76877508d8af3bedddf1f2c56453ffa88505df9b2d8865e5a9970af0875cbfa596afe10326befbea4970cb2160b59cbff683b351d0a3b872039934cfff668dfe92c3f4d4abd262\",\n    \"digest\": \"216DEgEmoe6+B+96+1RFOIKCqmY=\",\n    \"signature\": \"X4RsFd2sxBMy2BaUeW64hvzP+VUg/nS0KSoKnCo26nt5G5qXvJ9TVb9ifMuLdFnk2kPMGOh/NZ5rfPFdVhLPRkcpg9saAXYcMYj4Nfg6gzlgBjsGzcmaQ6ky2q2qTIEXGZcjKTql99uap9hMXKaXDdgcfVE22mV92dvASazz1KX3fM37sticmC6eJF+Fj1OFx2BPjzPaNKZyXuwqMe7X3SG70fY0bbcc6TfOXSHWOI3WS0T7N13Br0cD/kx+r8sKDv73kkx/anI0VxxaGXcttZ9M9q/ubqRDju6dLubXP+5rTzQmphpwwUPz4t4mv0Acp8/E35Rp5SELn45cUJTyb2anxPOVB84gKBaeN9G+fitEmQkEt2jLnidcKTbNfgPUXWAkUnCuPbl7W7zeRQ4dnEQoCfkswS3Q5qoE8R0d76G//R8p6oeQZL9akV4NHV9E22iu0l+eA8GTrX50TEApF1+iil/Y4CeHWyALBn/FYARig2L3W040O9GOPoBGpZ5qTFxA55es4h69ij84nt+uANJzypzRFV7DmhL97UKm4XV7ADB+UQ90pXvAoih510O0p1/67xdZcKx5URhmj53xOAn8WbvATzeu8/MqNnglmTcX+VKInVWjai4gtOg2UmaijUCt0CuCcLNyWpClk51p0Kfr7gYb4UKJuWSIfVzHaPY=\"\n  }\n}\n","test/src/test/resources/plugins/search-test-update-center2.json":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", \n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"secondary\",\n    \"plugins\": {\n\t\t\"hello-huston\": {\n\t\t\t\"buildDate\": \"Dec 17, 2008\",\n\t\t\t\"dependencies\": [],\n\t\t\t\"developers\": [],\n\t\t\t\"excerpt\": \"…\",\n\t\t\t\"name\": \"hello-huston\",\n\t\t\t\"requiredCore\": \"1.100\",\n\t\t\t\"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n\t\t\t\"title\": \"Hello Huston\",\n\t\t\t\"url\": \"http://nowhere.net/hello-huston.hpi\",\n\t\t\t\"version\": \"1.0\"\n\t\t},\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Dummy\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","test/src/test/resources/plugins/search-test-update-center1.json":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", \n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"credentials\": {\n\t    \"buildDate\": \"Apr 04, 2016\",\n\t    \"dependencies\": [\n                {\n\t\t    \"name\": \"icon-shim\",\n\t\t    \"optional\": false,\n\t\t    \"version\":\"2.0.2\"\n\t\t}\n\t    ],\n\t    \"developers\": [],\n\t    \"excerpt\": \"This plugin allows you to store credentials in Jenkins.\",\n\t    \"gav\": \"org.jenkins-ci.plugins:credentials:1.27\",\n\t    \"labels\": [],\n\t    \"name\": \"credentials\",\n\t    \"previousTimestamp\": \"2016-03-24T01:19:58.00Z\",\n\t    \"previousVersion\": \"1.26\",\n\t    \"releaseTimestamp\": \"2016-04-04T16:26:54.00Z\",\n\t    \"requiredCore\": \"1.565\",\n\t    \"scm\": \"github.com\",\n\t    \"sha1\": \"XWJpfL8B2x7qrISJg7IY2ZTPxFk=\",\n\t    \"title\": \"Credentials Plugin\",\n\t    \"url\": \"credentials.hpi\",\n\t    \"version\": \"1.27\",\n\t    \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Credentials+Plugin\"\n\t},\n\t\"icon-shim\": {\n\t    \"buildDate\": \"Feb 23, 2016\",\n\t    \"dependencies\": [],\n\t    \"developers\": [],\n\t    \"excerpt\": \"This plugin allows other Jenkins plugins to take advantage of the <l:icon> tag. \",\n\t    \"gav\": \"org.jenkins-ci.plugins.icon-shim:icon-shim:2.0.3\",\n\t    \"labels\": [\"ui\"],\n\t    \"name\": \"icon-shim\",\n\t    \"previousTimestamp\": \"2016-01-09T20:01:12.00Z\",\n\t    \"previousVersion\": \"2.0.2\",\n\t    \"releaseTimestamp\": \"2016-02-23T23:08:18.00Z\",\n\t    \"requiredCore\": \"1.609\",\n\t    \"scm\": \"github.com\",\n\t    \"sha1\": \"umtSUbNwIuqU6JGEQcBxqFt1X24=\",\n\t    \"title\": \"Icon Shim Plugin\",\n\t    \"url\": \"icon-shim.hpi\",\n\t    \"version\": \"2.0.3\", \n\t    \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Icon+Shim+Plugin\"\n\t},\n        \"token-macro\": {\n\t    \"buildDate\": \"Dec 14, 2015\",\n\t    \"dependencies\": [],\n\t    \"developers\": [],\n\t    \"excerpt\": \"This plugin adds reusable macro expansion capability for other plugins to use\",\n\t    \"gav\": \"org.jenkins-ci.plugins:token-macro:1.12.1\",\n\t    \"labels\": [],\n\t    \"name\": \"token-macro\",\n\t    \"previousTimestamp\": \"2015-12-11T08:27:18.00Z\",\n\t    \"previousVersion\": \"1.12\",\n\t    \"releaseTimestamp\": \"2015-12-14T18:07:56.00Z\",\n\t    \"requiredCore\": \"1.609.2\",\n\t    \"scm\": \"github.com\",\n\t    \"sha1\": \"TV61PGo+od75URp3maLGUFJ768k=\",\n\t    \"title\": \"Token Macro Plugin\",\n\t    \"url\": \"token-macro.hpi\",\n\t    \"version\": \"1.9\",\n\t    \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Token+Macro+Plugin\"\n\t},\n        \"hello-world\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"hello-=world\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Hello World\",\n            \"url\": \"http://nowhere.net/hello-world.hpi\",\n            \"version\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","test/src/test/resources/plugins/upload-test-update-center.json":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", \n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"dependee\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"gav\": \"org.jenkins-ci.plugins.dependencytest:dependee:0.0.2\",\n            \"labels\": [],\n            \"name\": \"dependee\",\n            \"requiredCore\": \"1.466\",\n            \"sha1\": \"2Axh5MnAFTnHml0V0ksrpYhMK1E=\",\n            \"sha256\": \"7XhzuS+CtvCQpG35Qj0gC1p0dlOg+kXXJpvWi7QGDKE=\",\n            \"title\": \"dependee\",\n            \"url\": \"dependee-0.0.2.hpi\",\n            \"version\": \"0.0.2\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","test/src/test/resources/plugins/warnings-update-center-malformed.json":"{\n  \"connectionCheckUrl\": \"http://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Dec 18, 2016\",\n    \"name\": \"core\",\n    \"sha1\": \"x4rDgtNYm9l7zJ16RVuxMRgGoQE=\",\n    \"url\": \"http://updates.jenkins-ci.org/download/war/2.37/jenkins.war\",\n    \"version\": \"2.37\"\n  },\n  \"id\": \"jenkins40494\",\n  \"plugins\": {\n    \"display-url-api\": {\n      \"buildDate\": \"Sep 22, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"junit\",\n          \"optional\": false,\n          \"version\": \"1.3\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"jdumay\",\n          \"email\": \"jdumay@cloudbees.com\",\n          \"name\": \"James Dumay\"\n        }\n      ],\n      \"excerpt\": \"\\\\\\\\  Provides the DisplayURLProvider extension point to provide alternate URLs for use in notifications.  URLs can be requested/extended for these UI locations:  * Root page. * Job. * Run. * Run changes. * Test result.  \",\n      \"gav\": \"org.jenkins-ci.plugins:display-url-api:0.5\",\n      \"labels\": [],\n      \"name\": \"display-url-api\",\n      \"previousTimestamp\": \"2016-09-22T09:35:08.00Z\",\n      \"previousVersion\": \"0.4\",\n      \"releaseTimestamp\": \"2016-09-22T10:42:00.00Z\",\n      \"requiredCore\": \"1.625.3\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"QEykyLSFuZTnFyHrzZEOgzSsYcU=\",\n      \"title\": \"Display URL API\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/display-url-api/0.5/display-url-api.hpi\",\n      \"version\": \"0.5\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Display+URL+API+Plugin\"\n    },\n    \"junit\": {\n      \"buildDate\": \"Oct 17, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"structs\",\n          \"optional\": false,\n          \"version\": \"1.2\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"ogondza\"\n        }\n      ],\n      \"excerpt\": \"Allows JUnit-format test results to be published.\",\n      \"gav\": \"org.jenkins-ci.plugins:junit:1.19\",\n      \"labels\": [\n        \"report\"\n      ],\n      \"name\": \"junit\",\n      \"previousTimestamp\": \"2016-08-08T15:10:34.00Z\",\n      \"previousVersion\": \"1.18\",\n      \"releaseTimestamp\": \"2016-10-17T12:15:20.00Z\",\n      \"requiredCore\": \"1.580.1\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"f3jcYlxz6/8PK43W3KL5LFtz7ro=\",\n      \"title\": \"JUnit Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/junit/1.19/junit.hpi\",\n      \"version\": \"1.19\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/JUnit+Plugin\"\n    },\n    \"mailer\": {\n      \"buildDate\": \"Sep 04, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"display-url-api\",\n          \"optional\": false,\n          \"version\": \"0.2\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"andresrc\"\n        }\n      ],\n      \"excerpt\": \"This plugin allows you to configure email notifications for build results. This is a break-out of the original core based email component. \",\n      \"gav\": \"org.jenkins-ci.plugins:mailer:1.18\",\n      \"labels\": [],\n      \"name\": \"mailer\",\n      \"previousTimestamp\": \"2016-04-20T08:46:22.00Z\",\n      \"previousVersion\": \"1.17\",\n      \"releaseTimestamp\": \"2016-09-04T09:14:16.00Z\",\n      \"requiredCore\": \"1.625.3\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"poG1EauZFM5lZE5hCBx5mqr/mMA=\",\n      \"title\": \"Jenkins Mailer Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/mailer/1.18/mailer.hpi\",\n      \"version\": \"1.18\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Mailer\"\n    },\n    \"extra-columns\": {\n      \"buildDate\": \"Apr 11, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"junit\",\n          \"optional\": false,\n          \"version\": \"1.11\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"fredg\",\n          \"name\": \"Fred G.\"\n        }\n      ],\n      \"excerpt\": \"This is a general listview-column plugin that currently contains the following columns: Test Result, Configure Project button, Disable/Enable Project button, Project Description, Build Description, SCM Type, Last/Current Build Console output, Job Type, Build Duration, Build Parameters.\",\n      \"gav\": \"org.jenkins-ci.plugins:extra-columns:1.17\",\n      \"labels\": [\n        \"listview-column\"\n      ],\n      \"name\": \"extra-columns\",\n      \"previousTimestamp\": \"2015-12-11T01:18:48.00Z\",\n      \"previousVersion\": \"1.16\",\n      \"releaseTimestamp\": \"2016-04-11T22:36:22.00Z\",\n      \"requiredCore\": \"1.475\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"8y9Y91n7/Aw47G3pCxzJzTd94J0=\",\n      \"title\": \"Extra Columns Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/extra-columns/1.17/extra-columns.hpi\",\n      \"version\": \"1.17\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Extra+Columns+Plugin\"\n    },\n    \"structs\": {\n      \"buildDate\": \"Aug 30, 2016\",\n      \"dependencies\": [],\n      \"developers\": [\n        {\n          \"developerId\": \"jglick\"\n        }\n      ],\n      \"excerpt\": \"Library plugin for DSL plugins that need concise names for Jenkins extensions\",\n      \"gav\": \"org.jenkins-ci.plugins:structs:1.5\",\n      \"labels\": [],\n      \"name\": \"structs\",\n      \"previousTimestamp\": \"2016-08-26T14:11:44.00Z\",\n      \"previousVersion\": \"1.4\",\n      \"releaseTimestamp\": \"2016-08-30T14:10:10.00Z\",\n      \"requiredCore\": \"1.580.1\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"fK+F0PEfSS//DOqmNJvX2rQYabo=\",\n      \"title\": \"Structs Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/structs/1.5/structs.hpi\",\n      \"version\": \"1.5\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Structs+plugin\"\n    }\n  },\n  \"warnings\": [\n    {\n      \"id\": \"SECURITY-208\",\n      \"type\": \"plugin\",\n      \"name\": \"google-login\",\n      \"message\": \"Authentication bypass vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2015-10-12\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.1\",\n          \"pattern\": \"1[.][01](|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-136\",\n      \"type\": \"plugin\",\n      \"name\": \"extra-columns\",\n      \"message\": \"Stored XSS vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-04-11\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.16\",\n          \"pattern\": \"1[.](\\\\d|1[0123456])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-258\",\n      \"type\": \"plugin\",\n      \"name\": \"extra-columns\",\n      \"message\": \"Groovy sandbox protection incomplete\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-04-11\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.18\",\n          \"pattern\": \"1[.](\\\\d|1[012345678])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-85\",\n      \"type\": \"plugin\",\n      \"name\": \"tap\",\n      \"message\": \"Path traversal vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-06-20\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.24\",\n          \"pattern\": \"1[.](\\\\d|1\\\\d|2[01234])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-278\",\n      \"type\": \"plugin\",\n      \"name\": \"image-gallery\",\n      \"message\": \"Path traversal vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-06-20\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.3\",\n          \"pattern\": \"(0[.].*|1[.][0123])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-290\",\n      \"type\": \"plugin\",\n      \"name\": \"build-failure-analyzer\",\n      \"message\": \"Cross-site scripting vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-06-20\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.15.0\",\n          \"pattern\": \"1[.](\\\\d|1[012345])[.]\\\\d+(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-305\",\n      \"type\": \"plugin\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.7.24\",\n          \"pattern\": \"1[.]7[.](\\\\d(|[.-].*)|24)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-309\",\n      \"type\": \"plugin\",\n      \"name\": \"cucumber-reports\",\n      \"message\": \"Plugin disables Content-Security-Policy for files served by Jenkins\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-07-27\",\n      \"versions\": [\n        {\n          \"firstVersion\": \"1.3.0\",\n          \"lastVersion\": \"2.5.1\",\n          \"pattern\": \"(1[.][34]|2[.][012345])(|[.-].*)\"\n        }\n      ]\n    }\n  ],\n  \"updateCenterVersion\": \"1\"\n}","test/src/test/resources/plugins/security3037-update-center.json":"updateCenter.post(\n{\n  \"connectionCheckUrl\": \"https://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Jan 31, 2023\",\n    \"name\": \"core\",\n    \"sha1\": \"TO8l3+wqx2hWtLWMHjmIOj+ERsk=\",\n    \"sha256\": \"BrXTCwJse5e6b/shXjv5edRJQRjxfJ/GbNrhgYcrZoU=\",\n    \"size\": 98362341,\n    \"url\": \"https://updates.jenkins.io/download/war/2.389/jenkins.war\",\n    \"version\": \"2.389\"\n  },\n  \"generationTimestamp\": \"2023-02-03T11:04:30Z\",\n  \"id\": \"Security3037\",\n  \"deprecations\": [],\n  \"plugins\": {\n    \"workflow-aggregator\": {\n      \"buildDate\": \"Jun 29, 2022\",\n      \"defaultBranch\": \"master\",\n      \"dependencies\": [\n        {\n          \"name\": \"pipeline-groovy-lib<img src=x onerror=alert(1)>\",\n          \"optional\": false,\n          \"version\": \"591.v3a_7f422b_d058<img src=x onerror=alert(1)>\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"johndoe<img src=x onerror=alert(1)>\",\n          \"name\": \"john doe<img src=x onerror=alert(1)>\"\n        }\n      ],\n      \"excerpt\": \"A suite of plugins that lets you orchestrate automation, simple or complex. See <a href=\\\"https://www.jenkins.io/solutions/pipeline/\\\" target=\\\"_blank\\\" rel=\\\"nofollow noopener noreferrer\\\">Pipeline as Code with Jenkins</a> for more details.\",\n      \"gav\": \"org.jenkins-ci.plugins.workflow:workflow-aggregator:590.v6a_d052e5a_a_b_5<img src=x onerror=alert(1)>\",\n      \"issueTrackers\": [\n        {\n          \"reportUrl\": \"https://www.jenkins.io/participate/report-issue/redirect/#21710<img src=x onerror=alert(1)>\",\n          \"type\": \"jira<img src=x onerror=alert(1)>\",\n          \"viewUrl\": \"https://issues.jenkins.io/issues/?jql=component=21710<img src=x onerror=alert(1)>\"\n        }\n      ],\n      \"labels\": [\n        \"cli<img src=x onerror=alert(1)>\",\n        \"misc\",\n        \"slaves\",\n        \"trigger\"\n      ],\n      \"name\": \"workflow-aggregator<img src=x onerror=alert(1)>\",\n      \"popularity\": 256809,\n      \"previousTimestamp\": \"2022-05-24T12:27:03.00Z<img src=x onerror=alert(1)>\",\n      \"previousVersion\": \"<img src=x onerror=alert(1)>581.v0c46fa_697ffd\",\n      \"releaseTimestamp\": \"2022-06-29T21:02:16.00Z<img src=x onerror=alert(1)>\",\n      \"requiredCore\": \"9999999<img src=x onerror=alert(1)>\",\n      \"scm\": \"https://github.com/jenkinsci/workflow-aggregator-plugin<img src=x onerror=alert(1)>\",\n      \"sha1\": \"6iNlKTnXvr4W+9Svwy1+ctyqgvo=<img src=x onerror=alert(1)>\",\n      \"sha256\": \"P0SFgnqOBFZjxkdKORiQUbrhdlfW5YU7tOpe85bfGWE=<img src=x onerror=alert(1)>\",\n      \"size\": 8282,\n      \"title\": \"Pipeline<img src=x onerror=alert(1)>\",\n      \"url\": \"https://updates.jenkins.io/download/plugins/workflow-aggregator/590.v6a_d052e5a_a_b_5/workflow-aggregator.hpi\",\n      \"version\": \"590.v6a_d052e5a_a_b_5<img src=x onerror=alert(1)>\",\n      \"wiki\": \"javascript:alert(1)\"\n    }\n  },\n  \"updateCenterVersion\": \"1\"\n});\n"},"files":{"test/src/test/resources/plugins/alternative-update-center.json":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", // has to be here because updateDirectly sniffs only very limited formats\n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"alternative\",\n    \"plugins\": {\n        \"tasks\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [{\"name\": \"lokadm\"}],\n            \"excerpt\": \"   This plug-in scans for open tasks in a specified set of files in the project modules   and visualizes the results.  \",\n            \"name\": \"tasks\",\n            \"wiki\": \"https://plugins.jenkins.io/tasks\",\n            \"requiredCore\": \"1.264\",\n            \"sha1\": \"wtzlciUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Jenkins Task Scanner Plug-in\",\n            \"url\": \"tasks.jpi\",\n            \"version\": \"2.23\"\n        },\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"wiki\": \"https://plugins.example.com/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Dummy\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\"\n        },\n        \"foo\": {\n            \"dependencies\": [],\n            \"name\": \"foo\",\n            \"wiki\": \"https://plugins.jenkins.io/foo\",\n            \"version\": \"1.0\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","test/src/test/resources/plugins/no-wiki-update-center.json":"updateCenter.post(\n{\n  \"connectionCheckUrl\": \"https://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Jun 20, 2026\",\n    \"name\": \"core\",\n    \"sha1\": \"dummy\",\n    \"sha256\": \"dummy\",\n    \"size\": 1,\n    \"url\": \"https://updates.jenkins.io/download/war/2.570/jenkins.war\",\n    \"version\": \"2.570\"\n  },\n  \"generationTimestamp\": \"2026-06-20T00:00:00Z\",\n  \"id\": \"NoWiki\",\n  \"deprecations\": [],\n  \"plugins\": {\n    \"plugin-without-wiki\": {\n      \"buildDate\": \"Jun 20, 2026\",\n      \"dependencies\": [],\n      \"excerpt\": \"A plugin without a wiki URL.\",\n      \"health\": 100,\n      \"name\": \"plugin-without-wiki\",\n      \"popularity\": 1,\n      \"releaseTimestamp\": \"2026-06-20T00:00:00.00Z\",\n      \"requiredCore\": \"2.0\",\n      \"sha1\": \"dummy\",\n      \"sha256\": \"dummy\",\n      \"title\": \"Plugin Without Wiki\",\n      \"url\": \"https://updates.jenkins.io/download/plugins/plugin-without-wiki/1.0/plugin-without-wiki.hpi\",\n      \"version\": \"1.0\"\n    }\n  },\n  \"updateCenterVersion\": \"1\"\n}\n);\n","test/src/test/resources/plugins/htmlpublisher-update-center.json":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", // has to be here because updateDirectly sniffs only very limited formats\n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"htmlpublisher\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [\n                {\n                    \"developerId\": \"mcrooney\",\n                    \"name\": \"Michael Rooney\"\n                }\n            ],\n            \"excerpt\": \"This plugin publishes HTML reports.\",\n            \"name\": \"htmlpublisher\",\n            \"wiki\": \"https://plugins.jenkins.io/htmlpublisher\",\n            \"requiredCore\": \"1.398\",\n            \"sha1\": \"tVSI0DVK02k9R3KV1M3A451Da3c=\",\n            \"title\": \"HTML Publisher\",\n            \"url\": \"htmlpublisher.jpi\",\n            \"version\": \"0.7\"\n        },\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"wiki\": \"https://plugins.jenkins.io/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Dummy\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","test/src/test/resources/plugins/invalid-signature-update-center.json":"{\n  \"updateCenterVersion\": \"1\",\n  \"core\": {\n    \"name\": \"core\",\n    \"version\": \"2.541\",\n    \"url\": \"http://updates.jenkins.io/download/war/2.541/jenkins.war\"\n  },\n  \"plugins\": {},\n  \"signature\": {\n    \"certificates\": [\n      \"InvalidBase64CertificateDataThatWillFailValidation==\"\n    ],\n    \"correct_digest\": \"invalid_digest_value\",\n    \"correct_signature\": \"invalid_signature_value\"\n  }\n}\n","test/src/test/resources/plugins/deprecations-update-center.json":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Dec 31, 1969\",\n    \"name\": \"core\",\n    \"url\": \"jenkins.war\",\n    \"version\": \"23\"\n  },\n  \"id\": \"default\",\n  \"plugins\": {\n    \"credentials\": {\n      \"buildDate\": \"Apr 04, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"icon-shim\",\n          \"optional\": false,\n          \"version\":\"2.0.2\"\n        }\n      ],\n      \"developers\": [],\n      \"excerpt\": \"This plugin allows you to store credentials in Jenkins.\",\n      \"gav\": \"org.jenkins-ci.plugins:credentials:1.27\",\n      \"labels\": [],\n      \"name\": \"credentials\",\n      \"previousTimestamp\": \"2016-03-24T01:19:58.00Z\",\n      \"previousVersion\": \"1.26\",\n      \"releaseTimestamp\": \"2016-04-04T16:26:54.00Z\",\n      \"requiredCore\": \"1.565\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"XWJpfL8B2x7qrISJg7IY2ZTPxFk=\",\n      \"title\": \"Credentials Plugin\",\n      \"url\": \"credentials.hpi\",\n      \"version\": \"1.27\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Credentials+Plugin\"\n    },\n    \"icon-shim\": {\n      \"buildDate\": \"Feb 23, 2016\",\n      \"dependencies\": [],\n      \"developers\": [],\n      \"excerpt\": \"This plugin allows other Jenkins plugins to take advantage of the <l:icon> tag. \",\n      \"gav\": \"org.jenkins-ci.plugins.icon-shim:icon-shim:2.0.3\",\n      \"labels\": [\"deprecated\"],\n      \"name\": \"icon-shim\",\n      \"previousTimestamp\": \"2016-01-09T20:01:12.00Z\",\n      \"previousVersion\": \"2.0.2\",\n      \"releaseTimestamp\": \"2016-02-23T23:08:18.00Z\",\n      \"requiredCore\": \"1.609\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"umtSUbNwIuqU6JGEQcBxqFt1X24=\",\n      \"title\": \"Icon Shim Plugin\",\n      \"url\": \"icon-shim.hpi\",\n      \"version\": \"2.0.3\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Icon+Shim+Plugin\"\n    },\n    \"token-macro\": {\n      \"buildDate\": \"Dec 14, 2015\",\n      \"dependencies\": [],\n      \"developers\": [],\n      \"excerpt\": \"This plugin adds reusable macro expansion capability for other plugins to use\",\n      \"gav\": \"org.jenkins-ci.plugins:token-macro:1.12.1\",\n      \"labels\": [\"deprecated\"],\n      \"name\": \"token-macro\",\n      \"previousTimestamp\": \"2015-12-11T08:27:18.00Z\",\n      \"previousVersion\": \"1.12\",\n      \"releaseTimestamp\": \"2015-12-14T18:07:56.00Z\",\n      \"requiredCore\": \"1.609.2\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"TV61PGo+od75URp3maLGUFJ768k=\",\n      \"title\": \"Token Macro Plugin\",\n      \"url\": \"token-macro.hpi\",\n      \"version\": \"1.9\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Token+Macro+Plugin\"\n    }\n  },\n  \"deprecations\": {\n      \"icon-shim\": { \"url\": \"https://www.jenkins.io/deprecations/icon-shim/\" },\n      \"variant\": { \"url\": \"https://www.jenkins.io/deprecations/variant/\" }\n  },\n  \"updateCenterVersion\": 1\n}\n);\n","test/src/test/resources/plugins/available-update-center.json":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", // has to be here because updateDirectly sniffs only very limited formats\n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"dummy2\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy2\",\n            \"wiki\": \"https://plugins.jenkins.io/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"ALowTitle\",\n            \"url\": \"http://nowhere.net/dummy2.hpi\",\n            \"version\": \"1.0\",\n            \"popularity\": \"1.0\"\n        },\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"wiki\": \"https://plugins.jenkins.io/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"TheHighTitle\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\",\n            \"popularity\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","test/src/test/resources/plugins/invalid-signature-update-center-core-cm.json":"{\n  \"updateCenterVersion\": 1,\n  \"core\": {\n    \"name\": \"core\",\n    \"version\": \"2.541\",\n    \"url\": \"http://updates.jenkins.io/download/war/2.541/jenkins.war\"\n  },\n  \"plugins\": {},\n  \"signature\": {\n    \"correct_digest\": \"scNImoAz/AONJTUC+jwpX1ik1Mg=\",\n    \"correct_digest512\": \"0442f8003c5b707bdd7f8f06c096d51c3da1ad5715946ad226a8e4c8ce85a71a4db1cf4f7bf9565220a7339a2103780ae75e85a08c18e9642165c9f296660e56\",\n    \"certificates\": [\n      \"MIIFhDCCA2wCCQDGSFE7A358zjANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkRFMRgwFgYDVQQKDA9DbG91ZEJlZXMsIEluYy4xFjAUBgNVBAMMDXVwZGF0ZS1jZW50ZXIxNTAzBgkqhkiG9w0BCQEWJm9wZXJhdGlvbnMrdXBkYXRlLWNlbnRlckBjbG91ZGJlZXMuY29tMB4XDTIwMDUyOTAxMjgxNFoXDTMwMDUyNzAxMjgxNFowgYMxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJERTEYMBYGA1UECgwPQ2xvdWRCZWVzLCBJbmMuMRYwFAYDVQQDDA11cGRhdGUtY2VudGVyMTUwMwYJKoZIhvcNAQkBFiZvcGVyYXRpb25zK3VwZGF0ZS1jZW50ZXJAY2xvdWRiZWVzLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJyeG1X+jhC6NdNTyYRP0iPBF8j1gt9BGsGfTktdwpHpHSfHWwn2S3SAkAGVpck6kOWudejHvKmaAHMEiON0T4RHLnOc0BRd5W/BOzyVgB0eytkjSANeB9UIRNuCZoUM8NdNCyAcr9fmsns6jVRzCwnuyxeXFvGYgikzoO/ZC0/vsyAHp/2AzvgTE/7tFuJYHuvQ8ACfSPRgSQ3rc0hpSnSVV1UqTwrE/1AIhEjisNRXc6eMxlStFIsVuRkdaJRr7pi6W0mFmQr2gFtDHJkqX2nwHqNPzuJ7AVF2VXlh4j7GecDxwVdtVKdQEuCxn7IbX8UbWLcA/IwBnR8ZaHUr1KER+LjTIjwXlQnv3wAoz3YqCvgvKlx1HVTtf/PVlJG0STiPHZtwSqJpgXjQ+XLXCW1gsevDR2fyyddxC5p21AvQ480SGY1cRuesTEpoZjTYW4jNJsb8JKhyyAM50GHYWIgCyCavgHH+da+J7kgSqVmBIgum9Ws4Mh6AQHTUcxozff3vIUnRU8B5Lg20q4UZqDrFHKxQMyvEFXBmGIsqw6EtPTKzPWIq/noq2YT4mrpi1iFDPd8phHuy7IIDqmHPP0GvcL9f/QUDysmVgOuOQShtFhA5ZX2KHJ4sjtPDzYq/EjStI+tytR10aV12a/iL4eBfNlhP0UiPVhw2hLg3xMLBAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAHGSLYRRZ032pmbwHY8yg9+z7P2TljaYA4dI5/WUmev0oNyEwEwcbMhhLq1yIG9bDjo65WFYyNijX7eJHGSTR2clRLRZ67N2z4hOkymgLbpXgCoyAr7Pgkl2sxz3lW/VPTN7ZFl37ZkbsUuSFy5BnNXkISh5bDATX9JCJCPYzdVKBbjd2kyMeiOz7Gf/SYOEBvp/vgz3gqv5ZLQIEKFmZT2imiELmfgO0uuVlCgJWU9PDGEb2MW4Td0v0hzL5aycYQSl0bAbiTSqofSIOUdniELYJEtn0G/tdxY5ZnlgEP8jdSNlsnESArjyxGJanwxzQdMps6MaTxew+tYPzjMACEQaLeNUHmLtlMRFaqWPcOj85XZ3qzBwwOESFq3NQu8NZcOJrNr84AHFkPnE90gSNaZlA2XJReioGViBmo421LypKobjbny0z2L2jvQ7lI23Hdt4DA34cB6dlPg/6Vi9PyhokeNTL5VZCGpU8WzhMoxq/4pNLawq2suE92OeYuWDz2v65OJWJe1EEXQhX5H8G1001pv2OD+p5xew/QfDxshCsi3hPVRSB1qVquMgmhOBCnq1j/ocGOubLKQ0WpeSUYDynVrfpvQ1rCW+Sbz0fEduMPrD8c+2+v/U6NFDxqZCtooRbtNQeKuyJYtKoB6VuUAWHOqi95lCirlplY2Mjljn\"\n    ],\n    \"correct_signature\": \"ZDSVZkFRPiIbwDkpwfj0B3B/PvGc5mNpNvR6tcxCn2LKDWKeYXu/MJzsna+3ElohT+QXzzvKvw5oiAkhvTQ0l9o/jOhBzMiS8dYl6uVebdb70DVgoLrNe02DqxXoMTkXLOnZ/tpGRrWxPhi2dMy6bUt5aBl6gGbiog3OSlA+TafO/KH4yxK5/0cv8kfUW3c6HopY5rRq4z6RUXTPaljO1iVE91w3QYrDahhHBBC3UPetfslEWSliTgckUFojfdX/67hR1921lgL2ITxGtOS4j+dO9ydUVAaY6McAU1kJVrljY9IwsLxMaENrAL7otXG2xKBBCskTNcrizODuyzIg7LHOOVX6/EIzTN+o9RZG4b5zxwQZq5NS4yldbPpXPZuXnezCWr8qndwK3pqbiwmvLiBcsFCrnz7e2ixiAs7c6ZY6srb5WScVywZeLHwhpISEBPZe4ejvWQRHaDanca15IKeqARJKL8H/Jti1aUHqrLkH92s8FWaEL25TrMXb5u2r15qpL6OCMP+5O2jEnVl0ajkkNb/BBqUPuPXsg5vo8tkuk7gylNrK0LSM/t49gdYGBE/Cp2GgvGwfhasM27Os+J1TnIs0Bqsl125CwWxa7aXql39JQ/t12ekAUZvgziTGY1LHO4V7YMWTdiBdr57LKudFpFJZGXsPMkupi8mtlCU=\",\n    \"correct_signature512\": \"0403e57342c6610922a4ca1c647b075923baa9d38ba50a9b5eb3fd2cd4154febf60434d3d9dc2e15db536128191f69a0bafe119cba7b7d887b8b0d38ebac0855da7b6f958afe06a48362cee018159628852fa593e58e56aa8cf94c978f344e906db8559b69d72971b918322e7108a23fb124022b2f442f73f12e5a34af0385295954f7347da4ff0faf33db8c2dc1c1684551a0018c30fd2d39117717b092c42e20c6d78506d89d942d30c66295c5e04cfd655259e4a4a263a85a7b3a89377ae067279989a164ab46ae34edbed7f722f3c4f2bbd9d59412559eeaed03ef5e743602c54d0222d010ce0c010576a682b9979654e976aa418deb0de5069139031e04a61d26904e70bdca2168dc434f5955c6f39f6c6fe45b6014702b5afedfa2f89763f2e43fbb82d47858a1fd0bd04bea05a4f23d207d28c3246a99c2b2ac84a4fa16da292148074afd358728a2844ef985bf9a1479d6cf1bb1d7acc48c9731e2a9906f8beac110d91c851736bfd12508ae08c669d89a74a347a764b1f4be5fe01829ab0f80e6da5e2abafeb045a50b066ec3d6a6a95254fdc57e898eaf91b48d8585ef74b9ab1feecea2583c37be77d7c295c5918d492e01515b76877508d8af3bedddf1f2c56453ffa88505df9b2d8865e5a9970af0875cbfa596afe10326befbea4970cb2160b59cbff683b351d0a3b872039934cfff668dfe92c3f4d4abd262\",\n    \"digest\": \"216DEgEmoe6+B+96+1RFOIKCqmY=\",\n    \"signature\": \"X4RsFd2sxBMy2BaUeW64hvzP+VUg/nS0KSoKnCo26nt5G5qXvJ9TVb9ifMuLdFnk2kPMGOh/NZ5rfPFdVhLPRkcpg9saAXYcMYj4Nfg6gzlgBjsGzcmaQ6ky2q2qTIEXGZcjKTql99uap9hMXKaXDdgcfVE22mV92dvASazz1KX3fM37sticmC6eJF+Fj1OFx2BPjzPaNKZyXuwqMe7X3SG70fY0bbcc6TfOXSHWOI3WS0T7N13Br0cD/kx+r8sKDv73kkx/anI0VxxaGXcttZ9M9q/ubqRDju6dLubXP+5rTzQmphpwwUPz4t4mv0Acp8/E35Rp5SELn45cUJTyb2anxPOVB84gKBaeN9G+fitEmQkEt2jLnidcKTbNfgPUXWAkUnCuPbl7W7zeRQ4dnEQoCfkswS3Q5qoE8R0d76G//R8p6oeQZL9akV4NHV9E22iu0l+eA8GTrX50TEApF1+iil/Y4CeHWyALBn/FYARig2L3W040O9GOPoBGpZ5qTFxA55es4h69ij84nt+uANJzypzRFV7DmhL97UKm4XV7ADB+UQ90pXvAoih510O0p1/67xdZcKx5URhmj53xOAn8WbvATzeu8/MqNnglmTcX+VKInVWjai4gtOg2UmaijUCt0CuCcLNyWpClk51p0Kfr7gYb4UKJuWSIfVzHaPY=\"\n  }\n}\n","test/src/test/resources/plugins/search-test-update-center2.json":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", \n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"secondary\",\n    \"plugins\": {\n\t\t\"hello-huston\": {\n\t\t\t\"buildDate\": \"Dec 17, 2008\",\n\t\t\t\"dependencies\": [],\n\t\t\t\"developers\": [],\n\t\t\t\"excerpt\": \"…\",\n\t\t\t\"name\": \"hello-huston\",\n\t\t\t\"requiredCore\": \"1.100\",\n\t\t\t\"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n\t\t\t\"title\": \"Hello Huston\",\n\t\t\t\"url\": \"http://nowhere.net/hello-huston.hpi\",\n\t\t\t\"version\": \"1.0\"\n\t\t},\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Dummy\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","test/src/test/resources/plugins/search-test-update-center1.json":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", \n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"credentials\": {\n\t    \"buildDate\": \"Apr 04, 2016\",\n\t    \"dependencies\": [\n                {\n\t\t    \"name\": \"icon-shim\",\n\t\t    \"optional\": false,\n\t\t    \"version\":\"2.0.2\"\n\t\t}\n\t    ],\n\t    \"developers\": [],\n\t    \"excerpt\": \"This plugin allows you to store credentials in Jenkins.\",\n\t    \"gav\": \"org.jenkins-ci.plugins:credentials:1.27\",\n\t    \"labels\": [],\n\t    \"name\": \"credentials\",\n\t    \"previousTimestamp\": \"2016-03-24T01:19:58.00Z\",\n\t    \"previousVersion\": \"1.26\",\n\t    \"releaseTimestamp\": \"2016-04-04T16:26:54.00Z\",\n\t    \"requiredCore\": \"1.565\",\n\t    \"scm\": \"github.com\",\n\t    \"sha1\": \"XWJpfL8B2x7qrISJg7IY2ZTPxFk=\",\n\t    \"title\": \"Credentials Plugin\",\n\t    \"url\": \"credentials.hpi\",\n\t    \"version\": \"1.27\",\n\t    \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Credentials+Plugin\"\n\t},\n\t\"icon-shim\": {\n\t    \"buildDate\": \"Feb 23, 2016\",\n\t    \"dependencies\": [],\n\t    \"developers\": [],\n\t    \"excerpt\": \"This plugin allows other Jenkins plugins to take advantage of the <l:icon> tag. \",\n\t    \"gav\": \"org.jenkins-ci.plugins.icon-shim:icon-shim:2.0.3\",\n\t    \"labels\": [\"ui\"],\n\t    \"name\": \"icon-shim\",\n\t    \"previousTimestamp\": \"2016-01-09T20:01:12.00Z\",\n\t    \"previousVersion\": \"2.0.2\",\n\t    \"releaseTimestamp\": \"2016-02-23T23:08:18.00Z\",\n\t    \"requiredCore\": \"1.609\",\n\t    \"scm\": \"github.com\",\n\t    \"sha1\": \"umtSUbNwIuqU6JGEQcBxqFt1X24=\",\n\t    \"title\": \"Icon Shim Plugin\",\n\t    \"url\": \"icon-shim.hpi\",\n\t    \"version\": \"2.0.3\", \n\t    \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Icon+Shim+Plugin\"\n\t},\n        \"token-macro\": {\n\t    \"buildDate\": \"Dec 14, 2015\",\n\t    \"dependencies\": [],\n\t    \"developers\": [],\n\t    \"excerpt\": \"This plugin adds reusable macro expansion capability for other plugins to use\",\n\t    \"gav\": \"org.jenkins-ci.plugins:token-macro:1.12.1\",\n\t    \"labels\": [],\n\t    \"name\": \"token-macro\",\n\t    \"previousTimestamp\": \"2015-12-11T08:27:18.00Z\",\n\t    \"previousVersion\": \"1.12\",\n\t    \"releaseTimestamp\": \"2015-12-14T18:07:56.00Z\",\n\t    \"requiredCore\": \"1.609.2\",\n\t    \"scm\": \"github.com\",\n\t    \"sha1\": \"TV61PGo+od75URp3maLGUFJ768k=\",\n\t    \"title\": \"Token Macro Plugin\",\n\t    \"url\": \"token-macro.hpi\",\n\t    \"version\": \"1.9\",\n\t    \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Token+Macro+Plugin\"\n\t},\n        \"hello-world\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"hello-=world\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Hello World\",\n            \"url\": \"http://nowhere.net/hello-world.hpi\",\n            \"version\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","test/src/test/resources/plugins/upload-test-update-center.json":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", \n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"dependee\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"gav\": \"org.jenkins-ci.plugins.dependencytest:dependee:0.0.2\",\n            \"labels\": [],\n            \"name\": \"dependee\",\n            \"requiredCore\": \"1.466\",\n            \"sha1\": \"2Axh5MnAFTnHml0V0ksrpYhMK1E=\",\n            \"sha256\": \"7XhzuS+CtvCQpG35Qj0gC1p0dlOg+kXXJpvWi7QGDKE=\",\n            \"title\": \"dependee\",\n            \"url\": \"dependee-0.0.2.hpi\",\n            \"version\": \"0.0.2\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","test/src/test/resources/plugins/warnings-update-center-malformed.json":"{\n  \"connectionCheckUrl\": \"http://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Dec 18, 2016\",\n    \"name\": \"core\",\n    \"sha1\": \"x4rDgtNYm9l7zJ16RVuxMRgGoQE=\",\n    \"url\": \"http://updates.jenkins-ci.org/download/war/2.37/jenkins.war\",\n    \"version\": \"2.37\"\n  },\n  \"id\": \"jenkins40494\",\n  \"plugins\": {\n    \"display-url-api\": {\n      \"buildDate\": \"Sep 22, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"junit\",\n          \"optional\": false,\n          \"version\": \"1.3\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"jdumay\",\n          \"email\": \"jdumay@cloudbees.com\",\n          \"name\": \"James Dumay\"\n        }\n      ],\n      \"excerpt\": \"\\\\\\\\  Provides the DisplayURLProvider extension point to provide alternate URLs for use in notifications.  URLs can be requested/extended for these UI locations:  * Root page. * Job. * Run. * Run changes. * Test result.  \",\n      \"gav\": \"org.jenkins-ci.plugins:display-url-api:0.5\",\n      \"labels\": [],\n      \"name\": \"display-url-api\",\n      \"previousTimestamp\": \"2016-09-22T09:35:08.00Z\",\n      \"previousVersion\": \"0.4\",\n      \"releaseTimestamp\": \"2016-09-22T10:42:00.00Z\",\n      \"requiredCore\": \"1.625.3\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"QEykyLSFuZTnFyHrzZEOgzSsYcU=\",\n      \"title\": \"Display URL API\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/display-url-api/0.5/display-url-api.hpi\",\n      \"version\": \"0.5\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Display+URL+API+Plugin\"\n    },\n    \"junit\": {\n      \"buildDate\": \"Oct 17, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"structs\",\n          \"optional\": false,\n          \"version\": \"1.2\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"ogondza\"\n        }\n      ],\n      \"excerpt\": \"Allows JUnit-format test results to be published.\",\n      \"gav\": \"org.jenkins-ci.plugins:junit:1.19\",\n      \"labels\": [\n        \"report\"\n      ],\n      \"name\": \"junit\",\n      \"previousTimestamp\": \"2016-08-08T15:10:34.00Z\",\n      \"previousVersion\": \"1.18\",\n      \"releaseTimestamp\": \"2016-10-17T12:15:20.00Z\",\n      \"requiredCore\": \"1.580.1\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"f3jcYlxz6/8PK43W3KL5LFtz7ro=\",\n      \"title\": \"JUnit Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/junit/1.19/junit.hpi\",\n      \"version\": \"1.19\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/JUnit+Plugin\"\n    },\n    \"mailer\": {\n      \"buildDate\": \"Sep 04, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"display-url-api\",\n          \"optional\": false,\n          \"version\": \"0.2\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"andresrc\"\n        }\n      ],\n      \"excerpt\": \"This plugin allows you to configure email notifications for build results. This is a break-out of the original core based email component. \",\n      \"gav\": \"org.jenkins-ci.plugins:mailer:1.18\",\n      \"labels\": [],\n      \"name\": \"mailer\",\n      \"previousTimestamp\": \"2016-04-20T08:46:22.00Z\",\n      \"previousVersion\": \"1.17\",\n      \"releaseTimestamp\": \"2016-09-04T09:14:16.00Z\",\n      \"requiredCore\": \"1.625.3\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"poG1EauZFM5lZE5hCBx5mqr/mMA=\",\n      \"title\": \"Jenkins Mailer Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/mailer/1.18/mailer.hpi\",\n      \"version\": \"1.18\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Mailer\"\n    },\n    \"extra-columns\": {\n      \"buildDate\": \"Apr 11, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"junit\",\n          \"optional\": false,\n          \"version\": \"1.11\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"fredg\",\n          \"name\": \"Fred G.\"\n        }\n      ],\n      \"excerpt\": \"This is a general listview-column plugin that currently contains the following columns: Test Result, Configure Project button, Disable/Enable Project button, Project Description, Build Description, SCM Type, Last/Current Build Console output, Job Type, Build Duration, Build Parameters.\",\n      \"gav\": \"org.jenkins-ci.plugins:extra-columns:1.17\",\n      \"labels\": [\n        \"listview-column\"\n      ],\n      \"name\": \"extra-columns\",\n      \"previousTimestamp\": \"2015-12-11T01:18:48.00Z\",\n      \"previousVersion\": \"1.16\",\n      \"releaseTimestamp\": \"2016-04-11T22:36:22.00Z\",\n      \"requiredCore\": \"1.475\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"8y9Y91n7/Aw47G3pCxzJzTd94J0=\",\n      \"title\": \"Extra Columns Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/extra-columns/1.17/extra-columns.hpi\",\n      \"version\": \"1.17\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Extra+Columns+Plugin\"\n    },\n    \"structs\": {\n      \"buildDate\": \"Aug 30, 2016\",\n      \"dependencies\": [],\n      \"developers\": [\n        {\n          \"developerId\": \"jglick\"\n        }\n      ],\n      \"excerpt\": \"Library plugin for DSL plugins that need concise names for Jenkins extensions\",\n      \"gav\": \"org.jenkins-ci.plugins:structs:1.5\",\n      \"labels\": [],\n      \"name\": \"structs\",\n      \"previousTimestamp\": \"2016-08-26T14:11:44.00Z\",\n      \"previousVersion\": \"1.4\",\n      \"releaseTimestamp\": \"2016-08-30T14:10:10.00Z\",\n      \"requiredCore\": \"1.580.1\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"fK+F0PEfSS//DOqmNJvX2rQYabo=\",\n      \"title\": \"Structs Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/structs/1.5/structs.hpi\",\n      \"version\": \"1.5\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Structs+plugin\"\n    }\n  },\n  \"warnings\": [\n    {\n      \"id\": \"SECURITY-208\",\n      \"type\": \"plugin\",\n      \"name\": \"google-login\",\n      \"message\": \"Authentication bypass vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2015-10-12\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.1\",\n          \"pattern\": \"1[.][01](|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-136\",\n      \"type\": \"plugin\",\n      \"name\": \"extra-columns\",\n      \"message\": \"Stored XSS vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-04-11\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.16\",\n          \"pattern\": \"1[.](\\\\d|1[0123456])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-258\",\n      \"type\": \"plugin\",\n      \"name\": \"extra-columns\",\n      \"message\": \"Groovy sandbox protection incomplete\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-04-11\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.18\",\n          \"pattern\": \"1[.](\\\\d|1[012345678])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-85\",\n      \"type\": \"plugin\",\n      \"name\": \"tap\",\n      \"message\": \"Path traversal vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-06-20\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.24\",\n          \"pattern\": \"1[.](\\\\d|1\\\\d|2[01234])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-278\",\n      \"type\": \"plugin\",\n      \"name\": \"image-gallery\",\n      \"message\": \"Path traversal vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-06-20\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.3\",\n          \"pattern\": \"(0[.].*|1[.][0123])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-290\",\n      \"type\": \"plugin\",\n      \"name\": \"build-failure-analyzer\",\n      \"message\": \"Cross-site scripting vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-06-20\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.15.0\",\n          \"pattern\": \"1[.](\\\\d|1[012345])[.]\\\\d+(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-305\",\n      \"type\": \"plugin\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.7.24\",\n          \"pattern\": \"1[.]7[.](\\\\d(|[.-].*)|24)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-309\",\n      \"type\": \"plugin\",\n      \"name\": \"cucumber-reports\",\n      \"message\": \"Plugin disables Content-Security-Policy for files served by Jenkins\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-07-27\",\n      \"versions\": [\n        {\n          \"firstVersion\": \"1.3.0\",\n          \"lastVersion\": \"2.5.1\",\n          \"pattern\": \"(1[.][34]|2[.][012345])(|[.-].*)\"\n        }\n      ]\n    }\n  ],\n  \"updateCenterVersion\": \"1\"\n}","test/src/test/resources/plugins/security3037-update-center.json":"updateCenter.post(\n{\n  \"connectionCheckUrl\": \"https://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Jan 31, 2023\",\n    \"name\": \"core\",\n    \"sha1\": \"TO8l3+wqx2hWtLWMHjmIOj+ERsk=\",\n    \"sha256\": \"BrXTCwJse5e6b/shXjv5edRJQRjxfJ/GbNrhgYcrZoU=\",\n    \"size\": 98362341,\n    \"url\": \"https://updates.jenkins.io/download/war/2.389/jenkins.war\",\n    \"version\": \"2.389\"\n  },\n  \"generationTimestamp\": \"2023-02-03T11:04:30Z\",\n  \"id\": \"Security3037\",\n  \"deprecations\": [],\n  \"plugins\": {\n    \"workflow-aggregator\": {\n      \"buildDate\": \"Jun 29, 2022\",\n      \"defaultBranch\": \"master\",\n      \"dependencies\": [\n        {\n          \"name\": \"pipeline-groovy-lib<img src=x onerror=alert(1)>\",\n          \"optional\": false,\n          \"version\": \"591.v3a_7f422b_d058<img src=x onerror=alert(1)>\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"johndoe<img src=x onerror=alert(1)>\",\n          \"name\": \"john doe<img src=x onerror=alert(1)>\"\n        }\n      ],\n      \"excerpt\": \"A suite of plugins that lets you orchestrate automation, simple or complex. See <a href=\\\"https://www.jenkins.io/solutions/pipeline/\\\" target=\\\"_blank\\\" rel=\\\"nofollow noopener noreferrer\\\">Pipeline as Code with Jenkins</a> for more details.\",\n      \"gav\": \"org.jenkins-ci.plugins.workflow:workflow-aggregator:590.v6a_d052e5a_a_b_5<img src=x onerror=alert(1)>\",\n      \"issueTrackers\": [\n        {\n          \"reportUrl\": \"https://www.jenkins.io/participate/report-issue/redirect/#21710<img src=x onerror=alert(1)>\",\n          \"type\": \"jira<img src=x onerror=alert(1)>\",\n          \"viewUrl\": \"https://issues.jenkins.io/issues/?jql=component=21710<img src=x onerror=alert(1)>\"\n        }\n      ],\n      \"labels\": [\n        \"cli<img src=x onerror=alert(1)>\",\n        \"misc\",\n        \"slaves\",\n        \"trigger\"\n      ],\n      \"name\": \"workflow-aggregator<img src=x onerror=alert(1)>\",\n      \"popularity\": 256809,\n      \"previousTimestamp\": \"2022-05-24T12:27:03.00Z<img src=x onerror=alert(1)>\",\n      \"previousVersion\": \"<img src=x onerror=alert(1)>581.v0c46fa_697ffd\",\n      \"releaseTimestamp\": \"2022-06-29T21:02:16.00Z<img src=x onerror=alert(1)>\",\n      \"requiredCore\": \"9999999<img src=x onerror=alert(1)>\",\n      \"scm\": \"https://github.com/jenkinsci/workflow-aggregator-plugin<img src=x onerror=alert(1)>\",\n      \"sha1\": \"6iNlKTnXvr4W+9Svwy1+ctyqgvo=<img src=x onerror=alert(1)>\",\n      \"sha256\": \"P0SFgnqOBFZjxkdKORiQUbrhdlfW5YU7tOpe85bfGWE=<img src=x onerror=alert(1)>\",\n      \"size\": 8282,\n      \"title\": \"Pipeline<img src=x onerror=alert(1)>\",\n      \"url\": \"https://updates.jenkins.io/download/plugins/workflow-aggregator/590.v6a_d052e5a_a_b_5/workflow-aggregator.hpi\",\n      \"version\": \"590.v6a_d052e5a_a_b_5<img src=x onerror=alert(1)>\",\n      \"wiki\": \"javascript:alert(1)\"\n    }\n  },\n  \"updateCenterVersion\": \"1\"\n});\n"},"items":[{"name":"alternative-update-center.json","path":"test/src/test/resources/plugins/alternative-update-center.json","rawUrl":"https://raw.githubusercontent.com/jenkinsci/jenkins/HEAD/test/src/test/resources/plugins/alternative-update-center.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", // has to be here because updateDirectly sniffs only very limited formats\n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"alternative\",\n    \"plugins\": {\n        \"tasks\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [{\"name\": \"lokadm\"}],\n            \"excerpt\": \"   This plug-in scans for open tasks in a specified set of files in the project modules   and visualizes the results.  \",\n            \"name\": \"tasks\",\n            \"wiki\": \"https://plugins.jenkins.io/tasks\",\n            \"requiredCore\": \"1.264\",\n            \"sha1\": \"wtzlciUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Jenkins Task Scanner Plug-in\",\n            \"url\": \"tasks.jpi\",\n            \"version\": \"2.23\"\n        },\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"wiki\": \"https://plugins.example.com/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Dummy\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\"\n        },\n        \"foo\": {\n            \"dependencies\": [],\n            \"name\": \"foo\",\n            \"wiki\": \"https://plugins.jenkins.io/foo\",\n            \"version\": \"1.0\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","isInternal":false,"tokens":439,"sizeBytes":1615},{"name":"available-update-center.json","path":"test/src/test/resources/plugins/available-update-center.json","rawUrl":"https://raw.githubusercontent.com/jenkinsci/jenkins/HEAD/test/src/test/resources/plugins/available-update-center.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", // has to be here because updateDirectly sniffs only very limited formats\n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"dummy2\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy2\",\n            \"wiki\": \"https://plugins.jenkins.io/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"ALowTitle\",\n            \"url\": \"http://nowhere.net/dummy2.hpi\",\n            \"version\": \"1.0\",\n            \"popularity\": \"1.0\"\n        },\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"wiki\": \"https://plugins.jenkins.io/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"TheHighTitle\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\",\n            \"popularity\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","isInternal":false,"tokens":382,"sizeBytes":1329},{"name":"deprecations-update-center.json","path":"test/src/test/resources/plugins/deprecations-update-center.json","rawUrl":"https://raw.githubusercontent.com/jenkinsci/jenkins/HEAD/test/src/test/resources/plugins/deprecations-update-center.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Dec 31, 1969\",\n    \"name\": \"core\",\n    \"url\": \"jenkins.war\",\n    \"version\": \"23\"\n  },\n  \"id\": \"default\",\n  \"plugins\": {\n    \"credentials\": {\n      \"buildDate\": \"Apr 04, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"icon-shim\",\n          \"optional\": false,\n          \"version\":\"2.0.2\"\n        }\n      ],\n      \"developers\": [],\n      \"excerpt\": \"This plugin allows you to store credentials in Jenkins.\",\n      \"gav\": \"org.jenkins-ci.plugins:credentials:1.27\",\n      \"labels\": [],\n      \"name\": \"credentials\",\n      \"previousTimestamp\": \"2016-03-24T01:19:58.00Z\",\n      \"previousVersion\": \"1.26\",\n      \"releaseTimestamp\": \"2016-04-04T16:26:54.00Z\",\n      \"requiredCore\": \"1.565\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"XWJpfL8B2x7qrISJg7IY2ZTPxFk=\",\n      \"title\": \"Credentials Plugin\",\n      \"url\": \"credentials.hpi\",\n      \"version\": \"1.27\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Credentials+Plugin\"\n    },\n    \"icon-shim\": {\n      \"buildDate\": \"Feb 23, 2016\",\n      \"dependencies\": [],\n      \"developers\": [],\n      \"excerpt\": \"This plugin allows other Jenkins plugins to take advantage of the <l:icon> tag. \",\n      \"gav\": \"org.jenkins-ci.plugins.icon-shim:icon-shim:2.0.3\",\n      \"labels\": [\"deprecated\"],\n      \"name\": \"icon-shim\",\n      \"previousTimestamp\": \"2016-01-09T20:01:12.00Z\",\n      \"previousVersion\": \"2.0.2\",\n      \"releaseTimestamp\": \"2016-02-23T23:08:18.00Z\",\n      \"requiredCore\": \"1.609\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"umtSUbNwIuqU6JGEQcBxqFt1X24=\",\n      \"title\": \"Icon Shim Plugin\",\n      \"url\": \"icon-shim.hpi\",\n      \"version\": \"2.0.3\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Icon+Shim+Plugin\"\n    },\n    \"token-macro\": {\n      \"buildDate\": \"Dec 14, 2015\",\n      \"dependencies\": [],\n      \"developers\": [],\n      \"excerpt\": \"This plugin adds reusable macro expansion capability for other plugins to use\",\n      \"gav\": \"org.jenkins-ci.plugins:token-macro:1.12.1\",\n      \"labels\": [\"deprecated\"],\n      \"name\": \"token-macro\",\n      \"previousTimestamp\": \"2015-12-11T08:27:18.00Z\",\n      \"previousVersion\": \"1.12\",\n      \"releaseTimestamp\": \"2015-12-14T18:07:56.00Z\",\n      \"requiredCore\": \"1.609.2\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"TV61PGo+od75URp3maLGUFJ768k=\",\n      \"title\": \"Token Macro Plugin\",\n      \"url\": \"token-macro.hpi\",\n      \"version\": \"1.9\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Token+Macro+Plugin\"\n    }\n  },\n  \"deprecations\": {\n      \"icon-shim\": { \"url\": \"https://www.jenkins.io/deprecations/icon-shim/\" },\n      \"variant\": { \"url\": \"https://www.jenkins.io/deprecations/variant/\" }\n  },\n  \"updateCenterVersion\": 1\n}\n);\n","isInternal":false,"tokens":900,"sizeBytes":2756},{"name":"htmlpublisher-update-center.json","path":"test/src/test/resources/plugins/htmlpublisher-update-center.json","rawUrl":"https://raw.githubusercontent.com/jenkinsci/jenkins/HEAD/test/src/test/resources/plugins/htmlpublisher-update-center.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", // has to be here because updateDirectly sniffs only very limited formats\n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"htmlpublisher\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [\n                {\n                    \"developerId\": \"mcrooney\",\n                    \"name\": \"Michael Rooney\"\n                }\n            ],\n            \"excerpt\": \"This plugin publishes HTML reports.\",\n            \"name\": \"htmlpublisher\",\n            \"wiki\": \"https://plugins.jenkins.io/htmlpublisher\",\n            \"requiredCore\": \"1.398\",\n            \"sha1\": \"tVSI0DVK02k9R3KV1M3A451Da3c=\",\n            \"title\": \"HTML Publisher\",\n            \"url\": \"htmlpublisher.jpi\",\n            \"version\": \"0.7\"\n        },\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"wiki\": \"https://plugins.jenkins.io/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Dummy\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","isInternal":false,"tokens":382,"sizeBytes":1444},{"name":"invalid-signature-update-center-core-cm.json","path":"test/src/test/resources/plugins/invalid-signature-update-center-core-cm.json","rawUrl":"https://raw.githubusercontent.com/jenkinsci/jenkins/HEAD/test/src/test/resources/plugins/invalid-signature-update-center-core-cm.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"{\n  \"updateCenterVersion\": 1,\n  \"core\": {\n    \"name\": \"core\",\n    \"version\": \"2.541\",\n    \"url\": \"http://updates.jenkins.io/download/war/2.541/jenkins.war\"\n  },\n  \"plugins\": {},\n  \"signature\": {\n    \"correct_digest\": \"scNImoAz/AONJTUC+jwpX1ik1Mg=\",\n    \"correct_digest512\": \"0442f8003c5b707bdd7f8f06c096d51c3da1ad5715946ad226a8e4c8ce85a71a4db1cf4f7bf9565220a7339a2103780ae75e85a08c18e9642165c9f296660e56\",\n    \"certificates\": [\n      \"MIIFhDCCA2wCCQDGSFE7A358zjANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkRFMRgwFgYDVQQKDA9DbG91ZEJlZXMsIEluYy4xFjAUBgNVBAMMDXVwZGF0ZS1jZW50ZXIxNTAzBgkqhkiG9w0BCQEWJm9wZXJhdGlvbnMrdXBkYXRlLWNlbnRlckBjbG91ZGJlZXMuY29tMB4XDTIwMDUyOTAxMjgxNFoXDTMwMDUyNzAxMjgxNFowgYMxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJERTEYMBYGA1UECgwPQ2xvdWRCZWVzLCBJbmMuMRYwFAYDVQQDDA11cGRhdGUtY2VudGVyMTUwMwYJKoZIhvcNAQkBFiZvcGVyYXRpb25zK3VwZGF0ZS1jZW50ZXJAY2xvdWRiZWVzLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJyeG1X+jhC6NdNTyYRP0iPBF8j1gt9BGsGfTktdwpHpHSfHWwn2S3SAkAGVpck6kOWudejHvKmaAHMEiON0T4RHLnOc0BRd5W/BOzyVgB0eytkjSANeB9UIRNuCZoUM8NdNCyAcr9fmsns6jVRzCwnuyxeXFvGYgikzoO/ZC0/vsyAHp/2AzvgTE/7tFuJYHuvQ8ACfSPRgSQ3rc0hpSnSVV1UqTwrE/1AIhEjisNRXc6eMxlStFIsVuRkdaJRr7pi6W0mFmQr2gFtDHJkqX2nwHqNPzuJ7AVF2VXlh4j7GecDxwVdtVKdQEuCxn7IbX8UbWLcA/IwBnR8ZaHUr1KER+LjTIjwXlQnv3wAoz3YqCvgvKlx1HVTtf/PVlJG0STiPHZtwSqJpgXjQ+XLXCW1gsevDR2fyyddxC5p21AvQ480SGY1cRuesTEpoZjTYW4jNJsb8JKhyyAM50GHYWIgCyCavgHH+da+J7kgSqVmBIgum9Ws4Mh6AQHTUcxozff3vIUnRU8B5Lg20q4UZqDrFHKxQMyvEFXBmGIsqw6EtPTKzPWIq/noq2YT4mrpi1iFDPd8phHuy7IIDqmHPP0GvcL9f/QUDysmVgOuOQShtFhA5ZX2KHJ4sjtPDzYq/EjStI+tytR10aV12a/iL4eBfNlhP0UiPVhw2hLg3xMLBAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAHGSLYRRZ032pmbwHY8yg9+z7P2TljaYA4dI5/WUmev0oNyEwEwcbMhhLq1yIG9bDjo65WFYyNijX7eJHGSTR2clRLRZ67N2z4hOkymgLbpXgCoyAr7Pgkl2sxz3lW/VPTN7ZFl37ZkbsUuSFy5BnNXkISh5bDATX9JCJCPYzdVKBbjd2kyMeiOz7Gf/SYOEBvp/vgz3gqv5ZLQIEKFmZT2imiELmfgO0uuVlCgJWU9PDGEb2MW4Td0v0hzL5aycYQSl0bAbiTSqofSIOUdniELYJEtn0G/tdxY5ZnlgEP8jdSNlsnESArjyxGJanwxzQdMps6MaTxew+tYPzjMACEQaLeNUHmLtlMRFaqWPcOj85XZ3qzBwwOESFq3NQu8NZcOJrNr84AHFkPnE90gSNaZlA2XJReioGViBmo421LypKobjbny0z2L2jvQ7lI23Hdt4DA34cB6dlPg/6Vi9PyhokeNTL5VZCGpU8WzhMoxq/4pNLawq2suE92OeYuWDz2v65OJWJe1EEXQhX5H8G1001pv2OD+p5xew/QfDxshCsi3hPVRSB1qVquMgmhOBCnq1j/ocGOubLKQ0WpeSUYDynVrfpvQ1rCW+Sbz0fEduMPrD8c+2+v/U6NFDxqZCtooRbtNQeKuyJYtKoB6VuUAWHOqi95lCirlplY2Mjljn\"\n    ],\n    \"correct_signature\": \"ZDSVZkFRPiIbwDkpwfj0B3B/PvGc5mNpNvR6tcxCn2LKDWKeYXu/MJzsna+3ElohT+QXzzvKvw5oiAkhvTQ0l9o/jOhBzMiS8dYl6uVebdb70DVgoLrNe02DqxXoMTkXLOnZ/tpGRrWxPhi2dMy6bUt5aBl6gGbiog3OSlA+TafO/KH4yxK5/0cv8kfUW3c6HopY5rRq4z6RUXTPaljO1iVE91w3QYrDahhHBBC3UPetfslEWSliTgckUFojfdX/67hR1921lgL2ITxGtOS4j+dO9ydUVAaY6McAU1kJVrljY9IwsLxMaENrAL7otXG2xKBBCskTNcrizODuyzIg7LHOOVX6/EIzTN+o9RZG4b5zxwQZq5NS4yldbPpXPZuXnezCWr8qndwK3pqbiwmvLiBcsFCrnz7e2ixiAs7c6ZY6srb5WScVywZeLHwhpISEBPZe4ejvWQRHaDanca15IKeqARJKL8H/Jti1aUHqrLkH92s8FWaEL25TrMXb5u2r15qpL6OCMP+5O2jEnVl0ajkkNb/BBqUPuPXsg5vo8tkuk7gylNrK0LSM/t49gdYGBE/Cp2GgvGwfhasM27Os+J1TnIs0Bqsl125CwWxa7aXql39JQ/t12ekAUZvgziTGY1LHO4V7YMWTdiBdr57LKudFpFJZGXsPMkupi8mtlCU=\",\n    \"correct_signature512\": \"0403e57342c6610922a4ca1c647b075923baa9d38ba50a9b5eb3fd2cd4154febf60434d3d9dc2e15db536128191f69a0bafe119cba7b7d887b8b0d38ebac0855da7b6f958afe06a48362cee018159628852fa593e58e56aa8cf94c978f344e906db8559b69d72971b918322e7108a23fb124022b2f442f73f12e5a34af0385295954f7347da4ff0faf33db8c2dc1c1684551a0018c30fd2d39117717b092c42e20c6d78506d89d942d30c66295c5e04cfd655259e4a4a263a85a7b3a89377ae067279989a164ab46ae34edbed7f722f3c4f2bbd9d59412559eeaed03ef5e743602c54d0222d010ce0c010576a682b9979654e976aa418deb0de5069139031e04a61d26904e70bdca2168dc434f5955c6f39f6c6fe45b6014702b5afedfa2f89763f2e43fbb82d47858a1fd0bd04bea05a4f23d207d28c3246a99c2b2ac84a4fa16da292148074afd358728a2844ef985bf9a1479d6cf1bb1d7acc48c9731e2a9906f8beac110d91c851736bfd12508ae08c669d89a74a347a764b1f4be5fe01829ab0f80e6da5e2abafeb045a50b066ec3d6a6a95254fdc57e898eaf91b48d8585ef74b9ab1feecea2583c37be77d7c295c5918d492e01515b76877508d8af3bedddf1f2c56453ffa88505df9b2d8865e5a9970af0875cbfa596afe10326befbea4970cb2160b59cbff683b351d0a3b872039934cfff668dfe92c3f4d4abd262\",\n    \"digest\": \"216DEgEmoe6+B+96+1RFOIKCqmY=\",\n    \"signature\": \"X4RsFd2sxBMy2BaUeW64hvzP+VUg/nS0KSoKnCo26nt5G5qXvJ9TVb9ifMuLdFnk2kPMGOh/NZ5rfPFdVhLPRkcpg9saAXYcMYj4Nfg6gzlgBjsGzcmaQ6ky2q2qTIEXGZcjKTql99uap9hMXKaXDdgcfVE22mV92dvASazz1KX3fM37sticmC6eJF+Fj1OFx2BPjzPaNKZyXuwqMe7X3SG70fY0bbcc6TfOXSHWOI3WS0T7N13Br0cD/kx+r8sKDv73kkx/anI0VxxaGXcttZ9M9q/ubqRDju6dLubXP+5rTzQmphpwwUPz4t4mv0Acp8/E35Rp5SELn45cUJTyb2anxPOVB84gKBaeN9G+fitEmQkEt2jLnidcKTbNfgPUXWAkUnCuPbl7W7zeRQ4dnEQoCfkswS3Q5qoE8R0d76G//R8p6oeQZL9akV4NHV9E22iu0l+eA8GTrX50TEApF1+iil/Y4CeHWyALBn/FYARig2L3W040O9GOPoBGpZ5qTFxA55es4h69ij84nt+uANJzypzRFV7DmhL97UKm4XV7ADB+UQ90pXvAoih510O0p1/67xdZcKx5URhmj53xOAn8WbvATzeu8/MqNnglmTcX+VKInVWjai4gtOg2UmaijUCt0CuCcLNyWpClk51p0Kfr7gYb4UKJuWSIfVzHaPY=\"\n  }\n}\n","frontmatter":{"updateCenterVersion":1,"core":{"name":"core","version":"2.541","url":"http://updates.jenkins.io/download/war/2.541/jenkins.war"},"plugins":{},"signature":{"correct_digest":"scNImoAz/AONJTUC+jwpX1ik1Mg=","correct_digest512":"0442f8003c5b707bdd7f8f06c096d51c3da1ad5715946ad226a8e4c8ce85a71a4db1cf4f7bf9565220a7339a2103780ae75e85a08c18e9642165c9f296660e56","certificates":["MIIFhDCCA2wCCQDGSFE7A358zjANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkRFMRgwFgYDVQQKDA9DbG91ZEJlZXMsIEluYy4xFjAUBgNVBAMMDXVwZGF0ZS1jZW50ZXIxNTAzBgkqhkiG9w0BCQEWJm9wZXJhdGlvbnMrdXBkYXRlLWNlbnRlckBjbG91ZGJlZXMuY29tMB4XDTIwMDUyOTAxMjgxNFoXDTMwMDUyNzAxMjgxNFowgYMxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJERTEYMBYGA1UECgwPQ2xvdWRCZWVzLCBJbmMuMRYwFAYDVQQDDA11cGRhdGUtY2VudGVyMTUwMwYJKoZIhvcNAQkBFiZvcGVyYXRpb25zK3VwZGF0ZS1jZW50ZXJAY2xvdWRiZWVzLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJyeG1X+jhC6NdNTyYRP0iPBF8j1gt9BGsGfTktdwpHpHSfHWwn2S3SAkAGVpck6kOWudejHvKmaAHMEiON0T4RHLnOc0BRd5W/BOzyVgB0eytkjSANeB9UIRNuCZoUM8NdNCyAcr9fmsns6jVRzCwnuyxeXFvGYgikzoO/ZC0/vsyAHp/2AzvgTE/7tFuJYHuvQ8ACfSPRgSQ3rc0hpSnSVV1UqTwrE/1AIhEjisNRXc6eMxlStFIsVuRkdaJRr7pi6W0mFmQr2gFtDHJkqX2nwHqNPzuJ7AVF2VXlh4j7GecDxwVdtVKdQEuCxn7IbX8UbWLcA/IwBnR8ZaHUr1KER+LjTIjwXlQnv3wAoz3YqCvgvKlx1HVTtf/PVlJG0STiPHZtwSqJpgXjQ+XLXCW1gsevDR2fyyddxC5p21AvQ480SGY1cRuesTEpoZjTYW4jNJsb8JKhyyAM50GHYWIgCyCavgHH+da+J7kgSqVmBIgum9Ws4Mh6AQHTUcxozff3vIUnRU8B5Lg20q4UZqDrFHKxQMyvEFXBmGIsqw6EtPTKzPWIq/noq2YT4mrpi1iFDPd8phHuy7IIDqmHPP0GvcL9f/QUDysmVgOuOQShtFhA5ZX2KHJ4sjtPDzYq/EjStI+tytR10aV12a/iL4eBfNlhP0UiPVhw2hLg3xMLBAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAHGSLYRRZ032pmbwHY8yg9+z7P2TljaYA4dI5/WUmev0oNyEwEwcbMhhLq1yIG9bDjo65WFYyNijX7eJHGSTR2clRLRZ67N2z4hOkymgLbpXgCoyAr7Pgkl2sxz3lW/VPTN7ZFl37ZkbsUuSFy5BnNXkISh5bDATX9JCJCPYzdVKBbjd2kyMeiOz7Gf/SYOEBvp/vgz3gqv5ZLQIEKFmZT2imiELmfgO0uuVlCgJWU9PDGEb2MW4Td0v0hzL5aycYQSl0bAbiTSqofSIOUdniELYJEtn0G/tdxY5ZnlgEP8jdSNlsnESArjyxGJanwxzQdMps6MaTxew+tYPzjMACEQaLeNUHmLtlMRFaqWPcOj85XZ3qzBwwOESFq3NQu8NZcOJrNr84AHFkPnE90gSNaZlA2XJReioGViBmo421LypKobjbny0z2L2jvQ7lI23Hdt4DA34cB6dlPg/6Vi9PyhokeNTL5VZCGpU8WzhMoxq/4pNLawq2suE92OeYuWDz2v65OJWJe1EEXQhX5H8G1001pv2OD+p5xew/QfDxshCsi3hPVRSB1qVquMgmhOBCnq1j/ocGOubLKQ0WpeSUYDynVrfpvQ1rCW+Sbz0fEduMPrD8c+2+v/U6NFDxqZCtooRbtNQeKuyJYtKoB6VuUAWHOqi95lCirlplY2Mjljn"],"correct_signature":"ZDSVZkFRPiIbwDkpwfj0B3B/PvGc5mNpNvR6tcxCn2LKDWKeYXu/MJzsna+3ElohT+QXzzvKvw5oiAkhvTQ0l9o/jOhBzMiS8dYl6uVebdb70DVgoLrNe02DqxXoMTkXLOnZ/tpGRrWxPhi2dMy6bUt5aBl6gGbiog3OSlA+TafO/KH4yxK5/0cv8kfUW3c6HopY5rRq4z6RUXTPaljO1iVE91w3QYrDahhHBBC3UPetfslEWSliTgckUFojfdX/67hR1921lgL2ITxGtOS4j+dO9ydUVAaY6McAU1kJVrljY9IwsLxMaENrAL7otXG2xKBBCskTNcrizODuyzIg7LHOOVX6/EIzTN+o9RZG4b5zxwQZq5NS4yldbPpXPZuXnezCWr8qndwK3pqbiwmvLiBcsFCrnz7e2ixiAs7c6ZY6srb5WScVywZeLHwhpISEBPZe4ejvWQRHaDanca15IKeqARJKL8H/Jti1aUHqrLkH92s8FWaEL25TrMXb5u2r15qpL6OCMP+5O2jEnVl0ajkkNb/BBqUPuPXsg5vo8tkuk7gylNrK0LSM/t49gdYGBE/Cp2GgvGwfhasM27Os+J1TnIs0Bqsl125CwWxa7aXql39JQ/t12ekAUZvgziTGY1LHO4V7YMWTdiBdr57LKudFpFJZGXsPMkupi8mtlCU=","correct_signature512":"0403e57342c6610922a4ca1c647b075923baa9d38ba50a9b5eb3fd2cd4154febf60434d3d9dc2e15db536128191f69a0bafe119cba7b7d887b8b0d38ebac0855da7b6f958afe06a48362cee018159628852fa593e58e56aa8cf94c978f344e906db8559b69d72971b918322e7108a23fb124022b2f442f73f12e5a34af0385295954f7347da4ff0faf33db8c2dc1c1684551a0018c30fd2d39117717b092c42e20c6d78506d89d942d30c66295c5e04cfd655259e4a4a263a85a7b3a89377ae067279989a164ab46ae34edbed7f722f3c4f2bbd9d59412559eeaed03ef5e743602c54d0222d010ce0c010576a682b9979654e976aa418deb0de5069139031e04a61d26904e70bdca2168dc434f5955c6f39f6c6fe45b6014702b5afedfa2f89763f2e43fbb82d47858a1fd0bd04bea05a4f23d207d28c3246a99c2b2ac84a4fa16da292148074afd358728a2844ef985bf9a1479d6cf1bb1d7acc48c9731e2a9906f8beac110d91c851736bfd12508ae08c669d89a74a347a764b1f4be5fe01829ab0f80e6da5e2abafeb045a50b066ec3d6a6a95254fdc57e898eaf91b48d8585ef74b9ab1feecea2583c37be77d7c295c5918d492e01515b76877508d8af3bedddf1f2c56453ffa88505df9b2d8865e5a9970af0875cbfa596afe10326befbea4970cb2160b59cbff683b351d0a3b872039934cfff668dfe92c3f4d4abd262","digest":"216DEgEmoe6+B+96+1RFOIKCqmY=","signature":"X4RsFd2sxBMy2BaUeW64hvzP+VUg/nS0KSoKnCo26nt5G5qXvJ9TVb9ifMuLdFnk2kPMGOh/NZ5rfPFdVhLPRkcpg9saAXYcMYj4Nfg6gzlgBjsGzcmaQ6ky2q2qTIEXGZcjKTql99uap9hMXKaXDdgcfVE22mV92dvASazz1KX3fM37sticmC6eJF+Fj1OFx2BPjzPaNKZyXuwqMe7X3SG70fY0bbcc6TfOXSHWOI3WS0T7N13Br0cD/kx+r8sKDv73kkx/anI0VxxaGXcttZ9M9q/ubqRDju6dLubXP+5rTzQmphpwwUPz4t4mv0Acp8/E35Rp5SELn45cUJTyb2anxPOVB84gKBaeN9G+fitEmQkEt2jLnidcKTbNfgPUXWAkUnCuPbl7W7zeRQ4dnEQoCfkswS3Q5qoE8R0d76G//R8p6oeQZL9akV4NHV9E22iu0l+eA8GTrX50TEApF1+iil/Y4CeHWyALBn/FYARig2L3W040O9GOPoBGpZ5qTFxA55es4h69ij84nt+uANJzypzRFV7DmhL97UKm4XV7ADB+UQ90pXvAoih510O0p1/67xdZcKx5URhmj53xOAn8WbvATzeu8/MqNnglmTcX+VKInVWjai4gtOg2UmaijUCt0CuCcLNyWpClk51p0Kfr7gYb4UKJuWSIfVzHaPY="}},"isInternal":false,"tokens":3100,"sizeBytes":4857},{"name":"invalid-signature-update-center.json","path":"test/src/test/resources/plugins/invalid-signature-update-center.json","rawUrl":"https://raw.githubusercontent.com/jenkinsci/jenkins/HEAD/test/src/test/resources/plugins/invalid-signature-update-center.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"{\n  \"updateCenterVersion\": \"1\",\n  \"core\": {\n    \"name\": \"core\",\n    \"version\": \"2.541\",\n    \"url\": \"http://updates.jenkins.io/download/war/2.541/jenkins.war\"\n  },\n  \"plugins\": {},\n  \"signature\": {\n    \"certificates\": [\n      \"InvalidBase64CertificateDataThatWillFailValidation==\"\n    ],\n    \"correct_digest\": \"invalid_digest_value\",\n    \"correct_signature\": \"invalid_signature_value\"\n  }\n}\n","frontmatter":{"updateCenterVersion":"1","core":{"name":"core","version":"2.541","url":"http://updates.jenkins.io/download/war/2.541/jenkins.war"},"plugins":{},"signature":{"certificates":["InvalidBase64CertificateDataThatWillFailValidation=="],"correct_digest":"invalid_digest_value","correct_signature":"invalid_signature_value"}},"isInternal":false,"tokens":110,"sizeBytes":390},{"name":"no-wiki-update-center.json","path":"test/src/test/resources/plugins/no-wiki-update-center.json","rawUrl":"https://raw.githubusercontent.com/jenkinsci/jenkins/HEAD/test/src/test/resources/plugins/no-wiki-update-center.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"updateCenter.post(\n{\n  \"connectionCheckUrl\": \"https://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Jun 20, 2026\",\n    \"name\": \"core\",\n    \"sha1\": \"dummy\",\n    \"sha256\": \"dummy\",\n    \"size\": 1,\n    \"url\": \"https://updates.jenkins.io/download/war/2.570/jenkins.war\",\n    \"version\": \"2.570\"\n  },\n  \"generationTimestamp\": \"2026-06-20T00:00:00Z\",\n  \"id\": \"NoWiki\",\n  \"deprecations\": [],\n  \"plugins\": {\n    \"plugin-without-wiki\": {\n      \"buildDate\": \"Jun 20, 2026\",\n      \"dependencies\": [],\n      \"excerpt\": \"A plugin without a wiki URL.\",\n      \"health\": 100,\n      \"name\": \"plugin-without-wiki\",\n      \"popularity\": 1,\n      \"releaseTimestamp\": \"2026-06-20T00:00:00.00Z\",\n      \"requiredCore\": \"2.0\",\n      \"sha1\": \"dummy\",\n      \"sha256\": \"dummy\",\n      \"title\": \"Plugin Without Wiki\",\n      \"url\": \"https://updates.jenkins.io/download/plugins/plugin-without-wiki/1.0/plugin-without-wiki.hpi\",\n      \"version\": \"1.0\"\n    }\n  },\n  \"updateCenterVersion\": \"1\"\n}\n);\n","isInternal":false,"tokens":318,"sizeBytes":964},{"name":"search-test-update-center1.json","path":"test/src/test/resources/plugins/search-test-update-center1.json","rawUrl":"https://raw.githubusercontent.com/jenkinsci/jenkins/HEAD/test/src/test/resources/plugins/search-test-update-center1.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", \n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"credentials\": {\n\t    \"buildDate\": \"Apr 04, 2016\",\n\t    \"dependencies\": [\n                {\n\t\t    \"name\": \"icon-shim\",\n\t\t    \"optional\": false,\n\t\t    \"version\":\"2.0.2\"\n\t\t}\n\t    ],\n\t    \"developers\": [],\n\t    \"excerpt\": \"This plugin allows you to store credentials in Jenkins.\",\n\t    \"gav\": \"org.jenkins-ci.plugins:credentials:1.27\",\n\t    \"labels\": [],\n\t    \"name\": \"credentials\",\n\t    \"previousTimestamp\": \"2016-03-24T01:19:58.00Z\",\n\t    \"previousVersion\": \"1.26\",\n\t    \"releaseTimestamp\": \"2016-04-04T16:26:54.00Z\",\n\t    \"requiredCore\": \"1.565\",\n\t    \"scm\": \"github.com\",\n\t    \"sha1\": \"XWJpfL8B2x7qrISJg7IY2ZTPxFk=\",\n\t    \"title\": \"Credentials Plugin\",\n\t    \"url\": \"credentials.hpi\",\n\t    \"version\": \"1.27\",\n\t    \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Credentials+Plugin\"\n\t},\n\t\"icon-shim\": {\n\t    \"buildDate\": \"Feb 23, 2016\",\n\t    \"dependencies\": [],\n\t    \"developers\": [],\n\t    \"excerpt\": \"This plugin allows other Jenkins plugins to take advantage of the <l:icon> tag. \",\n\t    \"gav\": \"org.jenkins-ci.plugins.icon-shim:icon-shim:2.0.3\",\n\t    \"labels\": [\"ui\"],\n\t    \"name\": \"icon-shim\",\n\t    \"previousTimestamp\": \"2016-01-09T20:01:12.00Z\",\n\t    \"previousVersion\": \"2.0.2\",\n\t    \"releaseTimestamp\": \"2016-02-23T23:08:18.00Z\",\n\t    \"requiredCore\": \"1.609\",\n\t    \"scm\": \"github.com\",\n\t    \"sha1\": \"umtSUbNwIuqU6JGEQcBxqFt1X24=\",\n\t    \"title\": \"Icon Shim Plugin\",\n\t    \"url\": \"icon-shim.hpi\",\n\t    \"version\": \"2.0.3\", \n\t    \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Icon+Shim+Plugin\"\n\t},\n        \"token-macro\": {\n\t    \"buildDate\": \"Dec 14, 2015\",\n\t    \"dependencies\": [],\n\t    \"developers\": [],\n\t    \"excerpt\": \"This plugin adds reusable macro expansion capability for other plugins to use\",\n\t    \"gav\": \"org.jenkins-ci.plugins:token-macro:1.12.1\",\n\t    \"labels\": [],\n\t    \"name\": \"token-macro\",\n\t    \"previousTimestamp\": \"2015-12-11T08:27:18.00Z\",\n\t    \"previousVersion\": \"1.12\",\n\t    \"releaseTimestamp\": \"2015-12-14T18:07:56.00Z\",\n\t    \"requiredCore\": \"1.609.2\",\n\t    \"scm\": \"github.com\",\n\t    \"sha1\": \"TV61PGo+od75URp3maLGUFJ768k=\",\n\t    \"title\": \"Token Macro Plugin\",\n\t    \"url\": \"token-macro.hpi\",\n\t    \"version\": \"1.9\",\n\t    \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Token+Macro+Plugin\"\n\t},\n        \"hello-world\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"hello-=world\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Hello World\",\n            \"url\": \"http://nowhere.net/hello-world.hpi\",\n            \"version\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","isInternal":false,"tokens":963,"sizeBytes":2936},{"name":"search-test-update-center2.json","path":"test/src/test/resources/plugins/search-test-update-center2.json","rawUrl":"https://raw.githubusercontent.com/jenkinsci/jenkins/HEAD/test/src/test/resources/plugins/search-test-update-center2.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", \n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"secondary\",\n    \"plugins\": {\n\t\t\"hello-huston\": {\n\t\t\t\"buildDate\": \"Dec 17, 2008\",\n\t\t\t\"dependencies\": [],\n\t\t\t\"developers\": [],\n\t\t\t\"excerpt\": \"…\",\n\t\t\t\"name\": \"hello-huston\",\n\t\t\t\"requiredCore\": \"1.100\",\n\t\t\t\"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n\t\t\t\"title\": \"Hello Huston\",\n\t\t\t\"url\": \"http://nowhere.net/hello-huston.hpi\",\n\t\t\t\"version\": \"1.0\"\n\t\t},\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Dummy\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","isInternal":false,"tokens":332,"sizeBytes":992},{"name":"security3037-update-center.json","path":"test/src/test/resources/plugins/security3037-update-center.json","rawUrl":"https://raw.githubusercontent.com/jenkinsci/jenkins/HEAD/test/src/test/resources/plugins/security3037-update-center.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"updateCenter.post(\n{\n  \"connectionCheckUrl\": \"https://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Jan 31, 2023\",\n    \"name\": \"core\",\n    \"sha1\": \"TO8l3+wqx2hWtLWMHjmIOj+ERsk=\",\n    \"sha256\": \"BrXTCwJse5e6b/shXjv5edRJQRjxfJ/GbNrhgYcrZoU=\",\n    \"size\": 98362341,\n    \"url\": \"https://updates.jenkins.io/download/war/2.389/jenkins.war\",\n    \"version\": \"2.389\"\n  },\n  \"generationTimestamp\": \"2023-02-03T11:04:30Z\",\n  \"id\": \"Security3037\",\n  \"deprecations\": [],\n  \"plugins\": {\n    \"workflow-aggregator\": {\n      \"buildDate\": \"Jun 29, 2022\",\n      \"defaultBranch\": \"master\",\n      \"dependencies\": [\n        {\n          \"name\": \"pipeline-groovy-lib<img src=x onerror=alert(1)>\",\n          \"optional\": false,\n          \"version\": \"591.v3a_7f422b_d058<img src=x onerror=alert(1)>\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"johndoe<img src=x onerror=alert(1)>\",\n          \"name\": \"john doe<img src=x onerror=alert(1)>\"\n        }\n      ],\n      \"excerpt\": \"A suite of plugins that lets you orchestrate automation, simple or complex. See <a href=\\\"https://www.jenkins.io/solutions/pipeline/\\\" target=\\\"_blank\\\" rel=\\\"nofollow noopener noreferrer\\\">Pipeline as Code with Jenkins</a> for more details.\",\n      \"gav\": \"org.jenkins-ci.plugins.workflow:workflow-aggregator:590.v6a_d052e5a_a_b_5<img src=x onerror=alert(1)>\",\n      \"issueTrackers\": [\n        {\n          \"reportUrl\": \"https://www.jenkins.io/participate/report-issue/redirect/#21710<img src=x onerror=alert(1)>\",\n          \"type\": \"jira<img src=x onerror=alert(1)>\",\n          \"viewUrl\": \"https://issues.jenkins.io/issues/?jql=component=21710<img src=x onerror=alert(1)>\"\n        }\n      ],\n      \"labels\": [\n        \"cli<img src=x onerror=alert(1)>\",\n        \"misc\",\n        \"slaves\",\n        \"trigger\"\n      ],\n      \"name\": \"workflow-aggregator<img src=x onerror=alert(1)>\",\n      \"popularity\": 256809,\n      \"previousTimestamp\": \"2022-05-24T12:27:03.00Z<img src=x onerror=alert(1)>\",\n      \"previousVersion\": \"<img src=x onerror=alert(1)>581.v0c46fa_697ffd\",\n      \"releaseTimestamp\": \"2022-06-29T21:02:16.00Z<img src=x onerror=alert(1)>\",\n      \"requiredCore\": \"9999999<img src=x onerror=alert(1)>\",\n      \"scm\": \"https://github.com/jenkinsci/workflow-aggregator-plugin<img src=x onerror=alert(1)>\",\n      \"sha1\": \"6iNlKTnXvr4W+9Svwy1+ctyqgvo=<img src=x onerror=alert(1)>\",\n      \"sha256\": \"P0SFgnqOBFZjxkdKORiQUbrhdlfW5YU7tOpe85bfGWE=<img src=x onerror=alert(1)>\",\n      \"size\": 8282,\n      \"title\": \"Pipeline<img src=x onerror=alert(1)>\",\n      \"url\": \"https://updates.jenkins.io/download/plugins/workflow-aggregator/590.v6a_d052e5a_a_b_5/workflow-aggregator.hpi\",\n      \"version\": \"590.v6a_d052e5a_a_b_5<img src=x onerror=alert(1)>\",\n      \"wiki\": \"javascript:alert(1)\"\n    }\n  },\n  \"updateCenterVersion\": \"1\"\n});\n","isInternal":false,"tokens":943,"sizeBytes":2808},{"name":"upload-test-update-center.json","path":"test/src/test/resources/plugins/upload-test-update-center.json","rawUrl":"https://raw.githubusercontent.com/jenkinsci/jenkins/HEAD/test/src/test/resources/plugins/upload-test-update-center.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"updateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", \n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"dependee\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"gav\": \"org.jenkins-ci.plugins.dependencytest:dependee:0.0.2\",\n            \"labels\": [],\n            \"name\": \"dependee\",\n            \"requiredCore\": \"1.466\",\n            \"sha1\": \"2Axh5MnAFTnHml0V0ksrpYhMK1E=\",\n            \"sha256\": \"7XhzuS+CtvCQpG35Qj0gC1p0dlOg+kXXJpvWi7QGDKE=\",\n            \"title\": \"dependee\",\n            \"url\": \"dependee-0.0.2.hpi\",\n            \"version\": \"0.0.2\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n","isInternal":false,"tokens":276,"sizeBytes":845},{"name":"warnings-update-center-malformed.json","path":"test/src/test/resources/plugins/warnings-update-center-malformed.json","rawUrl":"https://raw.githubusercontent.com/jenkinsci/jenkins/HEAD/test/src/test/resources/plugins/warnings-update-center-malformed.json","title":"Plugins Skill","category":"anthropic-skill","format":"json","content":"{\n  \"connectionCheckUrl\": \"http://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Dec 18, 2016\",\n    \"name\": \"core\",\n    \"sha1\": \"x4rDgtNYm9l7zJ16RVuxMRgGoQE=\",\n    \"url\": \"http://updates.jenkins-ci.org/download/war/2.37/jenkins.war\",\n    \"version\": \"2.37\"\n  },\n  \"id\": \"jenkins40494\",\n  \"plugins\": {\n    \"display-url-api\": {\n      \"buildDate\": \"Sep 22, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"junit\",\n          \"optional\": false,\n          \"version\": \"1.3\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"jdumay\",\n          \"email\": \"jdumay@cloudbees.com\",\n          \"name\": \"James Dumay\"\n        }\n      ],\n      \"excerpt\": \"\\\\\\\\  Provides the DisplayURLProvider extension point to provide alternate URLs for use in notifications.  URLs can be requested/extended for these UI locations:  * Root page. * Job. * Run. * Run changes. * Test result.  \",\n      \"gav\": \"org.jenkins-ci.plugins:display-url-api:0.5\",\n      \"labels\": [],\n      \"name\": \"display-url-api\",\n      \"previousTimestamp\": \"2016-09-22T09:35:08.00Z\",\n      \"previousVersion\": \"0.4\",\n      \"releaseTimestamp\": \"2016-09-22T10:42:00.00Z\",\n      \"requiredCore\": \"1.625.3\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"QEykyLSFuZTnFyHrzZEOgzSsYcU=\",\n      \"title\": \"Display URL API\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/display-url-api/0.5/display-url-api.hpi\",\n      \"version\": \"0.5\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Display+URL+API+Plugin\"\n    },\n    \"junit\": {\n      \"buildDate\": \"Oct 17, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"structs\",\n          \"optional\": false,\n          \"version\": \"1.2\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"ogondza\"\n        }\n      ],\n      \"excerpt\": \"Allows JUnit-format test results to be published.\",\n      \"gav\": \"org.jenkins-ci.plugins:junit:1.19\",\n      \"labels\": [\n        \"report\"\n      ],\n      \"name\": \"junit\",\n      \"previousTimestamp\": \"2016-08-08T15:10:34.00Z\",\n      \"previousVersion\": \"1.18\",\n      \"releaseTimestamp\": \"2016-10-17T12:15:20.00Z\",\n      \"requiredCore\": \"1.580.1\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"f3jcYlxz6/8PK43W3KL5LFtz7ro=\",\n      \"title\": \"JUnit Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/junit/1.19/junit.hpi\",\n      \"version\": \"1.19\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/JUnit+Plugin\"\n    },\n    \"mailer\": {\n      \"buildDate\": \"Sep 04, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"display-url-api\",\n          \"optional\": false,\n          \"version\": \"0.2\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"andresrc\"\n        }\n      ],\n      \"excerpt\": \"This plugin allows you to configure email notifications for build results. This is a break-out of the original core based email component. \",\n      \"gav\": \"org.jenkins-ci.plugins:mailer:1.18\",\n      \"labels\": [],\n      \"name\": \"mailer\",\n      \"previousTimestamp\": \"2016-04-20T08:46:22.00Z\",\n      \"previousVersion\": \"1.17\",\n      \"releaseTimestamp\": \"2016-09-04T09:14:16.00Z\",\n      \"requiredCore\": \"1.625.3\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"poG1EauZFM5lZE5hCBx5mqr/mMA=\",\n      \"title\": \"Jenkins Mailer Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/mailer/1.18/mailer.hpi\",\n      \"version\": \"1.18\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Mailer\"\n    },\n    \"extra-columns\": {\n      \"buildDate\": \"Apr 11, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"junit\",\n          \"optional\": false,\n          \"version\": \"1.11\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"fredg\",\n          \"name\": \"Fred G.\"\n        }\n      ],\n      \"excerpt\": \"This is a general listview-column plugin that currently contains the following columns: Test Result, Configure Project button, Disable/Enable Project button, Project Description, Build Description, SCM Type, Last/Current Build Console output, Job Type, Build Duration, Build Parameters.\",\n      \"gav\": \"org.jenkins-ci.plugins:extra-columns:1.17\",\n      \"labels\": [\n        \"listview-column\"\n      ],\n      \"name\": \"extra-columns\",\n      \"previousTimestamp\": \"2015-12-11T01:18:48.00Z\",\n      \"previousVersion\": \"1.16\",\n      \"releaseTimestamp\": \"2016-04-11T22:36:22.00Z\",\n      \"requiredCore\": \"1.475\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"8y9Y91n7/Aw47G3pCxzJzTd94J0=\",\n      \"title\": \"Extra Columns Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/extra-columns/1.17/extra-columns.hpi\",\n      \"version\": \"1.17\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Extra+Columns+Plugin\"\n    },\n    \"structs\": {\n      \"buildDate\": \"Aug 30, 2016\",\n      \"dependencies\": [],\n      \"developers\": [\n        {\n          \"developerId\": \"jglick\"\n        }\n      ],\n      \"excerpt\": \"Library plugin for DSL plugins that need concise names for Jenkins extensions\",\n      \"gav\": \"org.jenkins-ci.plugins:structs:1.5\",\n      \"labels\": [],\n      \"name\": \"structs\",\n      \"previousTimestamp\": \"2016-08-26T14:11:44.00Z\",\n      \"previousVersion\": \"1.4\",\n      \"releaseTimestamp\": \"2016-08-30T14:10:10.00Z\",\n      \"requiredCore\": \"1.580.1\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"fK+F0PEfSS//DOqmNJvX2rQYabo=\",\n      \"title\": \"Structs Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/structs/1.5/structs.hpi\",\n      \"version\": \"1.5\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Structs+plugin\"\n    }\n  },\n  \"warnings\": [\n    {\n      \"id\": \"SECURITY-208\",\n      \"type\": \"plugin\",\n      \"name\": \"google-login\",\n      \"message\": \"Authentication bypass vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2015-10-12\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.1\",\n          \"pattern\": \"1[.][01](|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-136\",\n      \"type\": \"plugin\",\n      \"name\": \"extra-columns\",\n      \"message\": \"Stored XSS vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-04-11\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.16\",\n          \"pattern\": \"1[.](\\\\d|1[0123456])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-258\",\n      \"type\": \"plugin\",\n      \"name\": \"extra-columns\",\n      \"message\": \"Groovy sandbox protection incomplete\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-04-11\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.18\",\n          \"pattern\": \"1[.](\\\\d|1[012345678])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-85\",\n      \"type\": \"plugin\",\n      \"name\": \"tap\",\n      \"message\": \"Path traversal vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-06-20\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.24\",\n          \"pattern\": \"1[.](\\\\d|1\\\\d|2[01234])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-278\",\n      \"type\": \"plugin\",\n      \"name\": \"image-gallery\",\n      \"message\": \"Path traversal vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-06-20\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.3\",\n          \"pattern\": \"(0[.].*|1[.][0123])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-290\",\n      \"type\": \"plugin\",\n      \"name\": \"build-failure-analyzer\",\n      \"message\": \"Cross-site scripting vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-06-20\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.15.0\",\n          \"pattern\": \"1[.](\\\\d|1[012345])[.]\\\\d+(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-305\",\n      \"type\": \"plugin\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.7.24\",\n          \"pattern\": \"1[.]7[.](\\\\d(|[.-].*)|24)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-309\",\n      \"type\": \"plugin\",\n      \"name\": \"cucumber-reports\",\n      \"message\": \"Plugin disables Content-Security-Policy for files served by Jenkins\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-07-27\",\n      \"versions\": [\n        {\n          \"firstVersion\": \"1.3.0\",\n          \"lastVersion\": \"2.5.1\",\n          \"pattern\": \"(1[.][34]|2[.][012345])(|[.-].*)\"\n        }\n      ]\n    }\n  ],\n  \"updateCenterVersion\": \"1\"\n}","frontmatter":{"connectionCheckUrl":"http://www.google.com/","core":{"buildDate":"Dec 18, 2016","name":"core","sha1":"x4rDgtNYm9l7zJ16RVuxMRgGoQE=","url":"http://updates.jenkins-ci.org/download/war/2.37/jenkins.war","version":"2.37"},"id":"jenkins40494","plugins":{"display-url-api":{"buildDate":"Sep 22, 2016","dependencies":[{"name":"junit","optional":false,"version":"1.3"}],"developers":[{"developerId":"jdumay","email":"jdumay@cloudbees.com","name":"James Dumay"}],"excerpt":"\\\\  Provides the DisplayURLProvider extension point to provide alternate URLs for use in notifications.  URLs can be requested/extended for these UI locations:  * Root page. * Job. * Run. * Run changes. * Test result.  ","gav":"org.jenkins-ci.plugins:display-url-api:0.5","labels":[],"name":"display-url-api","previousTimestamp":"2016-09-22T09:35:08.00Z","previousVersion":"0.4","releaseTimestamp":"2016-09-22T10:42:00.00Z","requiredCore":"1.625.3","scm":"github.com","sha1":"QEykyLSFuZTnFyHrzZEOgzSsYcU=","title":"Display URL API","url":"http://updates.jenkins-ci.org/download/plugins/display-url-api/0.5/display-url-api.hpi","version":"0.5","wiki":"https://wiki.jenkins-ci.org/display/JENKINS/Display+URL+API+Plugin"},"junit":{"buildDate":"Oct 17, 2016","dependencies":[{"name":"structs","optional":false,"version":"1.2"}],"developers":[{"developerId":"ogondza"}],"excerpt":"Allows JUnit-format test results to be published.","gav":"org.jenkins-ci.plugins:junit:1.19","labels":["report"],"name":"junit","previousTimestamp":"2016-08-08T15:10:34.00Z","previousVersion":"1.18","releaseTimestamp":"2016-10-17T12:15:20.00Z","requiredCore":"1.580.1","scm":"github.com","sha1":"f3jcYlxz6/8PK43W3KL5LFtz7ro=","title":"JUnit Plugin","url":"http://updates.jenkins-ci.org/download/plugins/junit/1.19/junit.hpi","version":"1.19","wiki":"https://wiki.jenkins-ci.org/display/JENKINS/JUnit+Plugin"},"mailer":{"buildDate":"Sep 04, 2016","dependencies":[{"name":"display-url-api","optional":false,"version":"0.2"}],"developers":[{"developerId":"andresrc"}],"excerpt":"This plugin allows you to configure email notifications for build results. This is a break-out of the original core based email component. ","gav":"org.jenkins-ci.plugins:mailer:1.18","labels":[],"name":"mailer","previousTimestamp":"2016-04-20T08:46:22.00Z","previousVersion":"1.17","releaseTimestamp":"2016-09-04T09:14:16.00Z","requiredCore":"1.625.3","scm":"github.com","sha1":"poG1EauZFM5lZE5hCBx5mqr/mMA=","title":"Jenkins Mailer Plugin","url":"http://updates.jenkins-ci.org/download/plugins/mailer/1.18/mailer.hpi","version":"1.18","wiki":"https://wiki.jenkins-ci.org/display/JENKINS/Mailer"},"extra-columns":{"buildDate":"Apr 11, 2016","dependencies":[{"name":"junit","optional":false,"version":"1.11"}],"developers":[{"developerId":"fredg","name":"Fred G."}],"excerpt":"This is a general listview-column plugin that currently contains the following columns: Test Result, Configure Project button, Disable/Enable Project button, Project Description, Build Description, SCM Type, Last/Current Build Console output, Job Type, Build Duration, Build Parameters.","gav":"org.jenkins-ci.plugins:extra-columns:1.17","labels":["listview-column"],"name":"extra-columns","previousTimestamp":"2015-12-11T01:18:48.00Z","previousVersion":"1.16","releaseTimestamp":"2016-04-11T22:36:22.00Z","requiredCore":"1.475","scm":"github.com","sha1":"8y9Y91n7/Aw47G3pCxzJzTd94J0=","title":"Extra Columns Plugin","url":"http://updates.jenkins-ci.org/download/plugins/extra-columns/1.17/extra-columns.hpi","version":"1.17","wiki":"https://wiki.jenkins-ci.org/display/JENKINS/Extra+Columns+Plugin"},"structs":{"buildDate":"Aug 30, 2016","dependencies":[],"developers":[{"developerId":"jglick"}],"excerpt":"Library plugin for DSL plugins that need concise names for Jenkins extensions","gav":"org.jenkins-ci.plugins:structs:1.5","labels":[],"name":"structs","previousTimestamp":"2016-08-26T14:11:44.00Z","previousVersion":"1.4","releaseTimestamp":"2016-08-30T14:10:10.00Z","requiredCore":"1.580.1","scm":"github.com","sha1":"fK+F0PEfSS//DOqmNJvX2rQYabo=","title":"Structs Plugin","url":"http://updates.jenkins-ci.org/download/plugins/structs/1.5/structs.hpi","version":"1.5","wiki":"https://wiki.jenkins-ci.org/display/JENKINS/Structs+plugin"}},"warnings":[{"id":"SECURITY-208","type":"plugin","name":"google-login","message":"Authentication bypass vulnerability","url":"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2015-10-12","versions":[{"lastVersion":"1.1","pattern":"1[.][01](|[.-].*)"}]},{"id":"SECURITY-136","type":"plugin","name":"extra-columns","message":"Stored XSS vulnerability","url":"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-04-11","versions":[{"lastVersion":"1.16","pattern":"1[.](\\d|1[0123456])(|[.-].*)"}]},{"id":"SECURITY-258","type":"plugin","name":"extra-columns","message":"Groovy sandbox protection incomplete","url":"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-04-11","versions":[{"lastVersion":"1.18","pattern":"1[.](\\d|1[012345678])(|[.-].*)"}]},{"id":"SECURITY-85","type":"plugin","name":"tap","message":"Path traversal vulnerability","url":"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-06-20","versions":[{"lastVersion":"1.24","pattern":"1[.](\\d|1\\d|2[01234])(|[.-].*)"}]},{"id":"SECURITY-278","type":"plugin","name":"image-gallery","message":"Path traversal vulnerability","url":"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-06-20","versions":[{"lastVersion":"1.3","pattern":"(0[.].*|1[.][0123])(|[.-].*)"}]},{"id":"SECURITY-290","type":"plugin","name":"build-failure-analyzer","message":"Cross-site scripting vulnerability","url":"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-06-20","versions":[{"lastVersion":"1.15.0","pattern":"1[.](\\d|1[012345])[.]\\d+(|[.-].*)"}]},{"id":"SECURITY-305","type":"plugin","versions":[{"lastVersion":"1.7.24","pattern":"1[.]7[.](\\d(|[.-].*)|24)"}]},{"id":"SECURITY-309","type":"plugin","name":"cucumber-reports","message":"Plugin disables Content-Security-Policy for files served by Jenkins","url":"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-07-27","versions":[{"firstVersion":"1.3.0","lastVersion":"2.5.1","pattern":"(1[.][34]|2[.][012345])(|[.-].*)"}]}],"updateCenterVersion":"1"},"isInternal":false,"tokens":2616,"sizeBytes":8509}],"systemPromptSnippet":"<yakaai_skills repo=\"jenkinsci/jenkins\">\n<!-- File: test/src/test/resources/plugins/alternative-update-center.json (Tokens: ~439 | Category: anthropic-skill) -->\nupdateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", // has to be here because updateDirectly sniffs only very limited formats\n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"alternative\",\n    \"plugins\": {\n        \"tasks\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [{\"name\": \"lokadm\"}],\n            \"excerpt\": \"   This plug-in scans for open tasks in a specified set of files in the project modules   and visualizes the results.  \",\n            \"name\": \"tasks\",\n            \"wiki\": \"https://plugins.jenkins.io/tasks\",\n            \"requiredCore\": \"1.264\",\n            \"sha1\": \"wtzlciUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Jenkins Task Scanner Plug-in\",\n            \"url\": \"tasks.jpi\",\n            \"version\": \"2.23\"\n        },\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"wiki\": \"https://plugins.example.com/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Dummy\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\"\n        },\n        \"foo\": {\n            \"dependencies\": [],\n            \"name\": \"foo\",\n            \"wiki\": \"https://plugins.jenkins.io/foo\",\n            \"version\": \"1.0\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n\n<!-- File: test/src/test/resources/plugins/available-update-center.json (Tokens: ~382 | Category: anthropic-skill) -->\nupdateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", // has to be here because updateDirectly sniffs only very limited formats\n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"dummy2\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy2\",\n            \"wiki\": \"https://plugins.jenkins.io/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"ALowTitle\",\n            \"url\": \"http://nowhere.net/dummy2.hpi\",\n            \"version\": \"1.0\",\n            \"popularity\": \"1.0\"\n        },\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"wiki\": \"https://plugins.jenkins.io/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"TheHighTitle\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\",\n            \"popularity\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n\n<!-- File: test/src/test/resources/plugins/deprecations-update-center.json (Tokens: ~900 | Category: anthropic-skill) -->\nupdateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Dec 31, 1969\",\n    \"name\": \"core\",\n    \"url\": \"jenkins.war\",\n    \"version\": \"23\"\n  },\n  \"id\": \"default\",\n  \"plugins\": {\n    \"credentials\": {\n      \"buildDate\": \"Apr 04, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"icon-shim\",\n          \"optional\": false,\n          \"version\":\"2.0.2\"\n        }\n      ],\n      \"developers\": [],\n      \"excerpt\": \"This plugin allows you to store credentials in Jenkins.\",\n      \"gav\": \"org.jenkins-ci.plugins:credentials:1.27\",\n      \"labels\": [],\n      \"name\": \"credentials\",\n      \"previousTimestamp\": \"2016-03-24T01:19:58.00Z\",\n      \"previousVersion\": \"1.26\",\n      \"releaseTimestamp\": \"2016-04-04T16:26:54.00Z\",\n      \"requiredCore\": \"1.565\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"XWJpfL8B2x7qrISJg7IY2ZTPxFk=\",\n      \"title\": \"Credentials Plugin\",\n      \"url\": \"credentials.hpi\",\n      \"version\": \"1.27\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Credentials+Plugin\"\n    },\n    \"icon-shim\": {\n      \"buildDate\": \"Feb 23, 2016\",\n      \"dependencies\": [],\n      \"developers\": [],\n      \"excerpt\": \"This plugin allows other Jenkins plugins to take advantage of the <l:icon> tag. \",\n      \"gav\": \"org.jenkins-ci.plugins.icon-shim:icon-shim:2.0.3\",\n      \"labels\": [\"deprecated\"],\n      \"name\": \"icon-shim\",\n      \"previousTimestamp\": \"2016-01-09T20:01:12.00Z\",\n      \"previousVersion\": \"2.0.2\",\n      \"releaseTimestamp\": \"2016-02-23T23:08:18.00Z\",\n      \"requiredCore\": \"1.609\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"umtSUbNwIuqU6JGEQcBxqFt1X24=\",\n      \"title\": \"Icon Shim Plugin\",\n      \"url\": \"icon-shim.hpi\",\n      \"version\": \"2.0.3\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Icon+Shim+Plugin\"\n    },\n    \"token-macro\": {\n      \"buildDate\": \"Dec 14, 2015\",\n      \"dependencies\": [],\n      \"developers\": [],\n      \"excerpt\": \"This plugin adds reusable macro expansion capability for other plugins to use\",\n      \"gav\": \"org.jenkins-ci.plugins:token-macro:1.12.1\",\n      \"labels\": [\"deprecated\"],\n      \"name\": \"token-macro\",\n      \"previousTimestamp\": \"2015-12-11T08:27:18.00Z\",\n      \"previousVersion\": \"1.12\",\n      \"releaseTimestamp\": \"2015-12-14T18:07:56.00Z\",\n      \"requiredCore\": \"1.609.2\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"TV61PGo+od75URp3maLGUFJ768k=\",\n      \"title\": \"Token Macro Plugin\",\n      \"url\": \"token-macro.hpi\",\n      \"version\": \"1.9\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Token+Macro+Plugin\"\n    }\n  },\n  \"deprecations\": {\n      \"icon-shim\": { \"url\": \"https://www.jenkins.io/deprecations/icon-shim/\" },\n      \"variant\": { \"url\": \"https://www.jenkins.io/deprecations/variant/\" }\n  },\n  \"updateCenterVersion\": 1\n}\n);\n\n<!-- File: test/src/test/resources/plugins/htmlpublisher-update-center.json (Tokens: ~382 | Category: anthropic-skill) -->\nupdateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", // has to be here because updateDirectly sniffs only very limited formats\n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"htmlpublisher\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [\n                {\n                    \"developerId\": \"mcrooney\",\n                    \"name\": \"Michael Rooney\"\n                }\n            ],\n            \"excerpt\": \"This plugin publishes HTML reports.\",\n            \"name\": \"htmlpublisher\",\n            \"wiki\": \"https://plugins.jenkins.io/htmlpublisher\",\n            \"requiredCore\": \"1.398\",\n            \"sha1\": \"tVSI0DVK02k9R3KV1M3A451Da3c=\",\n            \"title\": \"HTML Publisher\",\n            \"url\": \"htmlpublisher.jpi\",\n            \"version\": \"0.7\"\n        },\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"wiki\": \"https://plugins.jenkins.io/dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Dummy\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n\n<!-- File: test/src/test/resources/plugins/invalid-signature-update-center-core-cm.json (Tokens: ~3100 | Category: anthropic-skill) -->\n{\n  \"updateCenterVersion\": 1,\n  \"core\": {\n    \"name\": \"core\",\n    \"version\": \"2.541\",\n    \"url\": \"http://updates.jenkins.io/download/war/2.541/jenkins.war\"\n  },\n  \"plugins\": {},\n  \"signature\": {\n    \"correct_digest\": \"scNImoAz/AONJTUC+jwpX1ik1Mg=\",\n    \"correct_digest512\": \"0442f8003c5b707bdd7f8f06c096d51c3da1ad5715946ad226a8e4c8ce85a71a4db1cf4f7bf9565220a7339a2103780ae75e85a08c18e9642165c9f296660e56\",\n    \"certificates\": [\n      \"MIIFhDCCA2wCCQDGSFE7A358zjANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkRFMRgwFgYDVQQKDA9DbG91ZEJlZXMsIEluYy4xFjAUBgNVBAMMDXVwZGF0ZS1jZW50ZXIxNTAzBgkqhkiG9w0BCQEWJm9wZXJhdGlvbnMrdXBkYXRlLWNlbnRlckBjbG91ZGJlZXMuY29tMB4XDTIwMDUyOTAxMjgxNFoXDTMwMDUyNzAxMjgxNFowgYMxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJERTEYMBYGA1UECgwPQ2xvdWRCZWVzLCBJbmMuMRYwFAYDVQQDDA11cGRhdGUtY2VudGVyMTUwMwYJKoZIhvcNAQkBFiZvcGVyYXRpb25zK3VwZGF0ZS1jZW50ZXJAY2xvdWRiZWVzLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJyeG1X+jhC6NdNTyYRP0iPBF8j1gt9BGsGfTktdwpHpHSfHWwn2S3SAkAGVpck6kOWudejHvKmaAHMEiON0T4RHLnOc0BRd5W/BOzyVgB0eytkjSANeB9UIRNuCZoUM8NdNCyAcr9fmsns6jVRzCwnuyxeXFvGYgikzoO/ZC0/vsyAHp/2AzvgTE/7tFuJYHuvQ8ACfSPRgSQ3rc0hpSnSVV1UqTwrE/1AIhEjisNRXc6eMxlStFIsVuRkdaJRr7pi6W0mFmQr2gFtDHJkqX2nwHqNPzuJ7AVF2VXlh4j7GecDxwVdtVKdQEuCxn7IbX8UbWLcA/IwBnR8ZaHUr1KER+LjTIjwXlQnv3wAoz3YqCvgvKlx1HVTtf/PVlJG0STiPHZtwSqJpgXjQ+XLXCW1gsevDR2fyyddxC5p21AvQ480SGY1cRuesTEpoZjTYW4jNJsb8JKhyyAM50GHYWIgCyCavgHH+da+J7kgSqVmBIgum9Ws4Mh6AQHTUcxozff3vIUnRU8B5Lg20q4UZqDrFHKxQMyvEFXBmGIsqw6EtPTKzPWIq/noq2YT4mrpi1iFDPd8phHuy7IIDqmHPP0GvcL9f/QUDysmVgOuOQShtFhA5ZX2KHJ4sjtPDzYq/EjStI+tytR10aV12a/iL4eBfNlhP0UiPVhw2hLg3xMLBAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAHGSLYRRZ032pmbwHY8yg9+z7P2TljaYA4dI5/WUmev0oNyEwEwcbMhhLq1yIG9bDjo65WFYyNijX7eJHGSTR2clRLRZ67N2z4hOkymgLbpXgCoyAr7Pgkl2sxz3lW/VPTN7ZFl37ZkbsUuSFy5BnNXkISh5bDATX9JCJCPYzdVKBbjd2kyMeiOz7Gf/SYOEBvp/vgz3gqv5ZLQIEKFmZT2imiELmfgO0uuVlCgJWU9PDGEb2MW4Td0v0hzL5aycYQSl0bAbiTSqofSIOUdniELYJEtn0G/tdxY5ZnlgEP8jdSNlsnESArjyxGJanwxzQdMps6MaTxew+tYPzjMACEQaLeNUHmLtlMRFaqWPcOj85XZ3qzBwwOESFq3NQu8NZcOJrNr84AHFkPnE90gSNaZlA2XJReioGViBmo421LypKobjbny0z2L2jvQ7lI23Hdt4DA34cB6dlPg/6Vi9PyhokeNTL5VZCGpU8WzhMoxq/4pNLawq2suE92OeYuWDz2v65OJWJe1EEXQhX5H8G1001pv2OD+p5xew/QfDxshCsi3hPVRSB1qVquMgmhOBCnq1j/ocGOubLKQ0WpeSUYDynVrfpvQ1rCW+Sbz0fEduMPrD8c+2+v/U6NFDxqZCtooRbtNQeKuyJYtKoB6VuUAWHOqi95lCirlplY2Mjljn\"\n    ],\n    \"correct_signature\": \"ZDSVZkFRPiIbwDkpwfj0B3B/PvGc5mNpNvR6tcxCn2LKDWKeYXu/MJzsna+3ElohT+QXzzvKvw5oiAkhvTQ0l9o/jOhBzMiS8dYl6uVebdb70DVgoLrNe02DqxXoMTkXLOnZ/tpGRrWxPhi2dMy6bUt5aBl6gGbiog3OSlA+TafO/KH4yxK5/0cv8kfUW3c6HopY5rRq4z6RUXTPaljO1iVE91w3QYrDahhHBBC3UPetfslEWSliTgckUFojfdX/67hR1921lgL2ITxGtOS4j+dO9ydUVAaY6McAU1kJVrljY9IwsLxMaENrAL7otXG2xKBBCskTNcrizODuyzIg7LHOOVX6/EIzTN+o9RZG4b5zxwQZq5NS4yldbPpXPZuXnezCWr8qndwK3pqbiwmvLiBcsFCrnz7e2ixiAs7c6ZY6srb5WScVywZeLHwhpISEBPZe4ejvWQRHaDanca15IKeqARJKL8H/Jti1aUHqrLkH92s8FWaEL25TrMXb5u2r15qpL6OCMP+5O2jEnVl0ajkkNb/BBqUPuPXsg5vo8tkuk7gylNrK0LSM/t49gdYGBE/Cp2GgvGwfhasM27Os+J1TnIs0Bqsl125CwWxa7aXql39JQ/t12ekAUZvgziTGY1LHO4V7YMWTdiBdr57LKudFpFJZGXsPMkupi8mtlCU=\",\n    \"correct_signature512\": \"0403e57342c6610922a4ca1c647b075923baa9d38ba50a9b5eb3fd2cd4154febf60434d3d9dc2e15db536128191f69a0bafe119cba7b7d887b8b0d38ebac0855da7b6f958afe06a48362cee018159628852fa593e58e56aa8cf94c978f344e906db8559b69d72971b918322e7108a23fb124022b2f442f73f12e5a34af0385295954f7347da4ff0faf33db8c2dc1c1684551a0018c30fd2d39117717b092c42e20c6d78506d89d942d30c66295c5e04cfd655259e4a4a263a85a7b3a89377ae067279989a164ab46ae34edbed7f722f3c4f2bbd9d59412559eeaed03ef5e743602c54d0222d010ce0c010576a682b9979654e976aa418deb0de5069139031e04a61d26904e70bdca2168dc434f5955c6f39f6c6fe45b6014702b5afedfa2f89763f2e43fbb82d47858a1fd0bd04bea05a4f23d207d28c3246a99c2b2ac84a4fa16da292148074afd358728a2844ef985bf9a1479d6cf1bb1d7acc48c9731e2a9906f8beac110d91c851736bfd12508ae08c669d89a74a347a764b1f4be5fe01829ab0f80e6da5e2abafeb045a50b066ec3d6a6a95254fdc57e898eaf91b48d8585ef74b9ab1feecea2583c37be77d7c295c5918d492e01515b76877508d8af3bedddf1f2c56453ffa88505df9b2d8865e5a9970af0875cbfa596afe10326befbea4970cb2160b59cbff683b351d0a3b872039934cfff668dfe92c3f4d4abd262\",\n    \"digest\": \"216DEgEmoe6+B+96+1RFOIKCqmY=\",\n    \"signature\": \"X4RsFd2sxBMy2BaUeW64hvzP+VUg/nS0KSoKnCo26nt5G5qXvJ9TVb9ifMuLdFnk2kPMGOh/NZ5rfPFdVhLPRkcpg9saAXYcMYj4Nfg6gzlgBjsGzcmaQ6ky2q2qTIEXGZcjKTql99uap9hMXKaXDdgcfVE22mV92dvASazz1KX3fM37sticmC6eJF+Fj1OFx2BPjzPaNKZyXuwqMe7X3SG70fY0bbcc6TfOXSHWOI3WS0T7N13Br0cD/kx+r8sKDv73kkx/anI0VxxaGXcttZ9M9q/ubqRDju6dLubXP+5rTzQmphpwwUPz4t4mv0Acp8/E35Rp5SELn45cUJTyb2anxPOVB84gKBaeN9G+fitEmQkEt2jLnidcKTbNfgPUXWAkUnCuPbl7W7zeRQ4dnEQoCfkswS3Q5qoE8R0d76G//R8p6oeQZL9akV4NHV9E22iu0l+eA8GTrX50TEApF1+iil/Y4CeHWyALBn/FYARig2L3W040O9GOPoBGpZ5qTFxA55es4h69ij84nt+uANJzypzRFV7DmhL97UKm4XV7ADB+UQ90pXvAoih510O0p1/67xdZcKx5URhmj53xOAn8WbvATzeu8/MqNnglmTcX+VKInVWjai4gtOg2UmaijUCt0CuCcLNyWpClk51p0Kfr7gYb4UKJuWSIfVzHaPY=\"\n  }\n}\n\n<!-- File: test/src/test/resources/plugins/invalid-signature-update-center.json (Tokens: ~110 | Category: anthropic-skill) -->\n{\n  \"updateCenterVersion\": \"1\",\n  \"core\": {\n    \"name\": \"core\",\n    \"version\": \"2.541\",\n    \"url\": \"http://updates.jenkins.io/download/war/2.541/jenkins.war\"\n  },\n  \"plugins\": {},\n  \"signature\": {\n    \"certificates\": [\n      \"InvalidBase64CertificateDataThatWillFailValidation==\"\n    ],\n    \"correct_digest\": \"invalid_digest_value\",\n    \"correct_signature\": \"invalid_signature_value\"\n  }\n}\n\n<!-- File: test/src/test/resources/plugins/no-wiki-update-center.json (Tokens: ~318 | Category: anthropic-skill) -->\nupdateCenter.post(\n{\n  \"connectionCheckUrl\": \"https://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Jun 20, 2026\",\n    \"name\": \"core\",\n    \"sha1\": \"dummy\",\n    \"sha256\": \"dummy\",\n    \"size\": 1,\n    \"url\": \"https://updates.jenkins.io/download/war/2.570/jenkins.war\",\n    \"version\": \"2.570\"\n  },\n  \"generationTimestamp\": \"2026-06-20T00:00:00Z\",\n  \"id\": \"NoWiki\",\n  \"deprecations\": [],\n  \"plugins\": {\n    \"plugin-without-wiki\": {\n      \"buildDate\": \"Jun 20, 2026\",\n      \"dependencies\": [],\n      \"excerpt\": \"A plugin without a wiki URL.\",\n      \"health\": 100,\n      \"name\": \"plugin-without-wiki\",\n      \"popularity\": 1,\n      \"releaseTimestamp\": \"2026-06-20T00:00:00.00Z\",\n      \"requiredCore\": \"2.0\",\n      \"sha1\": \"dummy\",\n      \"sha256\": \"dummy\",\n      \"title\": \"Plugin Without Wiki\",\n      \"url\": \"https://updates.jenkins.io/download/plugins/plugin-without-wiki/1.0/plugin-without-wiki.hpi\",\n      \"version\": \"1.0\"\n    }\n  },\n  \"updateCenterVersion\": \"1\"\n}\n);\n\n<!-- File: test/src/test/resources/plugins/search-test-update-center1.json (Tokens: ~963 | Category: anthropic-skill) -->\nupdateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", \n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"credentials\": {\n\t    \"buildDate\": \"Apr 04, 2016\",\n\t    \"dependencies\": [\n                {\n\t\t    \"name\": \"icon-shim\",\n\t\t    \"optional\": false,\n\t\t    \"version\":\"2.0.2\"\n\t\t}\n\t    ],\n\t    \"developers\": [],\n\t    \"excerpt\": \"This plugin allows you to store credentials in Jenkins.\",\n\t    \"gav\": \"org.jenkins-ci.plugins:credentials:1.27\",\n\t    \"labels\": [],\n\t    \"name\": \"credentials\",\n\t    \"previousTimestamp\": \"2016-03-24T01:19:58.00Z\",\n\t    \"previousVersion\": \"1.26\",\n\t    \"releaseTimestamp\": \"2016-04-04T16:26:54.00Z\",\n\t    \"requiredCore\": \"1.565\",\n\t    \"scm\": \"github.com\",\n\t    \"sha1\": \"XWJpfL8B2x7qrISJg7IY2ZTPxFk=\",\n\t    \"title\": \"Credentials Plugin\",\n\t    \"url\": \"credentials.hpi\",\n\t    \"version\": \"1.27\",\n\t    \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Credentials+Plugin\"\n\t},\n\t\"icon-shim\": {\n\t    \"buildDate\": \"Feb 23, 2016\",\n\t    \"dependencies\": [],\n\t    \"developers\": [],\n\t    \"excerpt\": \"This plugin allows other Jenkins plugins to take advantage of the <l:icon> tag. \",\n\t    \"gav\": \"org.jenkins-ci.plugins.icon-shim:icon-shim:2.0.3\",\n\t    \"labels\": [\"ui\"],\n\t    \"name\": \"icon-shim\",\n\t    \"previousTimestamp\": \"2016-01-09T20:01:12.00Z\",\n\t    \"previousVersion\": \"2.0.2\",\n\t    \"releaseTimestamp\": \"2016-02-23T23:08:18.00Z\",\n\t    \"requiredCore\": \"1.609\",\n\t    \"scm\": \"github.com\",\n\t    \"sha1\": \"umtSUbNwIuqU6JGEQcBxqFt1X24=\",\n\t    \"title\": \"Icon Shim Plugin\",\n\t    \"url\": \"icon-shim.hpi\",\n\t    \"version\": \"2.0.3\", \n\t    \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Icon+Shim+Plugin\"\n\t},\n        \"token-macro\": {\n\t    \"buildDate\": \"Dec 14, 2015\",\n\t    \"dependencies\": [],\n\t    \"developers\": [],\n\t    \"excerpt\": \"This plugin adds reusable macro expansion capability for other plugins to use\",\n\t    \"gav\": \"org.jenkins-ci.plugins:token-macro:1.12.1\",\n\t    \"labels\": [],\n\t    \"name\": \"token-macro\",\n\t    \"previousTimestamp\": \"2015-12-11T08:27:18.00Z\",\n\t    \"previousVersion\": \"1.12\",\n\t    \"releaseTimestamp\": \"2015-12-14T18:07:56.00Z\",\n\t    \"requiredCore\": \"1.609.2\",\n\t    \"scm\": \"github.com\",\n\t    \"sha1\": \"TV61PGo+od75URp3maLGUFJ768k=\",\n\t    \"title\": \"Token Macro Plugin\",\n\t    \"url\": \"token-macro.hpi\",\n\t    \"version\": \"1.9\",\n\t    \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Token+Macro+Plugin\"\n\t},\n        \"hello-world\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"hello-=world\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Hello World\",\n            \"url\": \"http://nowhere.net/hello-world.hpi\",\n            \"version\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n\n<!-- File: test/src/test/resources/plugins/search-test-update-center2.json (Tokens: ~332 | Category: anthropic-skill) -->\nupdateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", \n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"secondary\",\n    \"plugins\": {\n\t\t\"hello-huston\": {\n\t\t\t\"buildDate\": \"Dec 17, 2008\",\n\t\t\t\"dependencies\": [],\n\t\t\t\"developers\": [],\n\t\t\t\"excerpt\": \"…\",\n\t\t\t\"name\": \"hello-huston\",\n\t\t\t\"requiredCore\": \"1.100\",\n\t\t\t\"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n\t\t\t\"title\": \"Hello Huston\",\n\t\t\t\"url\": \"http://nowhere.net/hello-huston.hpi\",\n\t\t\t\"version\": \"1.0\"\n\t\t},\n        \"dummy\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"name\": \"dummy\",\n            \"requiredCore\": \"1.100\",\n            \"sha1\": \"wtzlcjUKiMcg90H5CTYkGX6+r8Y=\",\n            \"title\": \"Dummy\",\n            \"url\": \"http://nowhere.net/dummy.hpi\",\n            \"version\": \"1.0\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n\n<!-- File: test/src/test/resources/plugins/security3037-update-center.json (Tokens: ~943 | Category: anthropic-skill) -->\nupdateCenter.post(\n{\n  \"connectionCheckUrl\": \"https://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Jan 31, 2023\",\n    \"name\": \"core\",\n    \"sha1\": \"TO8l3+wqx2hWtLWMHjmIOj+ERsk=\",\n    \"sha256\": \"BrXTCwJse5e6b/shXjv5edRJQRjxfJ/GbNrhgYcrZoU=\",\n    \"size\": 98362341,\n    \"url\": \"https://updates.jenkins.io/download/war/2.389/jenkins.war\",\n    \"version\": \"2.389\"\n  },\n  \"generationTimestamp\": \"2023-02-03T11:04:30Z\",\n  \"id\": \"Security3037\",\n  \"deprecations\": [],\n  \"plugins\": {\n    \"workflow-aggregator\": {\n      \"buildDate\": \"Jun 29, 2022\",\n      \"defaultBranch\": \"master\",\n      \"dependencies\": [\n        {\n          \"name\": \"pipeline-groovy-lib<img src=x onerror=alert(1)>\",\n          \"optional\": false,\n          \"version\": \"591.v3a_7f422b_d058<img src=x onerror=alert(1)>\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"johndoe<img src=x onerror=alert(1)>\",\n          \"name\": \"john doe<img src=x onerror=alert(1)>\"\n        }\n      ],\n      \"excerpt\": \"A suite of plugins that lets you orchestrate automation, simple or complex. See <a href=\\\"https://www.jenkins.io/solutions/pipeline/\\\" target=\\\"_blank\\\" rel=\\\"nofollow noopener noreferrer\\\">Pipeline as Code with Jenkins</a> for more details.\",\n      \"gav\": \"org.jenkins-ci.plugins.workflow:workflow-aggregator:590.v6a_d052e5a_a_b_5<img src=x onerror=alert(1)>\",\n      \"issueTrackers\": [\n        {\n          \"reportUrl\": \"https://www.jenkins.io/participate/report-issue/redirect/#21710<img src=x onerror=alert(1)>\",\n          \"type\": \"jira<img src=x onerror=alert(1)>\",\n          \"viewUrl\": \"https://issues.jenkins.io/issues/?jql=component=21710<img src=x onerror=alert(1)>\"\n        }\n      ],\n      \"labels\": [\n        \"cli<img src=x onerror=alert(1)>\",\n        \"misc\",\n        \"slaves\",\n        \"trigger\"\n      ],\n      \"name\": \"workflow-aggregator<img src=x onerror=alert(1)>\",\n      \"popularity\": 256809,\n      \"previousTimestamp\": \"2022-05-24T12:27:03.00Z<img src=x onerror=alert(1)>\",\n      \"previousVersion\": \"<img src=x onerror=alert(1)>581.v0c46fa_697ffd\",\n      \"releaseTimestamp\": \"2022-06-29T21:02:16.00Z<img src=x onerror=alert(1)>\",\n      \"requiredCore\": \"9999999<img src=x onerror=alert(1)>\",\n      \"scm\": \"https://github.com/jenkinsci/workflow-aggregator-plugin<img src=x onerror=alert(1)>\",\n      \"sha1\": \"6iNlKTnXvr4W+9Svwy1+ctyqgvo=<img src=x onerror=alert(1)>\",\n      \"sha256\": \"P0SFgnqOBFZjxkdKORiQUbrhdlfW5YU7tOpe85bfGWE=<img src=x onerror=alert(1)>\",\n      \"size\": 8282,\n      \"title\": \"Pipeline<img src=x onerror=alert(1)>\",\n      \"url\": \"https://updates.jenkins.io/download/plugins/workflow-aggregator/590.v6a_d052e5a_a_b_5/workflow-aggregator.hpi\",\n      \"version\": \"590.v6a_d052e5a_a_b_5<img src=x onerror=alert(1)>\",\n      \"wiki\": \"javascript:alert(1)\"\n    }\n  },\n  \"updateCenterVersion\": \"1\"\n});\n\n<!-- File: test/src/test/resources/plugins/upload-test-update-center.json (Tokens: ~276 | Category: anthropic-skill) -->\nupdateCenter.post(\n{\"connectionCheckUrl\":\"http://www.google.com/\", \n    \"core\": {\n        \"buildDate\": \"Dec 31, 1969\",\n        \"name\": \"core\",\n        \"url\": \"jenkins.war\",\n        \"version\": \"23\"\n    },\n    \"id\": \"default\",\n    \"plugins\": {\n        \"dependee\": {\n            \"buildDate\": \"Dec 17, 2008\",\n            \"dependencies\": [],\n            \"developers\": [],\n            \"excerpt\": \"…\",\n            \"gav\": \"org.jenkins-ci.plugins.dependencytest:dependee:0.0.2\",\n            \"labels\": [],\n            \"name\": \"dependee\",\n            \"requiredCore\": \"1.466\",\n            \"sha1\": \"2Axh5MnAFTnHml0V0ksrpYhMK1E=\",\n            \"sha256\": \"7XhzuS+CtvCQpG35Qj0gC1p0dlOg+kXXJpvWi7QGDKE=\",\n            \"title\": \"dependee\",\n            \"url\": \"dependee-0.0.2.hpi\",\n            \"version\": \"0.0.2\"\n        }\n    },\n    \"updateCenterVersion\": 1\n}\n);\n\n<!-- File: test/src/test/resources/plugins/warnings-update-center-malformed.json (Tokens: ~2616 | Category: anthropic-skill) -->\n{\n  \"connectionCheckUrl\": \"http://www.google.com/\",\n  \"core\": {\n    \"buildDate\": \"Dec 18, 2016\",\n    \"name\": \"core\",\n    \"sha1\": \"x4rDgtNYm9l7zJ16RVuxMRgGoQE=\",\n    \"url\": \"http://updates.jenkins-ci.org/download/war/2.37/jenkins.war\",\n    \"version\": \"2.37\"\n  },\n  \"id\": \"jenkins40494\",\n  \"plugins\": {\n    \"display-url-api\": {\n      \"buildDate\": \"Sep 22, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"junit\",\n          \"optional\": false,\n          \"version\": \"1.3\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"jdumay\",\n          \"email\": \"jdumay@cloudbees.com\",\n          \"name\": \"James Dumay\"\n        }\n      ],\n      \"excerpt\": \"\\\\\\\\  Provides the DisplayURLProvider extension point to provide alternate URLs for use in notifications.  URLs can be requested/extended for these UI locations:  * Root page. * Job. * Run. * Run changes. * Test result.  \",\n      \"gav\": \"org.jenkins-ci.plugins:display-url-api:0.5\",\n      \"labels\": [],\n      \"name\": \"display-url-api\",\n      \"previousTimestamp\": \"2016-09-22T09:35:08.00Z\",\n      \"previousVersion\": \"0.4\",\n      \"releaseTimestamp\": \"2016-09-22T10:42:00.00Z\",\n      \"requiredCore\": \"1.625.3\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"QEykyLSFuZTnFyHrzZEOgzSsYcU=\",\n      \"title\": \"Display URL API\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/display-url-api/0.5/display-url-api.hpi\",\n      \"version\": \"0.5\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Display+URL+API+Plugin\"\n    },\n    \"junit\": {\n      \"buildDate\": \"Oct 17, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"structs\",\n          \"optional\": false,\n          \"version\": \"1.2\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"ogondza\"\n        }\n      ],\n      \"excerpt\": \"Allows JUnit-format test results to be published.\",\n      \"gav\": \"org.jenkins-ci.plugins:junit:1.19\",\n      \"labels\": [\n        \"report\"\n      ],\n      \"name\": \"junit\",\n      \"previousTimestamp\": \"2016-08-08T15:10:34.00Z\",\n      \"previousVersion\": \"1.18\",\n      \"releaseTimestamp\": \"2016-10-17T12:15:20.00Z\",\n      \"requiredCore\": \"1.580.1\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"f3jcYlxz6/8PK43W3KL5LFtz7ro=\",\n      \"title\": \"JUnit Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/junit/1.19/junit.hpi\",\n      \"version\": \"1.19\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/JUnit+Plugin\"\n    },\n    \"mailer\": {\n      \"buildDate\": \"Sep 04, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"display-url-api\",\n          \"optional\": false,\n          \"version\": \"0.2\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"andresrc\"\n        }\n      ],\n      \"excerpt\": \"This plugin allows you to configure email notifications for build results. This is a break-out of the original core based email component. \",\n      \"gav\": \"org.jenkins-ci.plugins:mailer:1.18\",\n      \"labels\": [],\n      \"name\": \"mailer\",\n      \"previousTimestamp\": \"2016-04-20T08:46:22.00Z\",\n      \"previousVersion\": \"1.17\",\n      \"releaseTimestamp\": \"2016-09-04T09:14:16.00Z\",\n      \"requiredCore\": \"1.625.3\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"poG1EauZFM5lZE5hCBx5mqr/mMA=\",\n      \"title\": \"Jenkins Mailer Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/mailer/1.18/mailer.hpi\",\n      \"version\": \"1.18\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Mailer\"\n    },\n    \"extra-columns\": {\n      \"buildDate\": \"Apr 11, 2016\",\n      \"dependencies\": [\n        {\n          \"name\": \"junit\",\n          \"optional\": false,\n          \"version\": \"1.11\"\n        }\n      ],\n      \"developers\": [\n        {\n          \"developerId\": \"fredg\",\n          \"name\": \"Fred G.\"\n        }\n      ],\n      \"excerpt\": \"This is a general listview-column plugin that currently contains the following columns: Test Result, Configure Project button, Disable/Enable Project button, Project Description, Build Description, SCM Type, Last/Current Build Console output, Job Type, Build Duration, Build Parameters.\",\n      \"gav\": \"org.jenkins-ci.plugins:extra-columns:1.17\",\n      \"labels\": [\n        \"listview-column\"\n      ],\n      \"name\": \"extra-columns\",\n      \"previousTimestamp\": \"2015-12-11T01:18:48.00Z\",\n      \"previousVersion\": \"1.16\",\n      \"releaseTimestamp\": \"2016-04-11T22:36:22.00Z\",\n      \"requiredCore\": \"1.475\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"8y9Y91n7/Aw47G3pCxzJzTd94J0=\",\n      \"title\": \"Extra Columns Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/extra-columns/1.17/extra-columns.hpi\",\n      \"version\": \"1.17\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Extra+Columns+Plugin\"\n    },\n    \"structs\": {\n      \"buildDate\": \"Aug 30, 2016\",\n      \"dependencies\": [],\n      \"developers\": [\n        {\n          \"developerId\": \"jglick\"\n        }\n      ],\n      \"excerpt\": \"Library plugin for DSL plugins that need concise names for Jenkins extensions\",\n      \"gav\": \"org.jenkins-ci.plugins:structs:1.5\",\n      \"labels\": [],\n      \"name\": \"structs\",\n      \"previousTimestamp\": \"2016-08-26T14:11:44.00Z\",\n      \"previousVersion\": \"1.4\",\n      \"releaseTimestamp\": \"2016-08-30T14:10:10.00Z\",\n      \"requiredCore\": \"1.580.1\",\n      \"scm\": \"github.com\",\n      \"sha1\": \"fK+F0PEfSS//DOqmNJvX2rQYabo=\",\n      \"title\": \"Structs Plugin\",\n      \"url\": \"http://updates.jenkins-ci.org/download/plugins/structs/1.5/structs.hpi\",\n      \"version\": \"1.5\",\n      \"wiki\": \"https://wiki.jenkins-ci.org/display/JENKINS/Structs+plugin\"\n    }\n  },\n  \"warnings\": [\n    {\n      \"id\": \"SECURITY-208\",\n      \"type\": \"plugin\",\n      \"name\": \"google-login\",\n      \"message\": \"Authentication bypass vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2015-10-12\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.1\",\n          \"pattern\": \"1[.][01](|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-136\",\n      \"type\": \"plugin\",\n      \"name\": \"extra-columns\",\n      \"message\": \"Stored XSS vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-04-11\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.16\",\n          \"pattern\": \"1[.](\\\\d|1[0123456])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-258\",\n      \"type\": \"plugin\",\n      \"name\": \"extra-columns\",\n      \"message\": \"Groovy sandbox protection incomplete\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-04-11\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.18\",\n          \"pattern\": \"1[.](\\\\d|1[012345678])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-85\",\n      \"type\": \"plugin\",\n      \"name\": \"tap\",\n      \"message\": \"Path traversal vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-06-20\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.24\",\n          \"pattern\": \"1[.](\\\\d|1\\\\d|2[01234])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-278\",\n      \"type\": \"plugin\",\n      \"name\": \"image-gallery\",\n      \"message\": \"Path traversal vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-06-20\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.3\",\n          \"pattern\": \"(0[.].*|1[.][0123])(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-290\",\n      \"type\": \"plugin\",\n      \"name\": \"build-failure-analyzer\",\n      \"message\": \"Cross-site scripting vulnerability\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-06-20\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.15.0\",\n          \"pattern\": \"1[.](\\\\d|1[012345])[.]\\\\d+(|[.-].*)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-305\",\n      \"type\": \"plugin\",\n      \"versions\": [\n        {\n          \"lastVersion\": \"1.7.24\",\n          \"pattern\": \"1[.]7[.](\\\\d(|[.-].*)|24)\"\n        }\n      ]\n    },\n    {\n      \"id\": \"SECURITY-309\",\n      \"type\": \"plugin\",\n      \"name\": \"cucumber-reports\",\n      \"message\": \"Plugin disables Content-Security-Policy for files served by Jenkins\",\n      \"url\": \"https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-07-27\",\n      \"versions\": [\n        {\n          \"firstVersion\": \"1.3.0\",\n          \"lastVersion\": \"2.5.1\",\n          \"pattern\": \"(1[.][34]|2[.][012345])(|[.-].*)\"\n        }\n      ]\n    }\n  ],\n  \"updateCenterVersion\": \"1\"\n}\n</yakaai_skills>"}