mirror of
https://github.com/NewFuture/DDNS.git
synced 2026-10-20 00:16:45 +00:00
v5
6
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
93b79d2103 |
feat(v5): prepare the Rust DDNS development line (#728)
* feat(rust): add parallel DDNS MVP Add a synchronous Rust client with compatible configuration, IP discovery, caching, and the first four providers. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): address review compatibility gaps Handle DNSPod failures safely, accept Python-compatible log thresholds, document Rust regex limits, and tolerate non-Unicode environment entries. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): preserve generated provider options Serialize endpoint overrides and --extra.* values so generated configuration files reproduce accepted CLI settings. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): align provider and config behavior Keep provider lookup parameters scoped, continue DNSPod zone discovery safely, and match Python configuration and regex semantics. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): harden credentials and CI scoping Redact provider credentials, align remaining config/cache behavior, and avoid running language-specific builds for unrelated changes while preserving required checks. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): preserve authenticated URL compatibility Translate embedded URL credentials to Basic auth, align generated TTL defaults, and run Rust checks for the abc PR target. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): isolate caches and aggregate safe errors Keep Python cache files untouched, redact retained failures, and continue multi-provider runs after log setup errors. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * feat(rust): complete providers and distribution Port the remaining DNS providers and aliases, add protected native/container release workflows, and provide a checksum-aware Rust installer. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * docs(agents): register Rust development guide Keep the generated project structure contract aligned with the new bilingual Rust documentation. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): address review feedback Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * refactor(rust): simplify core design Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * refactor(rust): use typed borrowed core Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * refactor(rust): streamline transport state Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * test(rust): share provider fixtures Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * test(rust): expand end-to-end coverage Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): simplify provider modes and lookup handling Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * chore(v5): prepare isolated Rust development line Keep Rust changes on the v5 integration line and prepare artifacts without publishing or changing the stable Python entrypoint. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): redact credential-bearing URL paths Hide non-root URL paths in diagnostics and omit URI text from transport errors while preserving actual request URLs. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): fully mask credential values Replace credential prefixes and suffixes with a constant opaque marker while retaining raw and percent-encoded masking. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): correct provider signing and zone lookup errors Use RFC3986 canonical queries for Huawei signing. Distinguish documented NameSilo and ClouDNS zone misses from authentication, HTTP, and provider failures. Add offline regressions and matching V5 documentation. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): preserve address spelling for regex rules Match regex rules against the extracted address text without IPv6 canonicalization, while retaining strict IpAddr validation and parsed return values. Cover original spelling, invalid candidates, family filtering, and matching boundaries. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): reject unusable local IPs and malformed record lists Filter loopback and unspecified addresses before local indexing. Reject malformed ClouDNS, Huawei, and NameSilo record lookups without creating duplicates while retaining valid empty responses. Isolate installer test globals and cleanup traps in subshells. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): keep DNS.COM signatures out of diagnostics Use the sensitive request path for signed DNS.COM bodies, omit raw HTTP and JSON failure responses, and redact signatures echoed in API messages. Preserve request signing and ordinary HTTP diagnostics with offline regressions. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): mask form credentials and validate upgrades before replacement Reuse the form encoder for credential redaction and smoke-test temporary installer binaries before replacing a working installation. Cover rejected upgrades and existing trailing-period IP parsing without changing address extraction. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): preserve provider updates and V5 preparation contracts Send Huawei canonical query bytes unchanged, accept nonempty single-label domains at configuration ingress, and honor AliDNS/ESA extras on unchanged addresses. Require V5 prereleases in artifact preparation with offline regression coverage. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(rust): accept separated negative CLI integers Recognize negative integer tokens as required scalar values without consuming option names. Preserve per-option range validation and cover log-level aliases, inline parity, and real CLI execution. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(ci): use architecture names for Rust QEMU setup Install only the arm64 emulator on the amd64 OCI preparation runner while preserving linux/amd64,linux/arm64 for Buildx. Strengthen offline workflow contracts to distinguish the two inputs. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> |
||
|
|
06c0e912f4 |
test(e2e): expand binary coverage (#727)
* test(e2e): expand binary coverage Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * ci(e2e): cap binary jobs at 10 minutes Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(e2e): stabilize binary matrix tests Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(ci): refresh cross-platform test images Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(ci): defer ARMv6 emulation until tests Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(ci): keep ARMv6 job within timeout Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> |
||
|
|
c30822bd33 |
test(e2e): cover source and binary workflows (#719)
* test(e2e): cover source and binary workflows Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(e2e): stop compiled process groups Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * ci(build): limit ARM BuildKit parallelism Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * revert: remove ARM BuildKit workaround The builder image is being rebuilt to address the zstd allocation failure at its source. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(e2e): use OS-assigned dashboard port Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> |
||
|
|
e102ce5039 |
fix(docker): prevent zombie process accumulation (#711)
* fix(docker): prevent zombie process accumulation Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(docker): forward signals to startup processes Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> |
||
|
|
09af9a094d |
feat(install): 一键安装脚本 add POSIX-compatible one-click installation script with multilingual support and comprehensive testing (#546)
* Initial plan * feat(install): add one-click installation script with multi-platform support Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(install): address review feedback - POSIX sh compatibility, multilingual support, API proxy, and CI tests Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(install): address feedback - simplify logic, update URLs, add OpenWrt testing, improve sudo handling Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * update scripts * mv test scripts * update test scirpts * update tests * fix tests * fix ci * update test * fix tests * set-ua * fix tests in docker * fix tests * fix version * fix version check * fix tests * fix proxy * fix tests * enhance download functionality with timeout and improved SSL handling * update proxy validation to use a real release asset for improved reliability * fix proxy * fix download result code * fix test proxy * fix ertry * fix retry * info message * update README and installation scripts to support remote URL and proxy configuration * wget 兼容 * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix libc detect * fix beta check --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> Co-authored-by: New Future <NewFuture@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
6c24557505 |
feat(cli): add task subcommand for automated scheduled task management (#541)
* Initial plan * feat(cli): implement task subcommand with cross-platform scheduler support Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs(cli): add task subcommand documentation Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(cli,task): address review feedback - move task handler to cli, remove defaults, improve fallback status checking Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(task): convert TaskManager class to functions and handle task commands entirely in CLI Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(cli,tests): remove handle_task_command from exports and rename test file Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * feat(task): add enable and disable commands for scheduled tasks * add task tests * refactor(task): simplify task command handling and update status retrieval * update task * test(task): update subcommand tests to assert exit codes and rename delete to uninstall * Add unit tests for DDNS task subcommand functionality and enhance existing tests - Introduced comprehensive unit tests for the DDNS task subcommand, covering help, status, install, enable, disable, delete, and argument handling. - Added tests for file I/O operations in the ddns.util.fileio module, ensuring proper directory creation, file reading/writing, and error handling. - Enhanced test coverage for task scheduling functions, including systemd and cron installations, with additional checks for argument handling. - Updated existing tests to improve compatibility and reliability across different operating systems, particularly for path handling on Windows. - Refactored task command building tests to ensure correct command generation with various argument types, including lists and boolean flags. * refactor(task): improve command execution and path handling for DDNS tasks * remove DEVNULL * fix(task): ensure proper task interval handling and add sudo for task commands in test script * add and fix tests * fix lint * refactor(cli): organize DDNS arguments into groups and improve task subcommand handling * fix tests * +x * fix py2 and types * rm sudo * fix(tests): use sudo for task installation and uninstallation in test script * update test command * always force * fix format * docs: add task management parameters and usage examples to CLI documentation * update log * docs: update CLI task management instructions and examples * fix py2 * fix task in python2 * fix lint * refactor tasks * update tests * add schtasks-based task scheduler implementation and unit tests * Enhance scheduler functionality and improve error handling - Added a 60-second timeout to subprocess calls in BaseScheduler to prevent hanging. - Improved error logging in BaseScheduler to capture command failures. - Refactored CronScheduler to remove unnecessary variable initialization. - Updated SystemdScheduler to handle PermissionError and provide user feedback for permission issues. - Enhanced file I/O functions in fileio.py to return default values on exceptions. - Improved unit tests for scheduler classes to ensure robust testing of functionality and error handling. - Added lifecycle operation tests for SystemdScheduler to validate install, enable, disable, and uninstall processes. - Ensured consistent status reporting across multiple calls in SystemdScheduler. - Cleaned up test code for better readability and maintainability. * fix lint * Refactor scheduler command execution and enhance error handling in BaseScheduler and LaunchdScheduler tests * fix tests * Add unittest configuration to settings and improve SchtasksScheduler error handling * Refactor code for improved readability and maintainability in various test files and the DnspodProvider class * Refactor LaunchdScheduler tests for improved readability and error handling * fix py2 * fix mac launchd test * fix lint * fix macos tests * fix windows test * patch readme * update doc * Update tests/test_scheduler_cron.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> Co-authored-by: New Future <NewFuture@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |