Skip to content

build(deps): Bump actions/checkout from 4 to 7 - #8

Closed
dependabot[bot] wants to merge 19 commits into
mainfrom
dependabot/github_actions/actions/checkout-7
Closed

build(deps): Bump actions/checkout from 4 to 7#8
dependabot[bot] wants to merge 19 commits into
mainfrom
dependabot/github_actions/actions/checkout-7

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 5, 2026

Copy link
Copy Markdown
Contributor

Bumps actions/checkout from 4 to 7.

Release notes

Sourced from actions/checkout's releases.

v7.0.0

What's Changed

New Contributors

Full Changelog: actions/checkout@v6.0.3...v7.0.0

v6.1.0

What's Changed

https://github.blog/changelog/2026-06-18-safer-pull_request_target-defaults-for-github-actions-checkout/ for more details about this breaking change

Full Changelog: actions/checkout@v6.0.3...v6.1.0

v6.0.3

What's Changed

New Contributors

Full Changelog: actions/checkout@v6...v6.0.3

v6.0.2

What's Changed

Full Changelog: actions/checkout@v6.0.1...v6.0.2

v6.0.1

What's Changed

... (truncated)

Changelog

Sourced from actions/checkout's changelog.

Changelog

v7.0.1

v7.0.0

v6.0.3

v6.0.2

v6.0.1

v6.0.0

v5.0.1

v5.0.0

v4.3.1

v4.3.0

v4.2.2

v4.2.1

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

cl-ment and others added 19 commits March 7, 2026 13:29
Contenu initial depuis la branche claude/search-repo-issues-NtaBM de hazyhaar/pdfcpu.
Inclut ARCHITECTURE.md et PLAN.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Architecture "jobs atomiques as library" : Op/Registry/Pipeline/Middleware.
CGO_ENABLED=0, zero regex, zero panic, zero os.Exit.

Packages implémentés :
- internal/object — types PDF avec Span (error reporting)
- internal/parse — lexer + parser récursif, stream parsing
- internal/xref — table/stream xref, recovery, chaînage /Prev
- internal/filter — FlateDecode, ASCII85, ASCIIHex, zip bomb protection
- internal/store — ObjectStore lazy, cache, object streams
- internal/security — limits, structural scan, actions dangereuses, injection
- internal/write — sérialisation PDF (objets, xref, trailer)
- internal/content — tokenizer + interpreter content stream (17 opérateurs texte)
- internal/font — CMap parser, WinAnsi/MacRoman/Standard encoding, font resolver
- internal/cmapcheck — détection injection par CMap falsifié (5 heuristiques N1)
- pkg/pdf — Document, Op, Registry, ChangeSet, SecurityReport
- pkg/reader — Open() avec sas sécurité 3 gates
- ops/ — info, text, validate, sanitize, merge, split, page

20 packages testés, 0 échec, race detector clean.
~9.6k LOC (code + tests).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Trois extensions "job as library" :

- ops/layout/ — détection de colonnes (biggest jump), marges, reading order
- ops/tables/ — extraction de tableaux structurés (clustering spatial Y+X)
  → Table.ToStrings() pour export en grille [][]string
- ops/forms/ — AcroForm : ListFields, Fill, Flatten, Export
  → support text, checkbox, radio, dropdown, signature
  → Flatten supprime /AcroForm et nettoie les widgets des pages

22 packages testés, 0 échec, race detector clean.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Static analysis of the full codebase covering all layers (S0-S7).
Identifies 3 critical, 6 high, 8 medium, and 6 low severity findings
including decompression bomb bypass, panic violations, unenforced
security limits, and middleware bypass conditions.

https://claude.ai/code/session_01EgSdisKNMraSnmpsnRGRpm
Adds 3 high (URI sanitize bypass, negative size, unreliable memory limit),
4 medium (page walk depth, CMap unbounded, mutable Raw, scan window),
and 3 low severity findings. Updates totals to 3C/9H/12M/9L.

https://claude.ai/code/session_01EgSdisKNMraSnmpsnRGRpm
Critical fixes:
- [C1] Decompression bomb: io.LimitReader in flateFilter.Decode DURING decompression
- [C2] XRef stream panic: validate /W values in [0, 8]
- [C3] Store panic: validate /First <= len(data) before slice

High fixes:
- [1.1a] Parser pushBack: return bool instead of panic
- [1.1b] Registry: add TryRegister() for safe dynamic registration
- [H1-H2] Security middleware: block /JavaScript//JS//Launch instead of discarding
- [H3-H4] Parser: enforce maxArraySize (10K) on arrays and dicts
- [H5] Parser: validate /Length against file size before allocation
- [H6] Writer: add maxWriteDepth=100 to appendObject recursion
- [H7] Reader: reject size <= 0 in Open()
- [H8] Sanitize: strip leading whitespace/control chars before URI scheme check
- [H9] WithMemoryLimit: document as approximation

Medium fixes:
- [M1] XRef table: cap count at 1M entries
- [M2] Actions: add GoToR, GoToE, Sound, Movie, Rendition, ResetForm, EmbeddedFile
- [M3-M4] Structural: add JPEG, TIFF, OLE, WASM polyglot signatures
- [M5] ScanFromReader: distinguish I/O errors from oversized
- [M6] Sentinel errors: ErrStructural, ErrDangerousAction, ErrInjection
- [M7] ASCII85: correct allocation factor (4/5 instead of 4x)
- [M8] XRef recovery: cap at 1M objects
- [M9] walkPages: add depth limit (50) in text, merge, page ops
- [M10] CMap: cap AllTargetCodepoints range iteration at 65536
- [M11] Document.Raw: add mutability warning comment
- [M12] reader: dangerous action scan already in Gate 2 (documented)

