jenkinsci / jenkinsci/release-plugin

[JENKINS-32637] ReleaseWrapper should prevent parameter duplication when overrideBuildParameters is not set

Open
#127 0 comments 0 reactions 0 assignees View on GitHub
component:release-plugin imported-jira-issue priority:minor resolution:unresolved
Dominant language
Java
Stars
24
Forks
46
PR merge metrics
No merged PRs in 30d

Description

When overrideBuildParameters is not enabled, ReleaseWrapper does not attempt to filter default parameters that are also included in the Release configuration and blindly add new parameter regardless of whether a default parameter (from the regular job) has the same name, this results in release builds with confusing duplicated parameters

```
if (isOverrideBuildParameters()) {
// if overrideBuildParameters is set, then build params are submitted
// within the list of release params -- no need to gather default values
paramValues = new ArrayList();
}
else {
//////////// lack of filtering in regards to getParameterDefinitions()
paramValues = getDefaultParametersValues();
}

if (getParameterDefinitions() != null && !getParameterDefinitions().isEmpty()
|| overrideBuildParameters && getBuildParameterDefinitions() != null && !getBuildParameterDefinitions().isEmpty()) {
JSONObject formData = req.getSubmittedForm();

JSONArray a = JSONArray.fromObject(formData.get("parameter"));

for (Object o : a) {
JSONObject jo = (JSONObject) o;
String name = jo.getString("name");

ParameterDefinition d = getParameterDefinition(name);
if(d==null)
throw new IllegalArgumentException("No such parameter definition: " + name);

ParameterValue value = d.createValue(req, jo);

paramValues.add(d.createValue(req, jo));
}
} else {

```

---
Originally reported by fchuong, imported from: ReleaseWrapper should prevent parameter duplication when overrideBuildParameters is not set


  • assignee: petehayes
  • status: Open
  • priority: Minor
  • component(s): release-plugin
  • resolution: Unresolved
  • votes: 0
  • watchers: 1
  • imported: 20251223-222157

Raw content of original issue

When overrideBuildParameters is not enabled, ReleaseWrapper does not attempt to filter default parameters that are also included in the Release configuration and blindly add new parameter regardless of whether a default parameter (from the regular job) has the same name, this results in release builds with confusing duplicated parameters


            if (isOverrideBuildParameters()) {

// if overrideBuildParameters is set, then build params are submitted
// within the list of release params -- no need to gather default values
paramValues = new ArrayList<ParameterValue>();
}
else {
//////////// lack of filtering in regards to getParameterDefinitions()
paramValues = getDefaultParametersValues();
}

if (getParameterDefinitions() != null && !getParameterDefinitions().isEmpty()
|| overrideBuildParameters && getBuildParameterDefinitions() != null && !getBuildParameterDefinitions().isEmpty()) {
JSONObject formData = req.getSubmittedForm();

JSONArray a = JSONArray.fromObject(formData.get("parameter"));

for (Object o : a) {
JSONObject jo = (JSONObject) o;
String name = jo.getString("name");

ParameterDefinition d = getParameterDefinition(name);
if(d==null)
throw new IllegalArgumentException("No such parameter definition: " + name);

ParameterValue value = d.createValue(req, jo);

paramValues.add(d.createValue(req, jo));
}
} else {


  • environment: Release plugin 2.5.4

Contributor guide

Open the contributing guide

Research direction

Start by locating ReleaseWrapper and reading getDefaultParametersValues(), getParameterDefinitions(), and getParameterDefinition(). Trace how default and release parameters are collected when overrideBuildParameters is disabled. Done means a parameter name present in both sources produces only one release-build parameter.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
ci-cd
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.