The previous tag generation configuration was producing invalid Docker tags
that start with a dash, causing build failures. Changed from using
{{branch}}- prefix to sha- prefix to ensure all tags are properly formatted
and valid for Docker.
Fixes the error: ERROR: failed to build: invalid tag "ghcr.io/pathology-data-mining/mosaic:-6f773e0": invalid reference format
Use GH_PAT secret for Docker builds to access private repos
The automatic GITHUB_TOKEN doesn't have permission to access private
repositories in other organizations. Use GH_PAT secret if available,
falling back to GITHUB_TOKEN for backwards compatibility.
To fix the build, add a GH_PAT repository secret with a Personal Access
Token that has 'repo' scope access to the private paladin repository.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add GH_TOKEN secret to Docker builds and format code
- Pass GITHUB_TOKEN as GH_TOKEN secret to both GHCR and Docker Hub builds
- This allows uv to install git dependencies from private repositories
- Fixes buildx failure when installing paladin from private repo
- Format code with black (5 files reformatted)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Configure Docker build with SSH authentication for private repos
- Update Dockerfile to use SSH forwarding for private dependencies (paladin, Mussel)
- Add build.sh script to handle SSH agent setup for local builds
- Update pyproject.toml to use SSH URLs for private repos
- Configure GitHub Actions workflow for SSH-based Docker builds
- Add SSH agent setup with webfactory/ssh-agent action
- Configure dual registry support (GHCR + Docker Hub)
- Push to GHCR on all branches, Docker Hub only on main
- Update Makefile to use mskmind/mosaic as default image name
- Add CI/CD documentation to CONTRIBUTING.md
- Add github_token to .gitignore
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Changed from 'secret-files' to 'secrets' for passing GitHub token
to Docker build. The Dockerfile expects the secret as a string value,
not a file path.
This fixes the authentication error when cloning the paladin repository:
- cat: /run/secrets/github_token: No such file or directory
- Authentication failed for paladin.git
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add HF_TOKEN environment variable to test workflow
- Add CI/CD workflows for tests, code quality, and Docker builds
- Add comprehensive Makefile with test, lint, format, and Docker targets
- Add new test files for CLI, fixtures, UI components, and UI events
- Refactor batch analysis into main analysis module
- Update model manager and inference modules
- Add .dockerignore for cleaner Docker builds
- Update dependencies in uv.lock