Tags: NewFuture/DDNS
Tags
docs: update schema references from v4.0.json to v4.1.json (#651) * Initial plan * docs: update schema references from v4.0.json to v4.1.json Co-authored-by: NewFuture <[email protected]> * fix: revert schema/v4.0.json to keep v4.0 definition unchanged Co-authored-by: NewFuture <[email protected]> * docs: update schema file links to v4.1.json in provider README Co-authored-by: NewFuture <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: NewFuture <[email protected]> Co-authored-by: New Future <[email protected]>
feat(ci): use JSON format and auto-convert file references to URLs in… … issue replies (#597) * Initial plan * feat(ci): improve auto-reply-issue with JSON format and URL conversion - Update system prompt to request JSON response format instead of text tag - Add JSON parsing with fallback to legacy format for backward compatibility - Add automatic URL conversion for markdown doc references (doc/*.md -> https://ddns.newfuture.cc/doc/*.html) - Add automatic URL conversion for code file references (ddns/*.py -> GitHub links) - Add response_format: json_object to API request for structured responses - Add comprehensive file reference guidelines in system prompt Co-authored-by: NewFuture <[email protected]> * Apply suggestions from code review Co-authored-by: Copilot <[email protected]> * fix(ci): remove redundant URL conversion mentions from AI prompt The URL conversion is handled in the workflow code, so the AI prompt should only instruct to use backticks with relative paths, not mention the post-processing conversion. Co-authored-by: NewFuture <[email protected]> * refactor(ci): let AI generate markdown links directly in response Simplify workflow logic by having AI output markdown links directly instead of post-processing. This makes the code simpler and reduces complexity in the workflow. Co-authored-by: NewFuture <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: NewFuture <[email protected]> Co-authored-by: New Future <[email protected]> Co-authored-by: Copilot <[email protected]>
feat(provider): add EdgeOne DNS provider for non-accelerated domain r… …ecords (#588) * Initial plan * feat(provider): add EdgeOne DNS provider for non-accelerated domains Co-authored-by: NewFuture <[email protected]> * docs(provider): add EdgeOne DNS documentation for non-accelerated domains Co-authored-by: NewFuture <[email protected]> * fix(provider): update EdgeOne provider aliases per feedback - Acceleration domains: edgeone, edgeone_acc, teo_acc - DNS records: edgeone_dns, teo_dns, edgeone_noacc - Removed: teo, tencentedgeone, neo_acc, neo - Updated documentation to reflect new aliases Co-authored-by: NewFuture <[email protected]> * feat(provider): add extra parameter support and update documentation index - Add edgeone_dns to provider index documentation (README.md) - Add "teo" alias for backward compatibility (not documented) - Enable EdgeOneProvider to support both acceleration and DNS records via extra['dns_record'] parameter - Update provider aliases and documentation Co-authored-by: NewFuture <[email protected]> * docs: create comprehensive new-provider agent guide - Add detailed step-by-step guide for creating new DNS providers - Include API analysis, implementation, testing, and documentation steps - Provide code templates and examples for both BaseProvider and SimpleProvider - Add completion checklist and common pitfalls - Document all requirements including compatibility checks and index updates Co-authored-by: NewFuture <[email protected]> * refactor(provider): change extra parameter from dns_record to teoDomainType - Change EdgeOneProvider to use teoDomainType parameter instead of dns_record - Support values: "dns" or "acceleration" (default) - Parameter is case-insensitive - EdgeOneDnsProvider now uses extra parameter to control behavior - All 55 tests passing Co-authored-by: NewFuture <[email protected]> * refactor(provider): simplify EdgeOneDnsProvider with helper method - Extract common extra parameter preparation into _prepare_extra() method - Reduces code duplication across _query_record, _create_record, _update_record - All 55 tests passing Co-authored-by: NewFuture <[email protected]> * refactor(provider): make EdgeOneDnsProvider more elegant and concise - Use class attribute _default_domain_type = "dns" for clarity - Replace _prepare_extra() with inline setdefault() for more Pythonic code - setdefault() allows users to override teoDomainType if needed - All 55 tests passing Co-authored-by: NewFuture <[email protected]> * refactor(provider): use options instead of extra for teoDomainType - Move teoDomainType from per-call extra to instance-level options - More appropriate since provider type is fixed per instance - EdgeOneProvider reads teoDomainType from self.options at initialization - EdgeOneDnsProvider sets teoDomainType="dns" in __init__ - Simplified implementation: 28 lines vs 43 lines for EdgeOneDnsProvider - All 55 tests passing Co-authored-by: NewFuture <[email protected]> * refactor(provider): support both extra and options for teoDomainType with priority - Remove __init__ from EdgeOneProvider, read directly from self.options - Support teoDomainType in both extra (per-call) and options (initialization) - extra parameter has higher priority than options - Priority: extra > options > default ("acceleration") - All 55 tests passing Co-authored-by: NewFuture <[email protected]> * docs(provider): add teoDomainType parameter documentation for EdgeOne - Document how to switch between acceleration domains and DNS records - Explain extra.teoDomainType parameter usage - Add configuration examples for both modes - Update parameter tables with teoDomainType and extra - Document priority: extra > initialization parameter - Add bilingual documentation (Chinese and English) Co-authored-by: NewFuture <[email protected]> * docs(provider): remove initialization parameter config example from EdgeOne - Remove the example showing teoDomainType via initialization parameters - Only document usage via extra parameter - Remove priority note since only one method is documented - Keep recommendation to use EdgeOneDnsProvider for cleaner code - Update both Chinese and English documentation Co-authored-by: NewFuture <[email protected]> * docs(agent): update new-provider guide with relative paths and schema notes - Update CLI compatibility note to mention checking --dns parameter choices - Change schema note to only require v4.0 (latest format) updates - Replace "multi-provider format" with "latest schema format" - Convert all absolute paths to relative paths from project root - Remove /home/runner/work/DDNS/DDNS/ prefix from all file paths Co-authored-by: NewFuture <[email protected]> * docs(agent): correct latest schema version to v4.1 - Update schema compatibility section to reference v4.1 instead of v4.0 - v4.1 is the latest schema format that requires updates Co-authored-by: NewFuture <[email protected]> * feat(config): add edgeone_dns to CLI and schema v4.1 - Add edgeone_dns to CLI --dns parameter choices - Add edgeone_dns to schema v4.1 provider enum (both legacy and multi-provider sections) - Update provider descriptions to include EdgeOne DNS Co-authored-by: NewFuture <[email protected]> * Apply suggestions from code review Co-authored-by: Copilot <[email protected]> * Refactor labels_to_prompts_mapping format * fix(provider): filter teoDomainType from extra params before API call - Remove teoDomainType from extra dict before passing to Tencent Cloud API - Fixes "UnknownParameter - The parameter `extra_teoDomainType` is not recognized" error - teoDomainType is internal parameter for routing, not for API requests - All 55 tests passing Co-authored-by: NewFuture <[email protected]> * docs(provider): update schema references to v4.1.json in EdgeOne docs - Update all $schema references from v4.0.json to v4.1.json - Applied to edgeone.md, edgeone.en.md, edgeone_dns.md, edgeone_dns.en.md - Ensures documentation references the latest schema format Co-authored-by: NewFuture <[email protected]> * Changes before error encountered Co-authored-by: NewFuture <[email protected]> * fix(config): preserve nested extra dict from JSON/ENV config - Process "extra" dict before extra_ prefixed keys to avoid flattening - Fixes issue where {"extra":{"teoDomainType":"dns"}} was incorrectly transformed to {"extra_teoDomainType":"dns"} - Maintains backward compatibility with extra_ prefixed keys - Priority: explicit extra dict > extra_ prefixed keys > unknown keys Co-authored-by: NewFuture <[email protected]> * Apply suggestions from code review Co-authored-by: Copilot <[email protected]> * Apply suggestions from code review Co-authored-by: Copilot <[email protected]> * Update tests/test_provider_edgeone_dns.py Co-authored-by: Copilot <[email protected]> * Update tests/test_provider_edgeone_dns.py Co-authored-by: Copilot <[email protected]> * style: apply ruff formatting fixes - Format 9 files with ruff - Fix 2 linting issues automatically - One complexity warning remains (C901) but doesn't affect functionality - All code now follows consistent formatting standards Co-authored-by: NewFuture <[email protected]> * docs(agent): add ruff installation instructions to new-provider guide - Add pip3 install ruff command before formatting/linting steps - Ensures developers have required tools before running verification - Prevents common setup errors Co-authored-by: NewFuture <[email protected]> * docs(config): clarify extra dict and extra_ prefix priority within config sources - Add comments explaining that extra_ prefixed keys override nested extra dict values within the same source - Improves code documentation clarity for config flattening logic - Addresses feedback about intra-source priority ordering Co-authored-by: NewFuture <[email protected]> * refactor(config): reduce complexity of _collect_extra method - Extract _process_extra_from_source helper method to reduce cyclomatic complexity - Fixes ruff C901 error (complexity was 14, now under threshold) - Maintains all existing functionality and test coverage - All 60 extra-related tests passing Co-authored-by: NewFuture <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: NewFuture <[email protected]> Co-authored-by: New Future <[email protected]> Co-authored-by: Copilot <[email protected]>
refactor(docker): remove redundant patch.py call from Dockerfile (#580) * Initial plan * fix(docker): add GITHUB_REF_NAME to Dockerfile for correct version Co-authored-by: NewFuture <[email protected]> * docs(docker): add comment explaining GITHUB_REF_NAME purpose * refactor(docker): remove redundant patch.py call from Dockerfile The patch.py script is already run by the GitHub Actions workflow before the Docker build with the correct GITHUB_REF_NAME environment variable. Running it again inside the Dockerfile is redundant and unnecessary. This simplifies the Dockerfile by removing: - The copy of .github/patch.py - The ARG/ENV GITHUB_REF_NAME declarations - The RUN python3 .github/patch.py docker command The workflow already handles patching at: - .github/workflows/build.yml line 351 - .github/workflows/publish.yml line 26 Co-authored-by: NewFuture <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: NewFuture <[email protected]>
refactor(docker): remove redundant patch.py call from Dockerfile (#580) * Initial plan * fix(docker): add GITHUB_REF_NAME to Dockerfile for correct version Co-authored-by: NewFuture <[email protected]> * docs(docker): add comment explaining GITHUB_REF_NAME purpose * refactor(docker): remove redundant patch.py call from Dockerfile The patch.py script is already run by the GitHub Actions workflow before the Docker build with the correct GITHUB_REF_NAME environment variable. Running it again inside the Dockerfile is redundant and unnecessary. This simplifies the Dockerfile by removing: - The copy of .github/patch.py - The ARG/ENV GITHUB_REF_NAME declarations - The RUN python3 .github/patch.py docker command The workflow already handles patching at: - .github/workflows/build.yml line 351 - .github/workflows/publish.yml line 26 Co-authored-by: NewFuture <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: NewFuture <[email protected]>
fix(workflows): pass GITHUB_REF_NAME to workflows for correct version… … in extraction path (#579) * Initial plan * fix(docker): add GITHUB_REF_NAME to Dockerfile for correct version extraction path Co-authored-by: NewFuture <[email protected]> * fix(workflows): add GITHUB_REF_NAME env to patch.py docker steps The patch.py docker command runs on the GitHub Actions runner before the Docker build, but it didn't have access to GITHUB_REF_NAME environment variable. This caused it to fall back to the hardcoded version 4.0.0.devXXXXX. Added GITHUB_REF_NAME environment variable to the workflow steps that run patch.py docker in both publish.yml and build.yml. This complements the Dockerfile fix by ensuring version is correct at both stages: 1. Pre-patch on runner (now fixed) 2. Patch inside Docker build (already fixed in previous commit) Co-authored-by: NewFuture <[email protected]> * revert: remove GITHUB_REF_NAME from Dockerfile and revert http.py changes As requested, reverted the Dockerfile changes (ARG/ENV GITHUB_REF_NAME) and the http.py changes (Python 2/3 compatibility removal that was an unintended side effect). The fix now only modifies the workflow files (publish.yml and build.yml) to set GITHUB_REF_NAME environment variable for the patch.py docker steps that run on the GitHub Actions runner. Co-authored-by: NewFuture <[email protected]> * revert: restore http.py try/except for Python 2/3 compatibility The previous commit only reverted the Dockerfile. This commit properly restores the http.py file to its original state with Python 2/3 compatibility (try/except blocks). Co-authored-by: NewFuture <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: NewFuture <[email protected]>
fix(config): exclude $schema from extra parameters sent to DNS APIs (#… …576) * Initial plan * fix(config): exclude $schema from extra parameters to prevent API errors Co-authored-by: NewFuture <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: NewFuture <[email protected]>
feat(docker): add DDNS_CRON environment variable for customizable cro… …n schedule (#574) * Initial plan * feat(docker): add DDNS_CRON environment variable for customizable cron schedule Co-authored-by: NewFuture <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: NewFuture <[email protected]>
feat(docker): add DDNS_CRON environment variable for customizable cro… …n schedule (#574) * Initial plan * feat(docker): add DDNS_CRON environment variable for customizable cron schedule Co-authored-by: NewFuture <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: NewFuture <[email protected]>
fix: add missing packages to pip distribution (config and scheduler) (#… …572) * Initial plan * chore: initial investigation - reproduce pip install issue Co-authored-by: NewFuture <[email protected]> * fix(pyproject): add missing packages config and scheduler to pip distribution Co-authored-by: NewFuture <[email protected]> * test(ci): add pip install verification tests to GitHub Actions Co-authored-by: NewFuture <[email protected]> * refactor(ci): improve pip install test commands for better error handling Co-authored-by: NewFuture <[email protected]> * refactor(ci): use find command for more robust file selection in pip tests Co-authored-by: NewFuture <[email protected]> * revert(init): restore placeholder values for BUILD_VERSION and BUILD_DATE Co-authored-by: NewFuture <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: NewFuture <[email protected]> Co-authored-by: New Future <[email protected]>
PreviousNext