ab
abapify
GitHub
adt-cli
Workspace
GitHub
CI Pipeline Executions
Filtered
Runs
Demo
Insights
Compare tasks
Analytics
Sign in
Toggle sidebar
Overview
⌘K
adt-cli
Loading workspace stats
Loading workspace insights...
Statistics interval
7 days
30 days
Latest CI Pipeline Executions
Status
Fix filter
Filter
Fuzzy
Filter range
Sort by
Sort by
Start time
Sort ascending
Sort descending
GitHub
adt-cli
Workspace
Succeeded
feature/partial-transport-report
bcaeb74b refactor(flow): extract tryLstat and assertParentChainSafe to fix CodeScene Extract the lstat try/catch and parent-chain walk into separate flat helpers (tryLstat, assertParentChainSafe) to resolve CodeScene "Bumpy Road Ahead" violation in assertNoSymlinkEscape. Behavior unchanged. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
by ThePlenkov
T
Succeeded
feature/partial-transport-report
827e6f98 fix(flow): TOCTOU re-validation before write, tests for target symlink and loop - Re-validate the output path and its parent with assertNoSymlinkEscape inside writePartialReport to mitigate TOCTOU race: a parent directory replaced with a symlink between validation and write is now detected. - Add test for target file pre-existing as a symlink escaping checkout. - Add test for symlink loop in the report path. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
by ThePlenkov
T
Succeeded
feature/partial-transport-report
2b6673ae fix(flow): validate target symlink, walk parent chain on dangling, extract test helpers - assertNoSymlinkEscape now walks the parent chain of a dangling symlink target to catch intermediate symlink components that escape the checkout root. - Validate the target file itself with assertNoSymlinkEscape before returning, so an existing symlink at the report path is rejected instead of being replaced during the report write. - Extract makeCheckout, makeCommand, makeContext, and withTempRoot helpers in flow-command tests to eliminate ~120 lines of duplicated setup across the six partial-report test cases. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
by ThePlenkov
T
Succeeded
feature/partial-transport-report
86b19c25 refactor(flow): extract symlink chain and escape checks to reduce complexity Extract assertNoSymlinkEscape and escapeRoot helpers from partialReportPath to resolve CodeScene "Deep, Nested Complexity" violation. Behavior unchanged — same symlink chain following and root escape detection, now in flat helper functions. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
by ThePlenkov
T
Succeeded
feature/partial-transport-report
c5418a9a fix(flow): bypass fast path for partial, follow symlink chains, improve tests - Bypass exact-head fast path for partial checkouts so the manifest is rebuilt and skipped objects appear in the partial report. - Follow the entire symlink chain (not just the first hop) when validating partial report paths, rejecting if any hop escapes the checkout root. Detect symlink loops. - Guard dangling-symlink test with it.skipIf on win32 (symlink requires Developer Mode or admin on Windows). - Exercise the sourceTransport tie-breaker in the deterministic-order test: two records with identical object/component/diagnostic but different sourceTransport values. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
by ThePlenkov
T
Succeeded
feature/partial-transport-report
af7fb66a fix(flow): reject dangling symlink escapes in partial report path When walking up to the nearest existing ancestor, check each component with lstatSync. If it is a symlink, resolve its target via readlinkSync and reject if the target escapes the checkout root. This catches dangling symlinks (existing link, missing target) that realpathSync misses because it fails the same way as a non-existent path. Added test with a dangling symlink pointing outside the checkout. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
by ThePlenkov
T
Succeeded
feature/partial-transport-report
dbd6e545 fix(flow): walk nearest existing ancestor for symlink guard, gate incomplete on partial - When the report parent directory does not exist, walk up to the nearest existing ancestor, resolve it via realpathSync, and re-append the non-existent segments. This catches symlinks in existing ancestors that would be followed by mkdir/writeFile outside the checkout root. - Fix lint error: replace empty catch function with a commented non-empty body explaining why cleanup failures are ignored. - Gate the incomplete descriptor flag on ctx.partial so that standard (non-partial) checkouts containing unsupported objects do not permanently disable the exact-head fast path for that transport. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
by ThePlenkov
T
Failed
feature/partial-transport-report
2b216ed2 fix(flow): symlink guard, temp cleanup, sourceTransport in reports and sort - Resolve parent symlinks via realpathSync in partialReportPath to detect in-root symlinks that escape the checkout root (CWE-22). - Clean up the .tmp file in writePartialReport when writeFile or rename fails, preventing orphaned temp files. - Add sourceTransport as final tie-breaker in the skipped-record sort comparator for fully deterministic report ordering. - Include sourceTransport in unsupportedEntries mapper, matching skippedInexactEntries, so reports identify which transport caused each unsupported gap. - Add test for --partial-report without --partial guard. - Update service test expectations to include sourceTransport. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
by ThePlenkov
T
Succeeded
feature/partial-transport-report
d6675432 refactor(flow): extract shared application component filter helper Extract filterSkippedByApplicationComponent from the duplicated identity-grouping + model-loading + exclusion logic in skippedInexactEntries and unsupportedEntries. Reduces code duplication to satisfy SonarCloud quality gate (≤3% on new code). Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
by ThePlenkov
T
Succeeded
feature/partial-transport-report
e1a86015 fix(flow): constrain incomplete marker, filter inexact by app component, export type - Constrain transport descriptor incomplete marker to z.literal(true) so a manually edited incomplete:false cannot be reused as a complete boundary by the exact-head fast path. - Apply application component exclusion to inexact entries before reporting them as skipped gaps, matching the behavior already used for unsupported entries. - Re-export FlowSkippedObject from src/index.ts so consumers can type skipped entries without reaching an unpublished source path. - Add negative test verifying no report or .tmp file is produced when checkout rejects. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
by ThePlenkov
T
Succeeded
feature/partial-transport-report
9a89cf0d fix(flow): reject absolute report paths and sort skipped records - Reject absolute --partial-report values and cross-volume fromRoot results (CWE-22 path traversal), preventing writes outside the checkout root on Windows. - Sort skipped records by object/component/diagnostic before report serialization for deterministic output regardless of concurrent metadata load completion order. - Update existing test to use a repository-relative report path; add tests for absolute-path rejection and deterministic ordering. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
by ThePlenkov
T
Succeeded
feature/partial-transport-report
dd481e90 fix(flow): harden partial report path and temp file uniqueness - Reject --partial-report . (and any path resolving to the checkout root) so rename does not attempt to replace a directory with a file. - Use crypto.randomUUID() for the temp file suffix instead of process.pid, preventing concurrent in-process checkouts from clobbering each other's temp files. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
by ThePlenkov
T
Succeeded
feature/partial-transport-report
a816bbaa fix(flow): move node: imports to top of flow command Imports for node:fs/promises and node:path were appended after export default, violating module conventions. Move them to the top with the other imports, matching the node:-first ordering used in sibling files (e.g. service.ts). Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
by ThePlenkov
T
Succeeded
feature/partial-transport-report
b0dd4d2a fix(flow): honor parsed partial report option
by Petr Plenkov
P
Previous
Next