Update request handling to redirect root, invalid platform prefixes, and platform prefixes without resource paths to the homepage. Adjust tests to expect 302 redirects instead of 404 or 400 responses for these cases.
Included a Product Hunt badge with a link and image to promote Xget on Product Hunt. This enhances project visibility and provides users with a quick way to access the Product Hunt page.
Introduces a new GitHub Actions job to automate converting the Worker codebase for EdgeOne Pages deployment. The workflow copies runtime files, creates a catch-all Pages Function handler, updates exports, generates edgeone.json configuration, modifies package.json scripts, and force-pushes to a dedicated 'pages' branch.
Renamed 'depoly.yml' to 'deploy.yml' and added concurrency groups to deploy, image, and sync workflows for better job management. Updated the sync workflow to copy only runtime-required files, removing documentation, tests, and development configs from the deployment process.
Added npm and Docker support to dependabot.yml. Updated deploy and image workflows to use latest actions/checkout and set timeouts. Renamed and improved sync workflow to exclude docs and tests, and updated file copy logic.
Remove legacy EdgeOne Pages deployment and sync workflows, and add a new unified sync-worker-to-page.yml workflow for converting and syncing Worker code to a Pages-compatible branch. This streamlines the deployment process and updates the automation to use a more standard Cloudflare Pages Functions handler and configuration.
Introduces two GitHub Actions workflows: one for deploying the 'pages' branch to EdgeOne Pages, and another for auto-syncing and converting the main Worker codebase to the 'pages' branch. This enables automated deployment and compatibility with EdgeOne Pages, including conversion steps, configuration, and branch management.
This commit converts the entire Xget application from a Cloudflare Worker
to a Cloudflare Page, enabling static asset hosting while maintaining all
existing functionality.
Changes:
- Add functions/[[path]].js: Catch-all Pages Function handler
- Add public/index.html: Landing page with Xget information
- Update src/index.js: Export handleRequest for Pages Function import
- Update wrangler.toml: Configure for Pages deployment
- Update package.json: Change scripts to use Pages commands
- Update vitest.config.js: Include functions/ in coverage
- Update .github/workflows/depoly.yml: Deploy to Pages
- Update documentation: CLAUDE.md, README.md, README.en.md
The conversion maintains full backward compatibility with existing tests
and functionality. All caching strategies, security headers, and protocol
handling remain unchanged.
Updated the CLAUDE.md file to provide a more comprehensive and structured overview of the Xget project. The changes include expanded feature lists, clearer architecture and testing sections, detailed command references, platform support instructions, security considerations, and deployment guidance. The documentation is now more accessible for new contributors and better reflects the current state and best practices of the project.
Revised the README files to clarify that multi-platform support covers mainstream platforms in various development scenarios, improving the accuracy of the feature description.
Enhances cache logic to ensure compatibility with non-Cloudflare environments by checking for cache API availability. Refactors cache key construction to always use GET method, adds error handling for cache operations, and ensures only GET requests are cached. Improves robustness and prevents runtime errors when cache API is unavailable.
Added Podman deployment instructions and badges to both English and Chinese README files. Updated several badge colors for consistency. Introduced new scripts for badge color fixes. Updated dependencies in package.json and package-lock.json. Added scripts/README.md and scripts/fix-badge-colors.js for badge management.
Added Docker badge and updated Cloudflare Workers badge links in both English and Chinese README files. In the GitHub Actions workflow, assigned an id to the Docker build-and-push step and updated the provenance attestation to use the correct digest output.
Expanded documentation in both English and Chinese READMEs to include detailed container registry acceleration usage and deployment instructions. Refactored Dockerfile to use a multi-stage build with workerd for self-hosted deployment. Improved .dockerignore for cleaner builds. Updated GitHub Actions workflows to refine path ignores and metadata extraction. Added config.capnp for workerd configuration. Removed obsolete .html file and enhanced CLAUDE.md with comprehensive architecture and development guidance.
Revised the disclaimer sections in both README files for clarity, legal accuracy, and broader coverage of use cases. Updated CONTRIBUTING.md to improve language consistency and removed references to GitHub Discussions. Removed author contact and sponsorship sections from the README files.
Deleted a duplicate or unnecessary line in both English and Chinese README files under the Quick Start section to streamline instructions and avoid repetition.
Reorganized and updated badges in both English and Chinese README files for improved clarity and consistency. Added new badges for Cloudflare Workers, Chromium, and Firefox, and adjusted the layout for better visual alignment.
Simplified the README header by replacing the custom HTML heading and logo with a Markdown heading. Moved the Trendshift badge below the badges section for better organization.
Added GitHub Gist ('gist') to the supported platforms in the configuration, updated documentation in both English and Chinese READMEs, and included related tests to ensure correct path transformation and base URL.
Updated the request handling logic in src/index.js to include isGitLFS in conditions for setting request body, copying headers, and returning responses. This ensures proper handling of Git LFS operations alongside Git, Docker, and AI requests.
Introduces detection and handling for Git LFS (Large File Storage) operations, including LFS-specific endpoints, headers, and user agents. Updates request validation, header management, and cache logic to properly support LFS requests and ensure real-time data synchronization. Adds comprehensive integration and unit tests for LFS scenarios, and documents the new behavior in CLAUDE.md.
This commit updates all documentation to reflect the new Docker Hub support:
Documentation updates:
- Add Docker Hub to container registry tables in README.md and README.en.md
- Add Docker Hub examples showing both official and user images
- Update CLAUDE.md with Docker Hub platform category and special handling notes
Docker Hub usage examples:
- Official images: /cr/docker/v2/nginx/manifests/latest
- User images: /cr/docker/v2/nginxinc/nginx-unprivileged/manifests/latest
Docker Hub is now listed as the first container registry in documentation tables, reflecting its position as the most widely used container registry.
This commit adds support for Docker Hub (registry-1.docker.io) as a container registry platform with special authentication handling for official images.
Changes:
- Add 'cr-docker' platform pointing to https://registry-1.docker.io in platforms.js
- Implement special authentication scope handling for Docker Hub official images
- Docker Hub stores official images (nginx, redis, etc.) as library/nginx, library/redis
- Single-component image names are automatically prefixed with 'library/' for authentication
- Multi-component names (user/image) are passed through unchanged
- Add comprehensive tests for Docker Hub support
This resolves the issue where pulling public images from Docker Hub would prompt for authentication incorrectly. The library prefix is now automatically added to the authentication scope for single-name images, allowing proper anonymous access to public official images.
Test coverage:
- Official images (single-name): /cr/docker/v2/nginx/manifests/latest
- User images (namespaced): /cr/docker/v2/nginxinc/nginx-unprivileged/manifests/latest
- GET and HEAD request methods verified
All Docker Hub specific tests pass.