Uh oh!
There was an error while loading. Please reload this page.
This repository was archived by the owner on Feb 10, 2026. It is now read-only.
Update Datical fork from jenkinsci fork - #3
Open
SteveDonie wants to merge 1333 commits into
Open
Conversation
…din/github-action-2.1.2 Bump crowdin/github-action from 2.1.1 to 2.1.2
Bumps [io.jenkins.tools.bom:bom-2.440.x](https://github.com/jenkinsci/bom) from 3334.v18e2a_2f48356 to 3358.vea_fa_1f41504d. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.440.x dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
…ols.bom-bom-2.440.x-3358.vea_fa_1f41504d Bump io.jenkins.tools.bom:bom-2.440.x from 3334.v18e2a_2f48356 to 3358.vea_fa_1f41504d
* NPE during the release of a lock * Show LRM actions on build page * logs
…#650) * Reserved resources available again after reloading CasC configuration
Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 2.1.2 to 2.2.0. - [Release notes](https://github.com/crowdin/github-action/releases) - [Commits](crowdin/github-action@v2.1.2...v2.2.0) --- updated-dependencies: - dependency-name: crowdin/github-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…din/github-action-2.2.0 Bump crowdin/github-action from 2.1.2 to 2.2.0
Bumps [io.jenkins.tools.bom:bom-2.440.x](https://github.com/jenkinsci/bom) from 3387.v0f2773fa_3200 to 3413.v0d896b_76a_30d. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.440.x dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
…ols.bom-bom-2.440.x-3413.v0d896b_76a_30d Bump io.jenkins.tools.bom:bom-2.440.x from 3387.v0f2773fa_3200 to 3413.v0d896b_76a_30d
Bumps [io.jenkins.tools.bom:bom-2.440.x](https://github.com/jenkinsci/bom) from 3413.v0d896b_76a_30d to 3435.v238d66a_043fb_. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.440.x dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
…ols.bom-bom-2.440.x-3435.v238d66a_043fb_ Bump io.jenkins.tools.bom:bom-2.440.x from 3413.v0d896b_76a_30d to 3435.v238d66a_043fb_
…Lock` now that running builds may not be deleted (#716) * [JENKINS-73835] Adjust LockStepTest.killThenDeleteRunningBuildNewBuildClearsLock now that running builds may not be deleted * [JENKINS-73835] Just delete test instead, LockStepHardKillTest already covers WorkflowRun.doKill * Format with spotless --------- Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
…RootAction/tableResources/table.jelly` (#720)
…Action/tableQueue/table.jelly` (#719)
Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 2.2.0 to 2.3.0. - [Release notes](https://github.com/crowdin/github-action/releases) - [Commits](crowdin/github-action@v2.2.0...v2.3.0) --- updated-dependencies: - dependency-name: crowdin/github-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…din/github-action-2.3.0 Bump crowdin/github-action from 2.2.0 to 2.3.0
The Jenkins plugin archetype uses jenkins.baseline to prevent inconsistencies between the minimum required Jenkins version and the Jenkins plugin bill of materials version. Use the same technique in this plugin.
Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 2.4.0 to 2.5.0. - [Release notes](https://github.com/crowdin/github-action/releases) - [Commits](crowdin/github-action@v2.4.0...v2.5.0) --- updated-dependencies: - dependency-name: crowdin/github-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…sts (#1028) * fix: Correct NodesMirror package declaration to match directory structure NodesMirror.java resides in the nodes/ subdirectory but declared package org.jenkins.plugins.lockableresources instead of org.jenkins.plugins.lockableresources.nodes. Fix the package declaration and update fully-qualified references in ConcurrentModificationExceptionTest and NodesMirrorTest. * test: Add regression tests for label quantity allocation (#939) Add LockStepLabelQuantityOneTest with three test scenarios for JENKINS-67083: 3 resources with the same label and 3 concurrent builds each requesting quantity 1. All three tests pass, confirming the issue is no longer reproducible. * Fix LockableResourcesManager get() lookup * test: Apply Spotless formatting
Bumps [io.jenkins.tools.bom:bom-2.541.x](https://github.com/jenkinsci/bom) from 6486.v7c7b_3635dc42 to 6509.v993a_c958a_e35. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.541.x dependency-version: 6509.v993a_c958a_e35 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add label expression filter to resources table Adds a Resources-tab filter that evaluates Jenkins label expressions server-side, backed by a GET endpoint and debounced JS integration. Also ensures the expression filter is cleared with other resource filters and avoids server calls for incomplete expressions while typing. * Apply Spotless formatting
* docs: Add executor starvation avoidance guide and tests
Document the recommended pattern for using lockable resources in
declarative pipelines without causing executor starvation: use
agent none at the pipeline level and move agent directives into
individual stages alongside options { lock(...) }.
Add avoiding-executor-starvation.md with examples of the problem,
the solution, preparation stages, and nested multi-stage locks.
Add DeclarativePipelineExecutorStarvationTest with four scenarios:
- stage-level lock with agent none (resource name)
- stage-level lock with agent none (label)
- preparation stage without lock, deploy stage with lock
- nested stages sharing one lock
Fixes#697
* fix: Correct NodesMirror package declaration to match directory structure
The file resided in the 'nodes' sub-package but declared the parent package, causing SpotBugs to report 6 false-positive UPM_UNCALLED_PRIVATE_METHOD and UUF_UNUSED_FIELD bugs.
* Apply Spotless formattingBumps [io.jenkins.tools.bom:bom-2.541.x](https://github.com/jenkinsci/bom) from 6509.v993a_c958a_e35 to 6549.v96f8c826373f. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.541.x dependency-version: 6549.v96f8c826373f dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…lookup (#1049) * Replace deprecated lockable-resource APIs and stabilize startup hooks * Fix queue page test helper HTTP method Restore POST for getQueuePage test helper to match doGetQueuePage @RequirePOST endpoint after conflict resolution.
Relax reserve prompt validation in UI so users can submit reserve with an empty reason, and add regression coverage for whitespace-only reason handling in RootAction tests.
Bumps [io.jenkins.tools.bom:bom-2.541.x](https://github.com/jenkinsci/bom) from 6549.v96f8c826373f to 6585.va_085f4d47c41. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.541.x dependency-version: 6585.va_085f4d47c41 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 2.16.2 to 2.16.3. - [Release notes](https://github.com/crowdin/github-action/releases) - [Commits](crowdin/github-action@v2.16.2...v2.16.3) --- updated-dependencies: - dependency-name: crowdin/github-action dependency-version: 2.16.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Martin Pokorny <89339813+mPokornyETM@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v6...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [io.jenkins.tools.bom:bom-2.541.x](https://github.com/jenkinsci/bom) from 6585.va_085f4d47c41 to 6607.v3ed3d8ddfed8. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.541.x dependency-version: 6607.v3ed3d8ddfed8 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [io.jenkins.tools.bom:bom-2.541.x](https://github.com/jenkinsci/bom) from 6607.v3ed3d8ddfed8 to 6641.vfe1b_b_3c48a_4a_. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.541.x dependency-version: 6641.vfe1b_b_3c48a_4a_ dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix: include build parameters in script-match cache key The per-resource Groovy script-match result cache (added in #966) keyed only on the script text, ignoring the parameter bindings passed into the script's evaluation. When several jobs share an identical match script and differ only by build parameters — a common pattern where the resource to lock is chosen by a parameter, e.g. `resourceName == TARGET_ENVIRONMENT` — the first job's per-resource results are cached and wrongly reused for every other job. Each subsequent job is told it matches the first job's resource (already locked) and blocks, so the jobs serialise behind a single resource instead of each locking its own free resource, for the duration of the cache TTL (default 30s). Fix: build the cache key from the script text plus a deterministic encoding of the parameter bindings, so evaluations with different parameters are cached separately. Adds a regression test (scriptResourceJobsRunConcurrently) submitting N jobs that share one parameter-driven match script; it asserts they run concurrently (peak concurrency N) rather than serialising to one at a time. Fails without this change, passes with it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * test: make scriptResourceJobsRunConcurrently reliable on slow Windows CI Reduce N from 12 to 5: still distinguishes serial dispatch (peak=1) from concurrent dispatch (peak=N), but needs fewer concurrent JenkinsRule builds and therefore less memory/scheduling headroom. Extend timeouts to match observed Windows agent slowness: - allStarted latch: 20s → 60s - build completion: 30s → 60s - build hold (release latch): 30s → 90s Windows CI agents took ~10 min total in the failing run; the 20s latch was too tight for N=12 builds to all start concurrently. --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Martin Pokorny <89339813+mPokornyETM@users.noreply.github.com>
…controller (#1055) * Remote Lockable Resources (issue #1025 phase 1) Allow a pipeline lock() to target a resource owned by a different Jenkins controller, over a versioned REST API, with the same lock() semantics as a local lock. Client side: - lock(serverId: 'X') selects a configured remote (peer mode); a controller-wide forcedServerId transparently delegates every lock (delegated mode). - RemoteLockSession drives acquire -> short-poll -> heartbeat -> release; fail-closed on transport errors; poll/heartbeat timers are transient and rebuilt on controller restart. Server side: - REST API under /lockable-resources/remote/v1 (acquire / status / heartbeat / release), guarded by a dedicated RemoteUse permission. - RemoteResolver performs admission (existence/exposure via exposeLabel) and resolves through the canonical getAvailableResources path; the server never re-implements lock() semantics. - Remote requests share the local priority queue; STALE leases (missed heartbeats) can be force-released from the dashboard. Configuration (global): remote connections (serverId/url/credentials), exposeLabel, clientId, forcedServerId. See #1025 for the phase plan and design. * Fix code formatting to satisfy spotless:check (CI) * Fix SpotBugs findings to satisfy the CI quality gate * Address Jenkins Security Scan findings on the remote API Resolve the four code-scanning alerts raised on PR #1055: - doCheckUrl (alerts 49/51): require POST and check ADMINISTER. - doCheckForcedServerId (alert 50): require POST (ADMINISTER was already checked). Both form fields gain checkMethod="post". - GET /acquire/{lockId} (alert 52): make it a pure read. Drop the poll-keepalive side effect (touchPoll); QUEUED entries now expire solely through the unified queue timeout (RemoteQueueEntry deadline), which already owns their lifecycle. * Report a remote acquire timeout as LOCK_WAIT_TIMEOUT, not a 404 failure A queued remote acquire that exceeds timeoutForAllocateResource is marked FAILED (LOCK_WAIT_TIMEOUT) and retained so the polling client can read the terminal state. The terminal-record TTL was measured from the enqueue time, so when timeoutForAllocateResource exceeded the 120s TTL the FAILED record was already past its retention the instant it was created and got evicted on the next maintenance pass. The client's next GET /acquire poll then received HTTP 404 and failed closed as a communication failure, mislabeling a legitimate allocation timeout as a transport error. Measure the terminal-record TTL from when the record becomes terminal (new terminalAt timestamp set in markFailed/markSkipped) instead of from enqueue, so a FAILED/SKIPPED record is always observable for the full TTL regardless of how long the queue wait was. As a safety net, normalize a poll 404/410 received before the body starts to LOCK_WAIT_TIMEOUT on the client. Surfaced by high-load testing with an allocate timeout (3 minutes) larger than the terminal-record TTL. * spotles * Fix remote config help links returning 404 (Not Found) The explicit help= paths used a hyphen (help-fieldName) instead of the slash form (help/fieldName) that Descriptor#getHelpFile actually generates, so Stapler couldn't resolve them and every (?) popup under the Remote Lockable Resources server/client config sections showed "Failed to load help file: Not Found". * Remote LR UX follow-up: credentials selector, better diagnostics, heldBy column - RemoteConnection: replace free-text credentialsId with Jenkins credentials dropdown (doFillCredentialsIdItems using ACL.SYSTEM2 for system store lookup) - RemoteConnection/config.jelly: fix help link paths to descriptorByName - help-credentialsId.html: document API token requirement and CSRF behavior when plain password is used - RemoteApiClient: preserve HTTP errors without rewrapping as communication failure; enrich error messages with remote errorCode/message; add actionable hint for 404 (wrong base URL / resource not exposed) - RemoteLockSession: include serverUrl in pipeline log messages; print human-readable error to build log on acquire failure - LockableResource: add getRemoteLockRecord() accessor for Jelly views - tableResources/table.jelly: populate heldBy column for remote locks with clientId (requesting controller) and requested resource/label - tableResources/table.properties: add resource.heldBy.remoteUnknown key - RemoteApiClientTest: add regression test for 404 diagnostics * docs: add Remote Lock REST API curl examples Covers: acquire by resource/label, poll loop, heartbeat in background, release, skipIfLocked, timeout, full API reference table, credentials note. * more docs * more things * other findings * fix: restore LockableResource.java to LF and fix null-byte corruption in char literal --------- Co-authored-by: kohtaro-satoh <e176@cs-atelier.co.jp> Co-authored-by: Martin Pokorny <martin.pokorny@etm.at> Co-authored-by: Martin Pokorny <89339813+mPokornyETM@users.noreply.github.com>
Co-authored-by: Benjamin Meeusen <benjamin.meeusen@septentrio.com>
Bumps [io.jenkins.tools.bom:bom-2.541.x](https://github.com/jenkinsci/bom) from 6641.vfe1b_b_3c48a_4a_ to 6687.v4253d9799d33. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.541.x dependency-version: 6687.v4253d9799d33 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/labeler](https://github.com/actions/labeler) from 6 to 7. - [Release notes](https://github.com/actions/labeler/releases) - [Commits](actions/labeler@v6...v7) --- updated-dependencies: - dependency-name: actions/labeler dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Martin Pokorny <89339813+mPokornyETM@users.noreply.github.com>
Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 2.16.3 to 2.17.0. - [Release notes](https://github.com/crowdin/github-action/releases) - [Commits](crowdin/github-action@v2.16.3...v2.17.0) --- updated-dependencies: - dependency-name: crowdin/github-action dependency-version: 2.17.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Martin Pokorny <89339813+mPokornyETM@users.noreply.github.com>
Bumps [io.jenkins.tools.bom:bom-2.541.x](https://github.com/jenkinsci/bom) from 6687.v4253d9799d33 to 6783.v88c6c30f4b_db_. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.541.x dependency-version: 6751.v745d6a_31066a_ dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.jenkins-ci.plugins:plugin](https://github.com/jenkinsci/plugin-pom) from 6.2189.v695a_c41f5249 to 6.2211.v27f680c93c53. - [Release notes](https://github.com/jenkinsci/plugin-pom/releases) - [Changelog](https://github.com/jenkinsci/plugin-pom/blob/master/CHANGELOG.md) - [Commits](https://github.com/jenkinsci/plugin-pom/commits/6.2211.v27f680c93c53) --- updated-dependencies: - dependency-name: org.jenkins-ci.plugins:plugin dependency-version: 6.2211.v27f680c93c53 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Martin Pokorny <89339813+mPokornyETM@users.noreply.github.com>
* Sync missing localization keys for translated bundles (#971) * Add German translations for missing message keys * missing translations
Bumps [io.jenkins.tools.bom:bom-2.541.x](https://github.com/jenkinsci/bom) from 6783.v88c6c30f4b_db_ to 6815.v1fb_2a_fee3765. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.541.x dependency-version: 6815.v1fb_2a_fee3765 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [io.jenkins.tools.bom:bom-2.541.x](https://github.com/jenkinsci/bom) from 6815.v1fb_2a_fee3765 to 6904.v75208ee5a_206. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.541.x dependency-version: 6904.v75208ee5a_206 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.jenkins-ci.plugins:plugin](https://github.com/jenkinsci/plugin-pom) from 6.2211.v27f680c93c53 to 6.2221.va_045130417c9. - [Release notes](https://github.com/jenkinsci/plugin-pom/releases) - [Changelog](https://github.com/jenkinsci/plugin-pom/blob/master/CHANGELOG.md) - [Commits](https://github.com/jenkinsci/plugin-pom/commits) --- updated-dependencies: - dependency-name: org.jenkins-ci.plugins:plugin dependency-version: 6.2221.va_045130417c9 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Martin Pokorny <89339813+mPokornyETM@users.noreply.github.com>
Bumps [io.jenkins.tools.bom:bom-2.541.x](https://github.com/jenkinsci/bom) from 6904.v75208ee5a_206 to 6916.v15ec97679743. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.541.x dependency-version: 6916.v15ec97679743 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 2.17.0 to 2.17.1. - [Release notes](https://github.com/crowdin/github-action/releases) - [Commits](crowdin/github-action@v2.17.0...v2.17.1) --- updated-dependencies: - dependency-name: crowdin/github-action dependency-version: 2.17.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.