Skip to content

Commit ac8f32c

Browse files
authored
Merge branch 'master' into add-experimental-plugin-manager
2 parents 45db35d + 4df1ecc commit ac8f32c

File tree

76 files changed

+1834
-276
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+1834
-276
lines changed

.github/workflows/changelog.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
env:
3636
GITHUB_AUTH: github-actions:${{ secrets.GITHUB_TOKEN }}
3737
- name: Upload Changelog YAML
38-
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
38+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
3939
with:
4040
name: changelog.yaml
4141
path: changelog.yaml
@@ -44,15 +44,15 @@ jobs:
4444
runs-on: ubuntu-latest
4545
if: github.repository_owner == 'jenkinsci'
4646
steps:
47-
- uses: actions/create-github-app-token@7e473efe3cb98aa54f8d4bac15400b15fad77d94 # v2.2.0
47+
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
4848
id: generate-token
4949
with:
5050
app-id: ${{ secrets.JENKINS_CHANGELOG_UPDATER_APP_ID }}
5151
private-key: ${{ secrets.JENKINS_CHANGELOG_UPDATER_PRIVATE_KEY }}
5252
owner: jenkins-infra
5353
repositories: jenkins.io
5454
- name: Check out
55-
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
55+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
5656
with:
5757
fetch-depth: 0
5858
- name: Publish jenkins.io changelog draft

.github/workflows/publish-release-artifact.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ jobs:
1616
is-lts: ${{ steps.set-version.outputs.is-lts }}
1717
is-rc: ${{ steps.set-version.outputs.is-rc }}
1818
steps:
19-
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
19+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
2020
- name: Set up JDK 21
21-
uses: actions/setup-java@4e7e684fbb6e33f88ecb2cf1e6b3797739cf499b #v 5.0.0
21+
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e #v 5.0.0
2222
with:
2323
distribution: "temurin"
2424
java-version: 21
@@ -74,7 +74,7 @@ jobs:
7474
wget -q https://get.jenkins.io/${REPO}/${PROJECT_VERSION}/${FILE_NAME}
7575
- name: Upload Release Asset
7676
id: upload-war
77-
uses: softprops/action-gh-release@5be0e66d93ac7ed76da52eca8bb058f665c3a5fe # v2.4.2
77+
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0
7878
env:
7979
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
8080
with:
@@ -109,7 +109,7 @@ jobs:
109109
- name: Upload Release Asset
110110
id: upload-deb
111111
if: always()
112-
uses: softprops/action-gh-release@5be0e66d93ac7ed76da52eca8bb058f665c3a5fe # v2.4.2
112+
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0
113113
env:
114114
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
115115
with:
@@ -146,7 +146,7 @@ jobs:
146146
- name: Upload Release Asset
147147
id: upload-rpm
148148
if: always()
149-
uses: softprops/action-gh-release@5be0e66d93ac7ed76da52eca8bb058f665c3a5fe # v2.4.2
149+
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0
150150
env:
151151
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
152152
with:
@@ -182,7 +182,7 @@ jobs:
182182
- name: Upload Release Asset
183183
id: upload-msi
184184
if: always()
185-
uses: softprops/action-gh-release@5be0e66d93ac7ed76da52eca8bb058f665c3a5fe # v2.4.2
185+
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0
186186
env:
187187
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
188188
with:

