Created .dockerignore excluding .git/, var/, vendor/, tests/, .phpunit.cache/, docs/, *.md, .env, .env.test, .env.local, composer.phar, .gitignore from the Docker build context. Verified against the Dockerfile — none of these are needed during build.
Broken base64url Padding
Fixed Payload::decode() in src/Data/Payload.php. The original str_pad(strtr($base64url, '-_', '+/'), strlen($base64url) % 4, '=') was a no-op — strlen($base64url) % 4 (0–3) was always less than the string length, so str_pad never added padding. Replaced with correct approach using str_repeat('=', (4 - strlen($base64) % 4) % 4).
Typo Fix
bin/franken.sh: Fixed digtialadapt → digitaladapt (both occurrences). Added a comment noting it's a dev utility, not for production use.
Stale Documentation
config/reference.php: Removed from git tracking (git rm --cached) — auto-generated Symfony file, 844 lines. Added to .gitignore.
README.md: Fixed stale reference "env.example file" → "example.env file" (matching the actual filename).
Testing
✅ All 222 tests pass (469 assertions)
## Changes
### .dockerignore (new file)
Created `.dockerignore` excluding `.git/`, `var/`, `vendor/`, `tests/`, `.phpunit.cache/`, `docs/`, `*.md`, `.env`, `.env.test`, `.env.local`, `composer.phar`, `.gitignore` from the Docker build context. Verified against the Dockerfile — none of these are needed during build.
### Broken base64url Padding
Fixed `Payload::decode()` in `src/Data/Payload.php`. The original `str_pad(strtr($base64url, '-_', '+/'), strlen($base64url) % 4, '=')` was a no-op — `strlen($base64url) % 4` (0–3) was always less than the string length, so `str_pad` never added padding. Replaced with correct approach using `str_repeat('=', (4 - strlen($base64) % 4) % 4)`.
### Typo Fix
`bin/franken.sh`: Fixed `digtialadapt` → `digitaladapt` (both occurrences). Added a comment noting it's a dev utility, not for production use.
### Stale Documentation
- **config/reference.php**: Removed from git tracking (`git rm --cached`) — auto-generated Symfony file, 844 lines. Added to `.gitignore`.
- **README.md**: Fixed stale reference "env.example file" → "example.env file" (matching the actual filename).
## Testing
- ✅ All 222 tests pass (469 assertions)
- Add .dockerignore to exclude .git, vendor, var, tests, docs, .env
and other non-build files from Docker context
- Fix broken base64url padding in src/Data/Payload.php: str_pad was
a no-op because the length argument was always < string length.
Replaced with correct str_repeat approach
- Fix typo in bin/franken.sh: digtialadapt → digitaladapt
- Add comment to bin/franken.sh noting it's a dev utility
- Remove config/reference.php from git tracking (auto-generated file)
and add to .gitignore
- Fix readme.md: env.example → example.env (matches actual filename)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Changes
.dockerignore (new file)
Created
.dockerignoreexcluding.git/,var/,vendor/,tests/,.phpunit.cache/,docs/,*.md,.env,.env.test,.env.local,composer.phar,.gitignorefrom the Docker build context. Verified against the Dockerfile — none of these are needed during build.Broken base64url Padding
Fixed
Payload::decode()insrc/Data/Payload.php. The originalstr_pad(strtr($base64url, '-_', '+/'), strlen($base64url) % 4, '=')was a no-op —strlen($base64url) % 4(0–3) was always less than the string length, sostr_padnever added padding. Replaced with correct approach usingstr_repeat('=', (4 - strlen($base64) % 4) % 4).Typo Fix
bin/franken.sh: Fixeddigtialadapt→digitaladapt(both occurrences). Added a comment noting it's a dev utility, not for production use.Stale Documentation
git rm --cached) — auto-generated Symfony file, 844 lines. Added to.gitignore.Testing
Pull request closed