Commit Graph
38776 Commits
Author SHA1 Message Date
renovate[bot] 123d5f60ff Update dependency io.jenkins.plugins:plugin-util-api to v7.1403.vd380b_c42e90c (#27548)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-16 05:26:25 -06:00
renovate[bot] b61ee88d37 Update dependency vitest to v5.0.4 (#27547)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-16 05:26:14 -06:00
Kanhaiya76618 d73a34308c Canonicalize cached label expressions to share load statistics (#27428)
* Canonicalize cached label expressions to share load statistics

Fixes #27403

* Deduplicate label expressions in separate map and preserve raw aliases
2026-10-16 05:26:03 -06:00
Adarsh SinghandCopilot Autofix powered by AI c3ecfb04ea fix(ui): show concise error on form field validation failure during page load (#26818)
* fix(ui): show concise error on form field validation failure during page load

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix(ui): remove stray brace introduced by review suggestion

* test(ui): assert concise message when form validation returns HTTP 500

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-10-16 05:25:45 -06:00
Donghui Wang f44fdc3082 Match job names in global search suggestions (#26690) 2026-10-16 05:25:20 -06:00
Mark Waite 2d99bcf828 Revert "Update dependency commons-codec:commons-codec to v1.23.0" (#27542)
* Revert "Update dependency commons-codec:commons-codec to v1.23.0 (#27530)"

This reverts commit 2e5e5b7313.

* Do not upgrade to Apache Commons Codec 1.23.0

Needs a new release that fixes issue:

* https://github.com/jenkinsci/jenkins/issues/27539
2026-10-15 13:00:51 +01:00
renovate[bot] 1e6ac398bc Update dependency org.jenkins-ci.plugins:junit to v1438 (#27537)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-13 16:39:17 -06:00
renovate[bot] c5f3611032 Update dependency org.jenkins-ci.plugins:credentials to v1514 (#27536)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-13 16:39:04 -06:00
renovate[bot] 5cdce346ee Update dependency prettier to v3.9.10 (#27535)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-13 16:38:51 -06:00
renovate[bot] 8e2f5eb95d Update dependency org.jenkins-ci.plugins:bouncycastle-api to v2.30.1.86.2-310.v4655f6742752 (#27533)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-13 16:38:33 -06:00
5bedd4759f Keep ANSI colours in the live console after a pause in output (#27424)
* Keep console annotator state across empty progressive log chunks

The streaming progressiveHtml response only includes consoleAnnotator
in its metadata when there is new text to render. When a poll returns
no new output, the client overwrote its stored state with undefined and
stopped sending X-ConsoleAnnotator, so every later chunk was rendered by
a fresh annotator: AnsiColor escapes appeared raw and Timestamper
formatting was lost until the page was reloaded.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* Compare offsets to detect an empty chunk and add a test

An empty chunk is one where the requested start equals the returned end,
which does not depend on how the annotator state is transported. Adds
src/test/js/progressive-text.test.js covering both an empty poll and a
poll with new output.

Co-authored-by: Jakob Ackermann <17931887+das7pad@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Jakob Ackermann <17931887+das7pad@users.noreply.github.com>
Co-authored-by: Kris Stern <88480540+krisstern@users.noreply.github.com>
2026-10-13 16:38:14 -06:00
Jenkins Release Bot 76f1e25d73 [maven-release-plugin] prepare for next development iteration 2026-10-13 06:10:37 +00:00
Jenkins Release Bot 8534fcc912 [maven-release-plugin] prepare release jenkins-2.586 jenkins-2.586 2026-10-13 06:10:31 +00:00
renovate[bot] 94b7f5491a Update actions/create-github-app-token action to v3.3.0 (#27534)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-12 20:38:30 -06:00
renovate[bot] 2e5e5b7313 Update dependency commons-codec:commons-codec to v1.23.0 (#27530)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-12 12:12:21 -06:00
renovate[bot] 1688d3944b Lock file maintenance (#27528)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-12 12:12:07 -06:00
Jan Faracik 86f54628d2 Standardise shadows and focus rings for controls (#27527) 2026-10-12 12:20:15 +01:00
Jan Faracik 1c9bbfc726 Remove Manage Jenkins breadcrumb menu (#27529) 2026-10-12 12:19:55 +01:00
Jan Faracik 961bec5def Update User settings pages interface (#27526) 2026-10-12 08:24:52 +01:00
Rauneet Singh 4386cf394a Clean up obsolete Java version checks in tests (#27523) 2026-10-11 08:58:03 +01:00
renovate[bot] 379584d636 Update dependency org.jenkins-ci.plugins:junit to v1437 (#27525)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-10 21:23:59 -06:00
renovate[bot] 7f267af0fc Update dependency io.jenkins.plugins:caffeine-api to v3.3.0-210.v71b_2985ce530 (#27517)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-10 21:23:47 -06:00
renovate[bot] e805234f9d Update dependency eslint to v10.12.0 (#27516)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-10 21:23:34 -06:00
renovate[bot] 2be7dc1c6e Update dependency vite to v8.3.3 (#27515)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-10 21:23:21 -06:00
renovate[bot] 3683e4c52a Update dependency jsdom to v30.1.2 (#27512)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-10 21:23:09 -06:00
Daniel BeckandDaniel Beck 0ae952b81c Add support for hudson.model.Failure in CLI error output (#27340)
* Add support for hudson.model.Failure in CLI error output

* Fix Javadoc

* confirm the "unexpected" message does not show

* Adapt tests to changed behavior

---------

Co-authored-by: Daniel Beck <daniel-beck@users.noreply.github.com>
2026-10-10 21:22:55 -06:00
Rauneet SinghandTim Jacomb 8572a213c4 Run ATH tests on Java 25 in CI (#27511)
Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com>
2026-10-10 22:14:30 +01:00
renovate[bot] 7e0308a058 Update babel monorepo to v8.0.7 (#27524)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-10 10:16:28 -06:00
renovate[bot] 6e7c1aab42 Update actions/upload-artifact action to v7.0.2 (#27522)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-10 10:16:12 -06:00
renovate[bot] 211d7188f1 Update dependency org.jenkins-ci.plugins:script-security to v1433 (#27521)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-10 10:15:55 -06:00
renovate[bot] 0e91d1da6b Update release-drafter/release-drafter action to v7.10.0 (#27519)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-10 10:15:41 -06:00
renovate[bot] 08058c51af Update dependency postcss-preset-env to v11.6.1 (#27518)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-10 10:15:28 -06:00
renovate[bot] 86a79604c1 Update dependency postcss to v8.5.29 (#27514)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-10 10:14:40 -06:00
renovate[bot] 8bd7e80a41 Update dependency org.jenkins-ci.plugins:bouncycastle-api to v2.30.1.86.1-306.vfc711fa_36d5f (#27513)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-10 10:14:18 -06:00
renovate[bot] 7d007b4565 Update dependency handlebars to v4.7.10 [SECURITY] (#27510)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-10 10:14:01 -06:00
Somesh Kumar Singh 8a98cbdf9c Warn about unsafe authorization strategy (#27499)
Issue #27465: warn about unsafe authorization strategy
2026-10-10 10:13:46 -06:00
Aitor Moya Lopez d84f69e91c Propagate readOnlyMode into all dropdownDescriptorSelector fragments in core (#27167)
* Propagate readOnlyMode into SCM Checkout Strategy descriptor config

f:dropdownDescriptorSelector renders its selected descriptor's config.jelly
lazily via AJAX (lib/form/dropdownDescriptorSelector.jelly), and only
variables listed in its `capture` attribute are visible to that lazily
rendered fragment. hudson/model/Job/configure.jelly sets readOnlyMode for
the whole config page, but lib/hudson/project/config-scm.jelly's call for
scmCheckoutStrategy didn't capture it, so a Job's SCM Checkout Strategy
config fragment was not disabled for read-only viewers (Item.READ +
Item.EXTENDED_READ, no Item.CONFIGURE), even though every other field on
the page correctly disables in that case.

This mirrors the same gap that was originally found and fixed in
cloudbees-folder-plugin (JENKINS-62218,
jenkinsci/cloudbees-folder-plugin#747) and reverted there since it's a
core issue affecting every Job configuration page, not just folders. Part
of the JENKINS-12548 read-only system configuration browsing epic
(JEP-224). No Jira ticket filed yet for this specific core gap.

* Propagate readOnlyMode to remaining dropdownDescriptorSelector fragments

f:dropdownDescriptorSelector defers rendering of every non-selected
descriptor's config.jelly/config.groovy via l:renderOnDemand, which only
forwards variables named in its `capture` attribute into that later
AJAX-rendered fragment. readOnlyMode (JEP-224, JENKINS-12548) is not
forwarded by default, so a viewer with Item.EXTENDED_READ but not
Item.CONFIGURE can get back a fully editable fragment for any option other
than the currently selected one, even though the rest of the page correctly
disables.

The gap was first found and fixed for the SCM Checkout Strategy dropdown on
Job/configure.jelly (previous commit, also reported against
cloudbees-folder-plugin#747 / JENKINS-62218 and reverted there as a core
issue). Review of that fix pointed out the bug is generic to
dropdownDescriptorSelector, not specific to SCM Checkout Strategy. This
commit closes the remaining Job/agent-configuration-scoped call sites found
by auditing all *.jelly and *.groovy usages of the tag in core:

- HudsonPrivateSecurityRealm/config.jelly (Password Complexity Rule)
- DelegatingComputerLauncher/config.jelly and DumbSlave/configure-entries.jelly
  (agent Launch method, Availability/retention strategy)
- Maven/config.jelly (Settings file, Global Settings file build-step config)
- GlobalFingerprintConfiguration/config.jelly (Fingerprint Storage Engine)
- BuildDiscarderProperty/config-details.jelly and
  SimpleGlobalBuildDiscarderStrategy/config.jelly (Discard old builds strategy,
  at both the per-job and global-default nesting levels)
- GlobalMavenConfig/config.groovy (default settings/global settings provider)
- ViewsTabBar/GlobalConfigurationImpl/config.groovy (Views Tab Bar)
- GlobalCrumbIssuerConfiguration/config.groovy (Crumb Issuer)

hudson/model/MyViewsProperty/config.jelly (Views Tab Bar on a user's own
account page) was deliberately left out: that page requires full
Jenkins.ADMINISTER and never sets readOnlyMode in its render chain, so it is
not an instance of this bug.

A further instance of this same gap exists on the "Manage Jenkins > Security"
page (Security Realm / Authorization Strategy / Markup Formatter selectors),
reachable with only Overall.SYSTEM_READ. That one is being reported through
the Jenkins Security Team's private disclosure process instead of here, since
it can expose an editable Security Realm/Authorization Strategy fragment to a
low-privilege viewer -- a permission-escalation-adjacent issue rather than a
plain read-only-UI gap.

Adds a regression test (SCMCheckoutStrategyReadOnlyModeTest) that registers a
throwaway SCMCheckoutStrategy with a real editable field, triggers the same
renderOnDemand() JS a browser fires when switching the dropdown, and asserts
the resulting fragment is rendered as the standard read-only N/A placeholder
rather than an editable input.

* Propagate readOnlyMode to GlobalSecurityConfiguration's dropdownDescriptorSelector calls

Applies the same fix as the previous commit to the last remaining
dropdownDescriptorSelector call sites in core: Security Realm, Authorization,
and Markup Formatter on hudson/security/GlobalSecurityConfiguration/index.groovy
("Manage Jenkins > Security", reachable with only Overall.SYSTEM_READ).

This was initially held back to verify it wasn't a privilege-escalation risk
before publishing: GlobalSecurityConfiguration#configure() unconditionally
calls j.checkPermission(Jenkins.ADMINISTER) as the first line, before any
submitted JSON is read, so a forged configSubmit POST from a SYSTEM_READ-only
user is rejected server-side (AccessDeniedException3) regardless of what the
UI rendered; the Save/Apply buttons are also only rendered inside
l.isAdmin(). The lazily-rendered fragment itself never carries live secrets
either, since dropdownDescriptorSelector renders non-selected options with
instance=null. Confirmed the same double gate (checkPermission(CONFIGURE) in
doConfigSubmit) exists for the other already-fixed call sites, so this is the
same severity class as the rest of the change: a read-only-mode UI/UX gap,
not a write-path vulnerability.

Adds a regression test (GlobalSecurityConfigurationReadOnlyModeTest) covering
this Groovy-view, SYSTEM_READ-scoped rendering path, following the same
pattern as SCMCheckoutStrategyReadOnlyModeTest: register a throwaway
AuthorizationStrategy with a real editable field, trigger the same
renderOnDemand() JS a browser fires when switching the dropdown, and assert
the fragment renders as the standard read-only N/A placeholder.

* Propagate readOnlyMode once in dropdownDescriptorSelector taglib, not per caller

Per jtnord's review on #27167: rather than requiring every caller of
f:dropdownDescriptorSelector to pass capture="readOnlyMode" (12 call
sites in core alone, plus any plugin using the same taglib), fix it
once in the taglib itself.

lib/form/dropdownDescriptorSelector.jelly already always captures
"descriptor" and "it" for the lazily rendered l:renderOnDemand
fragment regardless of what the caller's capture attribute lists.
readOnlyMode now joins that same always-captured set, so read-only
mode propagates into every lazily loaded descriptor fragment
ecosystem-wide without any caller changes.

This reverts the 12 per-callsite capture="readOnlyMode" additions
from the previous commits on this branch and updates the two
JenkinsRule/HtmlUnit regression tests' documentation to point at the
new, single fix location. Both tests still pass unchanged, since they
exercise the real page end-to-end rather than depending on any
caller's capture attribute.

* Add a taglib-level regression test for dropdownDescriptorSelector

The two existing regression tests on this branch (SCMCheckoutStrategy,
GlobalSecurityConfiguration) exercise real pages end-to-end through
JenkinsRule + MockAuthorizationStrategy, which only covers 2 of the
now-generic fix's many callers and requires standing up a full
permission model to prove a taglib-level behavior.

Following this project's existing convention for testing this exact
taglib family (lib/form/DropdownListTest, lib/layout/RenderOnDemandTest,
lib/form/RowVisibilityGroupTest, the latter of which already reuses a
single config.jelly across sibling Descriptor implementations), add a
lean unit test that exercises f:dropdownDescriptorSelector directly via
a synthetic RootAction, with no security realm involved. The fixture's
test1.jelly sets readOnlyMode directly and deliberately omits
capture="readOnlyMode", proving the taglib itself is responsible for
propagating it into the lazily-rendered fragment -- which by
construction covers every current and future caller, not just the two
pages exercised by the other tests.

* Empty commit to retrigger CI
2026-10-10 10:13:29 -06:00
Mark Waite cd2a077aed Use ASM 9.11 to silence security scanners (#27507) 2026-10-10 08:14:19 +01:00
Mark Waite e3366b2d25 Use Jetty 12.1.14 from Winstone and Stapler updates (#27506) 2026-10-10 08:13:22 +01:00
Jesse Glick a41a51fe48 Log stack traces for OldDataMonitor.report on Run (#27500)
* Log stack straces for `OldDataMonitor.report` on `Run`

* Ignore `ReportException` https://github.com/jenkinsci/jenkins/pull/27500#discussion_r4195992415

* Reduce messages to `FINE` so they can be collected if and when desired https://github.com/jenkinsci/jenkins/pull/27500#discussion_r4196269765
2026-10-07 21:32:30 -06:00
Eunbin Son c365518dcb Use Locale.ROOT for case-insensitive matching in CollectionSearchIndex (#27497)
* Use Locale.ROOT for case-insensitive matching in CollectionSearchIndex

* Rename misleading case-sensitivity variable in CollectionSearchIndex

The local variable in suggest() held the result of
UserSearchProperty.isCaseInsensitive() but was named isCaseSensitive.
Rename it to caseInsensitive, matching FixedSet.suggest(). No
behavior change.
2026-10-07 21:32:11 -06:00
USJUN 5af872b637 [JENKINS-75310] Fix log recorder level updates (#27065)
* [JENKINS-75310] Fix log recorder level updates

* [JENKINS-75310] Handle removed log recorder targets

* [JENKINS-75310] Avoid repeated streams for descendant targets
2026-10-07 21:31:46 -06:00
Zbynek Konecny c34ebe0980 Limit dialog width to 100% of visible area (#26668)
* Limit dialog width to 100% of visible area

* Do not apply min function to 'inherit'

* Use CSS.supports instead of a regex
2026-10-07 21:31:26 -06:00
renovate[bot] db0e08291b Update dependency io.jenkins.plugins:commons-lang3-api to v3.21.0-122.v6a_ea_4fd34049 (#27493)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-06 17:05:49 -06:00
renovate[bot] a013b240d9 Update dependency vite to v8.3.2 (#27488)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-06 17:05:28 -06:00
Jenkins Release Bot 15367bb89e [maven-release-plugin] prepare for next development iteration 2026-10-06 06:08:37 +00:00
Jenkins Release Bot 4c33e0a9bd [maven-release-plugin] prepare release jenkins-2.585 jenkins-2.585 2026-10-06 06:08:30 +00:00
Markus WinterandMark Waite 9e0ba0a3aa Show cloud displayname instead of name (#27471)
Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2026-10-05 07:41:07 +01:00
renovate[bot] e37d717f0f Update dependency stylelint to v17.16.0 (#27490)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-04 21:40:56 -06:00
renovate[bot] 4c806198e4 Update dependency globals to v17.13.0 (#27489)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-04 21:40:44 -06:00