.github/workflows/run-since-updater.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-latest
1515
if: ${{ github.repository_owner == 'jenkinsci' }}
1616
steps:
17-
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
17+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
1818
with:
1919
fetch-depth: 0
2020
- name: Run update-since-todo.py
@@ -29,7 +29,7 @@ jobs:
2929
id: run_script
3030
shell: bash
3131
- name: Create Pull Request
32-
uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412 # v7.0.9
32+
uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v8.0.0
3333
with:
3434
token: ${{ secrets.GITHUB_TOKEN }}
3535
commit-message: Fill in since annotations

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,4 +261,4 @@ just submit a pull request.
261261
- [Jenkins Contribution Landing Page](https://www.jenkins.io/participate/)
262262
- [Jenkins Chat Channels](https://www.jenkins.io/chat/)
263263
- [Beginners Guide To Contributing](https://www.jenkins.io/participate/)
264-
- [List of good first issues in core](<https://github.com/jenkinsci/jenkins/issues?q=is%3Aissue%20is%3Aopen%20label%3A%22good%20first%20issue%22)
264+
- [List of good first issues in core](https://github.com/jenkinsci/jenkins/issues?q=is%3Aissue%20is%3Aopen%20label%3A%22good%20first%20issue%22)

README.md

Lines changed: 55 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,32 @@
22
<img width="400" src="https://www.jenkins.io/images/jenkins-logo-title-dark.svg" alt="Jenkins logo">
33
</a>
44

5-
# About
6-
75
[![Jenkins Regular Release](https://img.shields.io/endpoint?url=https%3A%2F%2Fwww.jenkins.io%2Fchangelog%2Fbadge.json)](https://www.jenkins.io/changelog)
86
[![Jenkins LTS Release](https://img.shields.io/endpoint?url=https%3A%2F%2Fwww.jenkins.io%2Fchangelog-stable%2Fbadge.json)](https://www.jenkins.io/changelog-stable)
97
[![Docker Pulls](https://img.shields.io/docker/pulls/jenkins/jenkins.svg)](https://hub.docker.com/r/jenkins/jenkins/)
108
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3538/badge)](https://bestpractices.coreinfrastructure.org/projects/3538)
119
[![Reproducible Builds](https://img.shields.io/badge/Reproducible_Builds-ok-green)](https://maven.apache.org/guides/mini/guide-reproducible-builds.html)
1210
[![Gitter](https://img.shields.io/gitter/room/jenkinsci/jenkins)](https://app.gitter.im/#/room/#jenkinsci_jenkins:gitter.im)
1311

12+
---
13+
14+
# Table of Contents
15+
16+
- [About](#about)
17+
- [What to Use Jenkins for and When to Use It](#what-to-use-jenkins-for-and-when-to-use-it)
18+
- [Downloads](#downloads)
19+
- [Getting Started (Development)](#getting-started-development)
20+
- [Source](#source)
21+
- [Contributing to Jenkins](#contributing-to-jenkins)
22+
- [News and Website](#news-and-website)
23+
- [Governance](#governance)
24+
- [Adopters](#adopters)
25+
- [License](#license)
26+
27+
---
28+
29+
# About
30+
1431
In a nutshell, Jenkins is the leading open-source automation server.
1532
Built with Java, it provides over 2,000 [plugins](https://plugins.jenkins.io/) to support automating virtually anything,
1633
so that humans can spend their time doing things machines cannot.
@@ -39,35 +56,64 @@ For all distributions Jenkins offers two release lines:
3956
Older release line which gets periodically updated via bug fix backports.
4057

4158
Latest releases:
59+
4260
[![Jenkins Regular Release](https://img.shields.io/endpoint?url=https%3A%2F%2Fwww.jenkins.io%2Fchangelog%2Fbadge.json)](https://www.jenkins.io/changelog)
4361
[![Jenkins LTS Release](https://img.shields.io/endpoint?url=https%3A%2F%2Fwww.jenkins.io%2Fchangelog-stable%2Fbadge.json)](https://www.jenkins.io/changelog-stable)
4462

63+
# Getting Started (Development)
64+
65+
For more information on setting up your development environment, contributing, and working with Jenkins internals, check the [contributing guide](CONTRIBUTING.md) and the [Jenkins Developer Documentation](https://www.jenkins.io/doc/developer/).
66+
4567
# Source
4668

4769
Our latest and greatest source of Jenkins can be found on [GitHub](https://github.com/jenkinsci/jenkins). Fork us!
4870

4971
# Contributing to Jenkins
5072

51-
Follow the [contributing guidelines](CONTRIBUTING.md) if you want to propose a change in the Jenkins core.
73+
New to open source or Jenkins? Here’s how to get started:
74+
75+
- Read the [Contribution Guidelines](CONTRIBUTING.md)
76+
- Check our [good first issues](https://github.com/jenkinsci/jenkins/issues?q=is%3Aissue%20is%3Aopen%20label%3A%22good%20first%20issue%22)
77+
- Join our [Gitter chat](https://app.gitter.im/#/room/#jenkinsci_newcomer-contributors:gitter.im) for questions and help
78+
5279
For more information about participating in the community and contributing to the Jenkins project,
5380
see [this page](https://www.jenkins.io/participate/).
5481

5582
Documentation for Jenkins core maintainers is in the [maintainers guidelines](docs/MAINTAINERS.adoc).
5683

5784
# News and Website
5885

59-
All information about Jenkins can be found on our [website](https://www.jenkins.io/).
60-
Follow us on [Twitter](https://twitter.com/jenkinsci) or [LinkedIn](https://www.linkedin.com/company/jenkins-project/).
86+
All information about Jenkins can be found on our [official website](https://www.jenkins.io/), including documentation, blog posts, plugin listings, community updates, and more.
87+
88+
Stay up-to-date with the latest Jenkins news, tutorials, and release notes:
89+
90+
- [Jenkins Blog](https://www.jenkins.io/blog/)
91+
- [Documentation](https://www.jenkins.io/doc/)
92+
- [Plugins Index](https://plugins.jenkins.io/)
93+
- [Events](https://www.jenkins.io/events/)
94+
95+
Follow Jenkins on social media to stay connected with the community:
96+
97+
- [Twitter / X](https://x.com/jenkinsci)
98+
- [YouTube](https://www.youtube.com/@jenkinscicd)
99+
- [LinkedIn](https://www.linkedin.com/company/jenkins-project/)
61100

62101
# Governance
63102

64-
See the [Jenkins Governance Document](https://www.jenkins.io/project/governance/) for information about the project's open governance, our philosophy and values, and development practices.
65-
Jenkins Code of Conduct can be found [here](https://www.jenkins.io/project/conduct/).
103+
The Jenkins project is governed by an open source community.
104+
To learn more about the governance structure, project leadership, and how decisions are made, visit the [Governance Page](https://www.jenkins.io/project/governance/).
66105

67106
# Adopters
68107

69-
Jenkins is used by millions of users and thousands of companies.
70-
See [adopters](https://www.jenkins.io/project/adopters/) for the list of Jenkins adopters and their success stories.
108+
Jenkins is trusted by **millions of users** and adopted by **thousands of companies** around the world — from startups to enterprises — to automate their software delivery pipelines.
109+
110+
Explore the [Adopters Page](https://www.jenkins.io/project/adopters/) and https://stories.jenkins.io to see:
111+
112+
- Companies and organizations using Jenkins
113+
- Success stories and case studies
114+
- How Jenkins is used in different industries
115+
116+
> If your company uses Jenkins and you'd like to be featured, feel free to [submit your story](https://www.jenkins.io/project/adopters/contributing/#share-your-story)!
71117
72118
# License
73119

ath.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set -o xtrace
66
cd "$(dirname "$0")"
77

88
# https://github.com/jenkinsci/acceptance-test-harness/releases
9-
export ATH_VERSION=6464.vf87c7908f638
9+
export ATH_VERSION=6483.vecb_7d34edb_75
1010

1111
if [[ $# -eq 0 ]]; then
1212
export JDK=21

bom/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ THE SOFTWARE.
4141
<commons-fileupload2.version>2.0.0-M4</commons-fileupload2.version>
4242
<groovy.version>2.4.21</groovy.version>
4343
<jelly.version>1.1-jenkins-20250731</jelly.version>
44-
<stapler.version>2050.v425108fd5089</stapler.version>
44+
<stapler.version>2061.v3949245133a_f</stapler.version>
4545
</properties>
4646

4747
<dependencyManagement>
@@ -63,7 +63,7 @@ THE SOFTWARE.
6363
<dependency>
6464
<groupId>org.springframework</groupId>
6565
<artifactId>spring-framework-bom</artifactId>
66-
<version>6.2.14</version>
66+
<version>6.2.15</version>
6767
<type>pom</type>
6868
<scope>import</scope>
6969
</dependency>
@@ -119,7 +119,7 @@ THE SOFTWARE.
119119
<dependency>
120120
<groupId>commons-io</groupId>
121121
<artifactId>commons-io</artifactId>
122-
<version>2.20.0</version>
122+
<version>2.21.0</version>
123123
</dependency>
124124
<dependency>
125125
<groupId>commons-lang</groupId>

cli/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
<dependency>
5454
<groupId>org.bouncycastle</groupId>
5555
<artifactId>bcprov-jdk18on</artifactId>
56-
<version>1.82</version>
56+
<version>1.83</version>
5757
<optional>true</optional>
5858
</dependency>
5959
<dependency>

cli/src/main/java/hudson/cli/PlainCLIProtocol.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,15 +153,14 @@ public void run() {
153153
}
154154
} catch (ClosedChannelException x) {
155155
LOGGER.log(Level.FINE, null, x);
156-
side.handleClose();
157156
} catch (IOException x) {
158157
LOGGER.log(Level.WARNING, null, flightRecorder.analyzeCrash(x, "broken stream"));
159158
} catch (ReadPendingException x) {
160159
// in case trick in CLIAction does not work
161160
LOGGER.log(Level.FINE, null, x);
162-
side.handleClose();
163161
} catch (RuntimeException x) {
164162
LOGGER.log(Level.WARNING, null, x);
163+
} finally {
165164
side.handleClose();
166165
}
167166
}

core/src/main/java/hudson/Functions.java

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,12 @@ public class Functions {
203203
private static final AtomicLong iota = new AtomicLong();
204204
private static Logger LOGGER = Logger.getLogger(Functions.class.getName());
205205

206+
/**
207+
* Escape hatch to use the non-recursive f:password masking.
208+
*/
209+
private static /* non-final */ boolean NON_RECURSIVE_PASSWORD_MASKING_PERMISSION_CHECK = SystemProperties.getBoolean(Functions.class.getName() + ".nonRecursivePasswordMaskingPermissionCheck");
210+
211+
206212
public Functions() {
207213
}
208214

@@ -1990,7 +1996,7 @@ public static String toEmailSafeString(String projectName) {
19901996
else
19911997
buf.append('_'); // escape
19921998
}
1993-
return String.valueOf(buf);
1999+
return buf.toString();
19942000
}
19952001

19962002
/**
@@ -2252,13 +2258,38 @@ public String getPasswordValue(Object o) {
22522258
StaplerRequest2 req = Stapler.getCurrentRequest2();
22532259
if (o instanceof Secret || Secret.BLANK_NONSECRET_PASSWORD_FIELDS_WITHOUT_ITEM_CONFIGURE) {
22542260
if (req != null) {
2255-
Item item = req.findAncestorObject(Item.class);
2256-
if (item != null && !item.hasPermission(Item.CONFIGURE)) {
2257-
return "********";
2258-
}
2259-
Computer computer = req.findAncestorObject(Computer.class);
2260-
if (computer != null && !computer.hasPermission(Computer.CONFIGURE)) {
2261-
return "********";
2261+
if (NON_RECURSIVE_PASSWORD_MASKING_PERMISSION_CHECK) {
2262+
Item item = req.findAncestorObject(Item.class);
2263+
if (item != null && !item.hasPermission(Item.CONFIGURE)) {
2264+
return "********";
2265+
}
2266+
Computer computer = req.findAncestorObject(Computer.class);
2267+
if (computer != null && !computer.hasPermission(Computer.CONFIGURE)) {
2268+
return "********";
2269+
}
2270+
} else {
2271+
List<Ancestor> ancestors = req.getAncestors();
2272+
for (Ancestor ancestor : Iterators.reverse(ancestors)) {
2273+
Object type = ancestor.getObject();
2274+
if (type instanceof Item item) {
2275+
if (!item.hasPermission(Item.CONFIGURE)) {
2276+
return "********";
2277+
}
2278+
break;
2279+
}
2280+
if (type instanceof Computer computer) {
2281+
if (!computer.hasPermission(Computer.CONFIGURE)) {
2282+
return "********";
2283+
}
2284+
break;
2285+
}
2286+
if (type instanceof View view) {
2287+
if (!view.hasPermission(View.CONFIGURE)) {
2288+
return "********";
2289+
}
2290+
break;
2291+
}
2292+
}
22622293
}
22632294
}
22642295
}

0 commit comments

Comments
 (0)