Low fixes:
- [L1] Lexer: octal escape &0xFF to prevent silent wrap
- [L3] Store: check generation number on resolve
- [L4] Flate: implement PNG Average and Paeth predictors
- [L5] Injection: fix severity ranking (low=1, none=0)
- [L6] Trailer: use slice indexing instead of string concatenation
- [L7] Merge: return null for unmapped refs instead of silent redirect
- [L8] Text: document hardcoded limits matching DefaultLimits
- [L9] Content: cap Tokenize at 1M instructions

https://claude.ai/code/session_01EgSdisKNMraSnmpsnRGRpm
…r deadlock

Corrections majeures pour supporter les vrais PDFs :

- Fix streams ToUnicode non décompressés (resolver.go, scan.go passaient
  les données brutes compressées à ParseCMap → texte garbled)
- Ajout filtre LZWDecode (golang.org/x/image/tiff/lzw, pas compress/lzw)
- Fix tokenizer inline images BI/ID/EI (skip données binaires, évite
  boucle infinie sur pages avec images)
- Fix deadlock RefResolver : Resolve() → resolveUnlocked() + le callback
  utilise resolveUnlocked() directement
- Fix variable shadowing lengthOk dans parseStreamData
- CMap parser : normalisation \r\n/\r, codespace range, multi-paires bfchar
- XRef recovery : scan binaire 64KB + maxRecoveryObjects + synthetic trailer
- StandardEncoding complète + glyphToRune étendu
- Layout column detection proportionnelle (15% content width, min 50pt)

Testé : AoK Manual FR 145p/4MB → 10255 blocs, 98ms, texte lisible.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Re-audit after merge of new modules (LZW, forms, layout, tables,
inline images, debugpdf). All 33 previous fixes confirmed intact.

New findings: 1 critical (LZW decompression bomb), 5 high
(forms recursion unbounded x2, injection not validated, hardcoded
paths with PII, encoding panic on negative index), 6 medium, 5 low.

https://claude.ai/code/session_01EgSdisKNMraSnmpsnRGRpm
Critical:
- N1: LZW decompression bomb — add io.LimitReader (same pattern as flate.go)

High:
- N2-N3: forms recursion unbounded — add depth limit (maxFieldDepth=50)
- N4/N13: forms Fill error handling — return errors instead of silent continue
- N5: Remove hardcoded personal paths from debugpdf, tests — use PDFAST_TEST_CORPUS env var
- N6: ApplyDifferences panic on negative index — add code >= 0 check
- N6b: ScanDangerousActions bypass via #XX encoding — decode PDF names before scan

Medium:
- N8: CMap parser entries unlimited — add maxCMapEntries=65536
- N10: forms Flatten rootNum=0 corruption — error if /Root not indirect ref
- N11: store.go nObj unbounded — add maxObjStreamEntries=100000
- N12: xref recovery parseInt overflow — add length limit + overflow detection
- N12c: store.go negative offsets — validate offset >= 0
- N12d: actions.go bytes.ToLower full copy — replace with containsFoldBytes

Low:
- N15: debugpdf Stat error ignored — check error
- N16: bench_test missing Seek between iterations — add f.Seek(0,0)
- N17: forms unused strings import — removed

3 findings accepted (architectural): N7, N9, N12b, N14

https://claude.ai/code/session_01EgSdisKNMraSnmpsnRGRpm
High:
- A1: merge/remapRefs unbounded recursion — add maxRemapDepth=100

Medium:
- A2: sanitize/cleanObject recursion — add maxCleanDepth=100
- A3: walkPages cycle detection — add visited map to all 4 implementations
  (text.go, merge.go, page.go, forms.go)
- A4: operator.go operand accumulation — add maxOperands=10000

https://claude.ai/code/session_01EgSdisKNMraSnmpsnRGRpm
…on, startxref bounds)

- filter.go: ratio check off-by-one (> → >=)
- stream.go: validate /Index start/count for negatives and upper bound
- trailer.go: validate startxref offset against file size

https://claude.ai/code/session_01EgSdisKNMraSnmpsnRGRpm
Security audit v2: fix 22 new findings + prevent regressions
…elpers

- Module renamed from pdfast to github.com/hazyhaar/pdfast (all 51 files)
- Add ExtractFile, ExtractReader, FileInfo, ReaderInfo helpers (ops/text/file.go)
- Add HasImageStreams detection for ExtractionQuality (scanImageStreams)
- Add GitHub Actions CI (lint + test + gate)
- Add PLAN_INTEGRATION.md for HOROS ecosystem integration

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add dependabot.yml (weekly gomod grouped + github-actions)
- Add concurrency group with cancel-in-progress
- Add timeout-minutes: 10 on lint and test jobs
- Add -race flag to test step (was missing, mandatory per HOROS rules)
- Add bin/, .env to .gitignore

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- errcheck: handle w.Write return in filter tests
- errcheck: propagate walkPagesClean error in forms
- unused: remove unused skipUntilKeyword in parser
- gosimple: remove redundant nil check in middleware
- ineffassign: use _ for unused err in calibrate_test

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...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>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Aug 5, 2026
@hazyhaar hazyhaar closed this Aug 5, 2026
@dependabot @github

dependabot Bot commented on behalf of github Aug 5, 2026

Copy link
Copy Markdown
Contributor Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/github_actions/actions/checkout-7 branch August 5, 2026 21:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants