Skip to content
Navigation Menu
Sign in
Appearance settings
Platform
AI CODE CREATION
GitHub Copilot
Write better code with AI
GitHub Copilot app
Direct agents from issue to merge
MCP Registry
Integrate external tools
DEVELOPER WORKFLOWS
Actions
Automate any workflow
Codespaces
Instant dev environments
Issues
Plan and track work
Code Review
Manage code changes
Code Quality
Enforce quality at merge
APPLICATION SECURITY
GitHub Advanced Security
Find and fix vulnerabilities
Code security
Secure your code as you build
Secret protection
Stop leaks before they start
EXPLORE
Why GitHub
Documentation
Blog
Changelog
Marketplace
View all features
Solutions
BY COMPANY SIZE
Enterprises
Small and medium teams
Startups
Nonprofits
BY USE CASE
App Modernization
DevSecOps
DevOps
CI/CD
View all use cases
BY INDUSTRY
Healthcare
Financial services
Manufacturing
Government
View all industries
View all solutions
Resources
EXPLORE BY TOPIC
AI
Software Development
DevOps
Security
View all topics
EXPLORE BY TYPE
Customer stories
Events & webinars
Ebooks & reports
Business insights
GitHub Skills
SUPPORT & SERVICES
Documentation
Customer support
Community forum
Trust center
Partners
View all resources
Open Source
COMMUNITY
GitHub Sponsors
Fund open source developers
PROGRAMS
Security Lab
Maintainer Community
GitHub Stars
Archive Program
REPOSITORIES
Topics
Trending
Collections
Enterprise
ENTERPRISE SOLUTIONS
Enterprise platform
AI-powered developer platform
AVAILABLE ADD-ONS
GitHub Advanced Security
Enterprise-grade security features
Copilot for Business
Enterprise-grade AI features
Premium Support
Enterprise-grade 24/7 support
Pricing
Search
/
Sign in
Sign up
Appearance settings
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 }}
kosli-dev
/
cli
Public
Notifications
You must be signed in to change notification settings
Fork
9
Star
16
Code
Issues
20
Pull requests
7
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
feat: fingerprint S3 buckets from a virtual tree
- #1178
#1178
Closed
mbevc1
wants to merge 31 commits into
main
kosli-dev/cli:main
from
20260914_s3_virtual_tree
kosli-dev/cli:20260914_s3_virtual_tree
Copy head branch name to clipboard
Conversation
Commits
31
(31)
Checks
Files changed
Closed
feat: fingerprint S3 buckets from a virtual tree
#1178
mbevc1
wants to merge 31 commits into
main
kosli-dev/cli:main
from
20260914_s3_virtual_tree
kosli-dev/cli:20260914_s3_virtual_tree
Copy head branch name to clipboard
Commits
Commits on Sep 14, 2026
docs(adr): fingerprint S3 buckets from a virtual tree
Show description for 301031b
mbevc1
committed
301031b
View commit details
Copy full SHA for 301031b
Browse repository at this point
docs(adr): check for ".." segments before cleaning the S3 key
Show description for fa15997
mbevc1
committed
fa15997
View commit details
Copy full SHA for fa15997
Browse repository at this point
docs(adr): state the compatibility and no-silent-loss guarantees
Show description for ca5f7cc
mbevc1
committed
ca5f7cc
View commit details
Copy full SHA for ca5f7cc
Browse repository at this point
feat(digest): add VirtualDirSha256 for fingerprinting a tree without a filesystem
Show description for 04aff52
mbevc1
committed
04aff52
View commit details
Copy full SHA for 04aff52
Browse repository at this point
feat(snapshot s3): map object keys to virtual paths and report every colliding key
Show description for e17a510
mbevc1
committed
e17a510
View commit details
Copy full SHA for e17a510
Browse repository at this point
feat(digest): apply .kosli_ignore rules to a virtual tree
Show description for fbddbc5
mbevc1
committed
fbddbc5
View commit details
Copy full SHA for fbddbc5
Browse repository at this point
feat(snapshot s3): fingerprint the bucket without using object keys as local paths
Show description for c6d1a58
mbevc1
committed
c6d1a58
View commit details
Copy full SHA for c6d1a58
Browse repository at this point
docs(adr): make the S3 virtual-tree record stand on its own
Show description for 3b9629d
mbevc1
committed
3b9629d
View commit details
Copy full SHA for 3b9629d
Browse repository at this point
fix(snapshot s3): validate ignore rules before matching, and tidy review findings
Show description for d5553da
claude
committed
d5553da
View commit details
Copy full SHA for d5553da
Browse repository at this point
refactor(snapshot s3): decide the single-object case with SingleVirtualFile
Show description for f77c37c
claude
committed
f77c37c
View commit details
Copy full SHA for f77c37c
Browse repository at this point
Merge branch 'main' into 20260914_s3_virtual_tree
Show description for 6ca589f
claude
committed
6ca589f
View commit details
Copy full SHA for 6ca589f
Browse repository at this point
fix(digest): validate an ignore rule before skipping one that leaves the tree
Show description for 0589527
claude
committed
0589527
View commit details
Copy full SHA for 0589527
Browse repository at this point
fix(digest): validate only the first "**" piece of an ignore rule up front
Show description for 56c4d6e
claude
committed
56c4d6e
View commit details
Copy full SHA for 56c4d6e
Browse repository at this point
fix(digest): bound glob recursion as filepath.Glob does
Show description for ff4dfc1
claude
committed
ff4dfc1
View commit details
Copy full SHA for ff4dfc1
Browse repository at this point
docs: record the escaping-rule residue and rename a shadowing loop variable
Show description for cc87047
claude
committed
cc87047
View commit details
Copy full SHA for cc87047
Browse repository at this point
docs: drop references to the deleted containsSingleFile
Show description for d00479c
claude
committed
d00479c
View commit details
Copy full SHA for d00479c
Browse repository at this point
docs: say the folder-marker guard backs up the caller's filter
Show description for 08c7a99
claude
committed
08c7a99
View commit details
Copy full SHA for 08c7a99
Browse repository at this point
fix(aws): cap the keys one collision names in the S3 key report
Show description for 609849c
claude
committed
609849c
View commit details
Copy full SHA for 609849c
Browse repository at this point
fix(digest): do not protect a directory named .kosli_ignore from the rules
Show description for b3416a9
claude
committed
b3416a9
View commit details
Copy full SHA for b3416a9
Browse repository at this point
fix(aws): name the object key when hashing a downloaded object fails
Show description for cdaefeb
claude
committed
cdaefeb
View commit details
Copy full SHA for cdaefeb
Browse repository at this point
fix(aws): tolerate S3 listings that omit LastModified and reject ones without a key
Show description for 022f333
claude
committed
022f333
View commit details
Copy full SHA for 022f333
Browse repository at this point
docs: say the key-problem cap bounds both list lengths
Show description for 4e7af04
claude
committed
4e7af04
View commit details
Copy full SHA for 4e7af04
Browse repository at this point
docs: drop a reference to the undeclared writeDigests
Show description for aec9e16
claude
committed
aec9e16
View commit details
Copy full SHA for aec9e16
Browse repository at this point
fix(aws): reject a bucket listing that repeats an object key
Show description for 5b4c7a7
claude
committed
5b4c7a7
View commit details
Copy full SHA for 5b4c7a7
Browse repository at this point
fix(digest): bound the depth of a virtual path as filepath.Glob bounds a pattern
Show description for 87cb4f3
claude
committed
87cb4f3
View commit details
Copy full SHA for 87cb4f3
Browse repository at this point
docs(adr): list the malformed-listing rejections and name the cap constant
Show description for 5164f77
claude
committed
5164f77
View commit details
Copy full SHA for 5164f77
Browse repository at this point
refactor(aws): stop a loop variable shadowing the path package
Show description for 4ead6fd
claude
committed
4ead6fd
View commit details
Copy full SHA for 4ead6fd
Browse repository at this point
docs(digest): say the separator limit bounds tree depth too, and fix a doubled verb
claude
committed
b4552cb
View commit details
Copy full SHA for b4552cb
Browse repository at this point
fix(aws): say what a capped collision line counts
Show description for e248d72
claude
committed
e248d72
View commit details
Copy full SHA for e248d72
Browse repository at this point
fix(aws): check for a repeated key before the listing filters
Show description for ee74819
claude
committed
ee74819
View commit details
Copy full SHA for ee74819
Browse repository at this point
fix(digest): skip an ignore rule that leaves the tree even if it names the root
Show description for 12a90d4
claude
committed
12a90d4
View commit details
Copy full SHA for 12a90d4
Browse repository at this point
You can’t perform that action at this time.