You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 2a5eb46
Browse filesBrowse the repository at this point in the historyBrowse files
fix: require Job/Build for new explanations and harden Test Configuration and auto-fix (#260)
* fix: look up Test Configuration credentials in the form's folder or job
"Test Configuration" of the Anthropic, Qwen and Azure OpenAI providers resolved
the credentials ID with no item, which falls back to the Jenkins root as SYSTEM.
A folder or job form could therefore send a credential that only Jenkins itself
may use to the URL typed in the form. The test now looks the credential up in
the item the form belongs to, as a build of that item does.
* fix: require Job/Build to ask for a new explanation
The console page and the Stages page called the AI provider for any user with
Job/Read, anonymous readers included, and forceNew=true let them replace the
explanation a build has. A new explanation now needs Job/Build; Job/Read still
shows the explanation a build already has, and the Explain Error button is
offered only to users who may use it.
A request while an explanation of the build is being generated is answered with
a warning instead of a second provider call, and the maxLines request parameter
is capped at 1000 lines.
* fix: keep CI and pipeline definitions out of auto-fix unless named
Auto-fix pushes its branch to the origin repository, and a CI system that builds
branches runs it before anyone reviews the pull request. A change to a CI or
pipeline definition, such as the Jenkinsfile, .github/workflows/*.yml or
.gitlab-ci.yml, decides what that build runs and with which credentials, yet the
default allow-list reached them through Jenkinsfile and *.yml.
Such a file is now changed only when autoFixAllowedPaths spells out its path, with
a pattern that does not start with a wildcard. Jenkinsfile leaves the default
list, an empty list allows nothing instead of everything, globs are matched
against the normalized path, and paths with backslashes are refused.
Copy file name to clipboardExpand all lines: README.md
+5-1Lines changed: 5 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -68,6 +68,10 @@ Once a build has an explanation, the button reads **Show explanation**, and the
68
68
generated; the re-explain icon asks the provider again. If a request fails, the card stays open with what went wrong
69
69
and a **Try again** button.
70
70
71
+
Asking for a new explanation needs the **Job/Build** permission, because it calls the AI provider. Users who can only
72
+
read the job see the explanation a build already has, and no button when it has none. The same applies on the Stages
73
+
page.
74
+
71
75
### On the Stages page
72
76
73
77
With [Pipeline Graph View](https://plugins.jenkins.io/pipeline-graph-view/) 777 or newer (Jenkins 2.534 or newer), the
@@ -137,7 +141,7 @@ the supported SCM services and the files it may change.
137
141
138
142
| Issue | What to check |
139
143
|---|---|
140
-
| No **Explain Error** button | The button appears on finished builds that did not succeed. Check that explanation is on, globally and for the job's folder, and that **Test Configuration** succeeds. On the Stages page it needs Pipeline Graph View 777 or newer |
144
+
| No **Explain Error** button | The button appears on finished builds that did not succeed. Check that explanation is on, globally and for the job's folder, and that **Test Configuration** succeeds. On the Stages page it needs Pipeline Graph View 777 or newer. Asking for a new explanation needs the Job/Build permission |
141
145
| Authentication or rate limit errors | The key, the provider's quota and plan, and the plugin's own [request quota](docs/usage-quota.md) |
142
146
| **Test Configuration** fails | The connection diagnostics report under the error shows the proxy decision, DNS, TCP and HTTP probe; read it bottom-up to find the layer that fails, and include it when you report an issue |
0 commit comments