Tags: NewFuture/DDNS
Tags
docs: sync llms.txt with CloudNS and automate doc changes detection (#… …666) * Initial plan * docs(agents): update AGENTS.md with CloudNS files and version Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs(agents): remove unnecessary emphasis on test_provider_cloudns.py Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs: update llms.txt with CloudNS and enhance update-agents workflow Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Update .github/scripts/update_agents_structure.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: remove trailing whitespace in update_agents_structure.py Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix: update script to use 'docs/' instead of 'doc/' directory Co-authored-by: NewFuture <6290356+NewFuture@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>
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 <6290356+NewFuture@users.noreply.github.com> * fix: revert schema/v4.0.json to keep v4.0 definition unchanged Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs: update schema file links to v4.1.json in provider README Co-authored-by: NewFuture <6290356+NewFuture@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>
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 <6290356+NewFuture@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@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>
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 <6290356+NewFuture@users.noreply.github.com> * docs(provider): add EdgeOne DNS documentation for non-accelerated domains Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * Changes before error encountered Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update tests/test_provider_edgeone_dns.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update tests/test_provider_edgeone_dns.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@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>
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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@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>
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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@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>
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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@users.noreply.github.com> * 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 <6290356+NewFuture@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>
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 <6290356+NewFuture@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>
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 <6290356+NewFuture@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>
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 <6290356+NewFuture@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>
PreviousNext