Commit Graph
23886 Commits
Author SHA1 Message Date
Jan Faracik 9b155ce348 Update Jenkins CLI subpages to use experimental Manage Jenkins UI (#26316)
Update Jenkins CLI to use experimental Manage Jenkins UI
2026-02-18 14:13:38 +00:00
Jan Faracik bc9bf81ab5 Revamp Clouds page (#26315)
* Revamp clouds page

* Update sidepanel.jelly

* Update index.jelly

* Update index.jelly

* Update index.jelly

* Update index.jelly

* Update index.jelly

* Revert "Update index.jelly"

This reverts commit 3cb218862e.

* Hide bottom button bar
2026-02-18 14:13:36 +00:00
Jan FaracikandTim Jacomb a738e5ebdb Add experimental Plugin Manager UI (#11332)
* Add experimental Plugin Manager UI

* Update advanced.jelly

* Update index.jelly

* Update index.jelly

* Update sidepanel.jelly

* Update settings-subpage.jelly

* I18n

* Add translations

* Fix search shortcut

* Fix overflow cutoff

---------

Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com>
2026-02-18 14:13:34 +00:00
Daniel Beck 578c028e2c [SECURITY-3669] 2026-02-15 03:32:45 +00:00
Daniel Beck f92eadb581 [SECURITY-3658] 2026-02-15 03:32:39 +00:00
Jan Faracik a3f2c15bc2 Refine dialog component (#26033)
* Init

* push

* Refine

* Format

* Refine

* Update index.js
2026-02-09 11:13:51 -07:00
Jan Faracik f972b9d819 Refine the 'New Item' screen (#26031)
* Refine the 'New Item' screen

* Simplify SCSS

* Fix submission, fix some tests, improve tabbing + focus states

* Fix more tests

* Simplify JS + hopefully fix test

* Update pom.xml

* Update Jenkinsfile

* Fix issue noticed in #26069

* Restore Jenkinsfile/test pom

* Simplify JS

* Restore ability to have headings

* Fix focus state in Firefox/Chrome

* Add separator between items and 'Duplicate an item'
2026-02-09 11:13:17 -07:00
Markus Winter ca794fa32b Hide last repeatable delete button with minimum > 0 (#26277)
hide last repeatable delete button with minimum > 0

When a repeatable has set a minimum > 0 it means there should always be
at least one such entry. So showing the delete button in that case when
there is only one entry is wrong. Interestingly there is already support
for this behaviour with the class `show-if-not-only`. A few plugins used
that with the old input based buttons.
This change now makes this automatic. The repeated-container gets the
value of the passed minimum and the corresponding class is automatically
added to all delete buttons in the container.
2026-02-09 11:10:36 -07:00
Adham AhmedandMark Waite 52fa585cad Replace dependency on jenkins.io with a local mock server for testing (#26258)
* Remove dependency on www.jenkins.io from testUrlCheck()

* Fix Check style violation

* Address Copilot review feedback

---------

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2026-02-07 19:01:06 -07:00
68f58856e2 Fix "Zeno’s paradox" like logic of the progress calculation. (#26235)
* Fix "Zeno’s paradox" like logic of the progress calculation

* Add ability to limit RunListProgressiveRendering records to return

* Set default RunListProgressiveRendering limit to 1000 records

---------

Co-authored-by: Dmytro Ukhlov <dukhlov@csod.com>
Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com>
Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2026-02-07 19:00:42 -07:00
Markus Winter f5ea3478ac Avoid using string replace when copying a cloud (#26260)
there is just no need to do a potentially problematic replace when the
name field is no longer final
2026-02-06 17:02:15 -07:00
Daniel BeckandDaniel Beck dc03336315 Use client-side redirects in admin monitors for Chrome (#26207)
Co-authored-by: Daniel Beck <daniel-beck@users.noreply.github.com>
2026-02-06 17:01:20 -07:00
AMOGH PARMARandMark Waite f4cc01a564 Make time zone list expandable in help (#26241)
* JENKINS-60635 Replace long timezone list with documentation link in build periodically help

* JENKINS-20780 Wrap timezone list in collapsible details section

---------

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2026-02-07 00:56:32 +01:00
6227cd1091 Do not compute CSP header if disabled (#26255)
* Do not compute CSP header if disabled

* Replace waiting with counting invocations

* Replace waiting with counting

---------

Co-authored-by: Daniel Beck <daniel-beck@users.noreply.github.com>
Co-authored-by: Kris Stern <88480540+krisstern@users.noreply.github.com>
2026-02-07 00:56:10 +01:00
Kevin Guerroudj 6c50589ae9 Add telemetry for password field masking (#26195)
* Add telemetry for password field masking

* Collect actionable info

* Always send data and clear collection
2026-01-31 18:00:45 +01:00
somil jain 02c84fa4fa Redirect PluginWrapper root URL to third-party licenses view (#26029)
* Redirect PluginWrapper root URL to third-party licenses view

* Fixed redirect page

* Add license statement

* Added right license

* Use standard Jenkins MIT license header

* Fixed incorrect license header
2026-01-31 18:00:22 +01:00
35cf37493a Do not pick up random message Jelly variable in l:keyboard-shortcut (#26214)
Do not pick up random `message` Jelly variable in l:keyboard-shortcut

Co-authored-by: Daniel Beck <daniel-beck@users.noreply.github.com>
Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com>
2026-01-29 17:43:00 +01:00
Daniel BeckandDaniel Beck 84c910797f Change label for CSP setup to be less ambiguous (#26198)
Co-authored-by: Daniel Beck <daniel-beck@users.noreply.github.com>
2026-01-29 17:42:12 +01:00
AMOGH PARMARandMark Waite 04a08691e4 Add help for "remove last build" in Manage Jenkins (#26153)
* Add online help for removeLastBuild option

* Format help-removeLastBuild.html with Prettier

* Update core/src/main/resources/hudson/tasks/LogRotator/help-removeLastBuild.html

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>

* Fix formatting and use correct HTML tag

My suggestion used the code tag, but should have used the pre tag

---------

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2026-01-25 20:28:52 -07:00
Markus WinterandTim Jacomb 5490f91afa API tokens with expiration date (#23859)
* API tokens with expiration

API tokens can now get an optional expiration date.
Added a select drop down from where you can choose from predefined
durations, a custom date (max 1 year) and no expiration.
Expiration date is shown in the list. Not expiring tokens are marked
with warning.

fixes #16695

* revert changes in SetupWizard

* fix linter

* fix ordering

* show when token expired

* notify on expiring and expired tokens

* format

* 2 lines only

make the creation date a tooltip of the expiration

* feedback

* feedback 2

don't add token when choosing date in the past

directly warn after creation when about to expire

* prettier

---------

Co-authored-by: Tim Jacomb <timjacomb1@gmail.com>
2026-01-25 20:28:34 -07:00
Jesse Glick e73ae832d4 Adjusting outdated comment about Queue.lock in NodeProvisioner (#26175) 2026-01-25 20:21:38 +00:00
github-actions[bot]andtimja 5c1fa32ae1 Fill in since annotations (#26162)
Co-authored-by: timja <21194782+timja@users.noreply.github.com>
2026-01-23 23:32:38 -07:00
strangelookingnerdandMark Waite 4a2f5f24b9 Migrate code base to Java 21 (#26075)
* Replace if-cascades with switch

* Reference to empty collection field replaced with method call (Java 5)

* Anonymous type replaced with lambda (Java 8)

* Replaced lambda with method reference (Java 8)

* Statement lambda replaced with expression lambda (Java 8)

* Loop replaced with 'Collection.removeIf()' (Java 8)

* Null check replaced with method call (Java 9)

* Statement replaced with enhanced 'switch' (Java 14)

* Use text blocks (Java 15)

* Use pattern variable (Java 16)

* Replace if-cascades with switch

* Use 'Comparator' combinator

* Null check replaced with method call (Java 9)

* Use pattern variable (Java 16)

* Use record pattern (Java 21)

* Use SequencedCollection method (Java 21)

* Replaced lambda with method reference (Java 8)

* Cleanup unused imports

* Cleanup migrations (move comments, formatting, spotbugs...)

* Remove duplicate comment

Resolve GitHub Copilot review comment

* Remove blank line that may confuse Copilot

* Inject comments into source line

Attempt to satisfy GitHub Copilot

Complains about unreachable code

* Simplify with return value of switch statement

* Use pattern matching instanceof in one more case

* Don't lose the NetBeans comment that was there before

* Remove TODO for Java 21 pattern use, implemented

* Align comments with Unicode character they describe

---------

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2026-01-23 23:31:47 -07:00
Markus Winter 620b9021d3 Fix temporary offline state of computer is lost on config submit (#26154) 2026-01-23 10:53:07 +00:00
LakshyaBagani 99c2f4d090 Use display name in directory browser breadcrumbs (#25924)
* Update dir.jelly logic for navigation

* Fix the navigation

* Change as per requirement

* Change jelly
2026-01-19 16:54:10 -07:00
LakshyaBagani a7d32255b6 Fix false 'Build Scheduled' notification when parent multibranch is d… (#26117) 2026-01-18 18:01:35 +00:00
Markus Winter 396e6e9edf Hide build buttons in Multibranch branch/PR jobs when the Multibranch or organization folder is disabled (#26131) 2026-01-17 10:34:16 +00:00
PRATHAM ~ 54d5640af2 Added quotes to Mockito java agent path (#26123) 2026-01-16 21:14:19 -07:00
ollehu 1ce1de6cf5 Fix cloud URL when Manage Jenkins UI is deferred (#26107) 2026-01-14 08:15:57 +00:00
Adrien Lecharpentier ca08444e09 Adds id and testid for item overflow button (#26092) 2026-01-12 07:40:17 +00:00
renovate[bot] 957f2f9915 Update dependency org.jenkins-ci:core-annotation-processors to v59 (#26065)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-05 14:47:15 -07:00
Alexander Brandes 2e58b23201 Collect telemetry for Java properties (#26038)
Reinstantiate telemetry for Java properties

Signed-off-by: Alexander Brandes <mc.cache@web.de>
2026-01-04 20:17:31 -07:00
c2fd9da8bc Fix race condition during initial admin account creation (#26036)
* Update README.md

* Update README.md

* Update README.md

* Remove link to non-existent newsletter

Also format with `yarn lint:fix` as noted in the contributing guide.

* Update README.md

* Update good first issues query

* Fix race condition during initial admin account creation

* Update core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java

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

* Use synchronized method for initial admin account creation

---------

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
Co-authored-by: Kris Stern <krisstern@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-04 20:17:14 -07:00
strangelookingnerd bcbe63159d Bump minimum supported remoting version (#26034) 2026-01-04 20:16:23 -07:00
5312d243cb Require Java 21 or newer (#26018)
Co-authored-by: Alexander Brandes <mc.cache@web.de>
Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com>
2026-01-03 17:42:13 +01:00
Markus WinterandTim Jacomb dd526d1fd4 Avoid NPE in Job#getLastBuildsOverThreshold (#26005)
Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com>
2026-01-03 17:41:36 +01:00
strangelookingnerd d938a49752 Fix references to RealJenkinsRule.Endpoint (#26020) 2026-01-02 13:35:47 -07:00
Markus WinterandAlexander Brandes ffc46de700 Use rootURL in Cloud sidepanel so links in actions work properly (#26004)
* Use absolute URL in Cloud sidepanel

The urls in the sidepanel of a cloud are relative. When an action is
added to the cloud these urls lead to a 404 as the action has a
different path.

fixes #26002

* Update core/src/main/resources/hudson/slaves/Cloud/sidepanel.jelly

Co-authored-by: Alexander Brandes <brandes.alexander@web.de>

---------

Co-authored-by: Alexander Brandes <brandes.alexander@web.de>
2026-01-02 13:35:34 -07:00
Shubham shuklaandMark Waite 11acb48bbc Fix PluginWrapper bug and cleanup Javadoc placeholders (#25984)
* Fix synchronization, PluginWrapper bug, and cleanup Javadoc

- Fix inconsistent synchronization in Fingerprint.java on 'usages' field by synchronizing on 'this'.
- Fix logic bug in PluginWrapper.java where setOptionalDependants passed incorrect field instead of parameter.
- Replace Boolean.getBoolean with SystemProperties.getBoolean in Jenkins.java and JnlpSlaveRestarterInstaller.java for best practices.
- Update placeholder version numbers (@deprecated and @since) in StreamTaskListener, StreamBuildListener, and JNLPLauncher.

Signed-off-by: shbhmexe <shubhushukla586@gmail.com>

* Update core/src/main/java/hudson/model/StreamBuildListener.java

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>

* Update core/src/main/java/hudson/slaves/JNLPLauncher.java

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>

* Update core/src/main/java/hudson/util/StreamTaskListener.java

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>

* Update core/src/main/java/jenkins/model/Jenkins.java

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>

* Update core/src/main/java/jenkins/slaves/restarter/JnlpSlaveRestarterInstaller.java

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>

* Update Fingerprint.java

* Revert JnlpSlaveRestarterInstaller SystemProperties change per reviewer feedback

---------

Signed-off-by: shbhmexe <shubhushukla586@gmail.com>
Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2025-12-29 18:17:15 -07:00
renovate[bot] 5ef6cd97a2 Update dependency lit to v3.3.2 (#25991)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-29 01:03:49 -07:00
Adham AhmedandMark Waite e0f83edfc3 [JENKINS-75905] Include update site URL in signature verification in error messages (#25980)
* [JENKINS-75905] Include update site URL in signature verification error messages

* [JENKINS-75905] Include update site URL in signature verification error messages

* [JENKINS-75905] Include update site URL in signature verification error messages

* Use the non-deprecated getJsonSignatureValidator method and add @NonNull annotation

Use the non-deprecated getJsonSignatureValidator Add @NonNull annotation to the Throwable parameter in JSONSignatureValidator#getRootCauseMessage.

* Test both branches of message formatter

---------

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2025-12-29 01:03:09 -07:00
k-ohgishi 52aac5a29d Update Japanese translation of AbstractProject.DiscoverPermission.Description #23917 (#25971) 2025-12-22 09:14:12 -07:00
Tyler CiprianiandMark Waite abecec273d Re-add out id to Console Output (#25953)
Partially reverts 331c768.

In #8960 the `out` id was added to `pre.console-output`'s  "otherwise"
case in `console.jelly`.

In 331c768, the `out` id was removed from `otherwise` when console output
was moved from `console.jelly` to `console-log.jelly`.

This may have broken the "Copy" button in some instances.

When clicked, the copy button will copy the inner text of a container
with the id referred to by the `ref` attribute of the copy button. The
copy button's ref attribute is `out`.

Wikimedia's Jenkins has no element with the `out` id on the console
page, which leads to copying `null` to the clipboard.

This was filed as https://phabricator.wikimedia.org/T410633.

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2025-12-22 09:13:43 -07:00
Tim Jacomb 95844b7732 Add noDefer for settings-subpage (#25959) 2025-12-19 15:12:04 +00:00
07d2ff18a4 Remove IP address from DefaultCrumbIssuer (#25918)
Co-authored-by: Daniel Beck <daniel-beck@users.noreply.github.com>
Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2025-12-18 22:10:03 +00:00
Tim Jacomb fa51c65a28 Don't include empty space if no page description for settings-subpage (#25941) 2025-12-18 10:59:47 +01:00
Amanraz ThakurandMark Waite 15263a67d9 Fix NPE in ReverseBuildTrigger due to null upstream threshold (#23916)
* Fix NPE in ReverseBuildTrigger due to null upstream threshold (JENKINS-39044)

* Use ReverseTrigger constructor that is not deprecated

Has the same result as the deprecated constructor that was used before.

* Add automated test of JENKINS-39044

If the ReverseTrigger threshold were null, a null pointer exception would
be thrown.  The config round trip operation resets a null threshold to
SUCCESS, so this test reaches inside the job definition and changes the
threshold directly.

Testing done:

* Confirmed that the modified automated test fails when the change to
  ReverseTrigger is removed.
* Confirmed that the modified automated test passes when the change to
  ReverseTrigger is included.

* Link to GitHub issue

---------

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2025-12-15 10:57:19 -07:00
Jan FaracikandTim Jacomb 4df1ecc559 Add managementLink parameter for <l:settings-subpage /> (#23902)
Co-authored-by: Tim Jacomb <timjacomb1@gmail.com>
2025-12-14 16:07:47 +00:00
4471b31b2f Fill in since annotations (#25923)
Co-authored-by: timja <21194782+timja@users.noreply.github.com>
Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2025-12-13 08:41:39 +00:00
Mark Waite f3eb4d186f Warn users in March 2029 of Java 25 end of support September 2029 (#25925)
Warn users of Java 25 end of support September 2029

Beginning in March 2029, users will be warned that Java 25 will be
reaching its end of support in the Jenkins project.

Amends pull request:

* https://github.com/jenkinsci/jenkins/pull/11148

The 2+2+2 Java support plan recommends that we drop support for a Java
line after two years so that we're only supporting two Java versions at
a time.  Refer to the blog post:

* https://www.jenkins.io/blog/2023/11/06/introducing-2-2-2-java-support-plan/

Also refer to the Jenkins Enhancement Proposal pull request (incomplete):

* https://github.com/jenkinsci/jep/pull/400

Testing done:

* None.  Relying on the existing behavior that I've seen from the Java
  17 administrative monitor.  It is now shown to users to warn them that
  we plan to drop Java 17 support by the end of March 2026
2025-12-12 20:49:20 -07:00