Skip to content

Namecheap skill#1876

Open
brunoborges wants to merge 4 commits into
stagedfrom
namecheap-skill
Open

Namecheap skill#1876
brunoborges wants to merge 4 commits into
stagedfrom
namecheap-skill

Conversation

@brunoborges
Copy link
Copy Markdown
Contributor

Pull Request Checklist

  • I have read and followed the CONTRIBUTING.md guidelines.
  • I have read and followed the Guidance for submissions involving paid services.
  • My contribution adds a new instruction, prompt, agent, skill, or workflow file in the correct directory.
  • The file follows the required naming convention.
  • The content is clearly structured and follows the example format.
  • I have tested my instructions, prompt, agent, skill, or workflow with GitHub Copilot.
  • I have run npm start and verified that README.md is up to date.
  • I am targeting the staged branch for this pull request.

Description

Namecheap DNS Management Skill


Type of Contribution

  • New instruction file.
  • New prompt file.
  • New agent file.
  • New plugin.
  • New skill file.
  • New agentic workflow.
  • Update to existing instruction, prompt, agent, plugin, skill, or workflow.
  • Other (please specify):

Additional Notes


By submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.

Copilot AI review requested due to automatic review settings May 29, 2026 18:00
@brunoborges brunoborges requested a review from aaronpowell as a code owner May 29, 2026 18:00
@github-actions github-actions Bot added new-submission PR adds at least one new contribution skills PR touches skills labels May 29, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 29, 2026

🔍 Skill Validator Results

✅ All checks passed

Scope Checked
Skills 1
Agents 0
Total 1
Severity Count
--- ---:
❌ Errors 0
⚠️ Warnings 0
ℹ️ Advisories 0

Summary

Level Finding
ℹ️ Found 1 skill(s)
ℹ️ [namecheap] 📊 namecheap: 1,512 BPE tokens [chars/4: 1,569] (detailed ✓), 25 sections, 2 code blocks
ℹ️ ✅ All checks passed (1 skill(s))
Full validator output ```text Found 1 skill(s) [namecheap] 📊 namecheap: 1,512 BPE tokens [chars/4: 1,569] (detailed ✓), 25 sections, 2 code blocks ✅ All checks passed (1 skill(s)) ```

@brunoborges brunoborges enabled auto-merge May 29, 2026 18:02
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new "namecheap" skill that wraps the Namecheap XML API for DNS management, including domain listing, host record CRUD, nameserver and email-forwarding operations, plus a setup flow that detects the public IP and stores credentials in ~/.namecheap-api.

Changes:

  • New skills/namecheap/SKILL.md describing the workflow, supported operations, and credential storage.
  • New skills/namecheap/namecheap.sh Bash CLI that issues API requests and performs fetch-modify-write for safe single-record add/remove.
  • New skills/namecheap/references/namecheap-api.md reference and a generated entry in docs/README.skills.md.
Show a summary per file
File Description
skills/namecheap/SKILL.md Skill metadata, workflow, behavior rules, and credential-storage guidance.
skills/namecheap/namecheap.sh Bash wrapper implementing all documented API commands and the setup flow.
skills/namecheap/references/namecheap-api.md API reference: parameters, XML response shapes, error codes, record/TTL tables.
docs/README.skills.md Generated skills index entry for the new namecheap skill.

Copilot's findings

  • Files reviewed: 4/4 changed files
  • Comments generated: 7

Comment thread skills/namecheap/namecheap.sh Outdated
Comment thread skills/namecheap/namecheap.sh Outdated
Comment thread skills/namecheap/namecheap.sh Outdated
Comment thread skills/namecheap/namecheap.sh Outdated
Comment thread skills/namecheap/SKILL.md Outdated
Comment thread skills/namecheap/namecheap.sh Outdated
Comment thread skills/namecheap/namecheap.sh Outdated
@brunoborges brunoborges marked this pull request as draft May 29, 2026 18:47
auto-merge was automatically disabled May 29, 2026 18:47

Pull request was converted to draft

Replace the Bash namecheap.sh with a stdlib-only Python CLI (namecheap.py)
that resolves all Copilot PR review feedback:

- Cache the public IP once per run instead of per request
- Build API requests in-process via urllib so the API key never appears
  in process argv or shell history
- Broaden multi-part TLD detection (co.uk, com.au, etc.) and document the
  limitation
- Allow setup to update existing stored credentials
- Stop soliciting the API key via chat; use terminal getpass or env vars
- Remove non-portable Bash constructs (inline local, grep -oP)

Also normalize domain casing, preserve MX priority 0, accept
case-insensitive record types, and handle mixed-case email-forwarding
attributes. Update SKILL.md and regenerate the skills README.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@brunoborges
Copy link
Copy Markdown
Contributor Author

Addressed all of Copilot's review feedback by rewriting the skill in Python (stdlib-only namecheap.py), replacing the Bash script. This resolves the comments structurally:

  • Public IP caching — fetched once per run, not per request.
  • API key safety — requests are built in-process with urllib; the key never appears in process argv or shell history (the prior curl positional-arg risk is gone).
  • Multi-part TLDs — broadened detection (co.uk, com.au, co.jp, …) with a documented limitation in SKILL.md.
  • Setup updates existing creds — now prompts before overwriting.
  • No secrets via chat — SKILL.md instructs running setup in your own terminal (getpass) or using NAMECHEAP_API_USER/NAMECHEAP_API_KEY env vars.
  • Portability — removed fragile inline local and grep -oP (not on macOS/BSD); Python runs cross-platform with no dependencies.

Additional hardening: domain-case normalization, MX priority 0 preserved, case-insensitive record types, and mixed-case email-forwarding attributes handled. Validated with npm run skill:validate (350 skills), npm run build, and eng/fix-line-endings.sh.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 4/4 changed files
  • Comments generated: 1

Comment thread skills/namecheap/SKILL.md
Co-authored-by: brunoborges <129743+brunoborges@users.noreply.github.com>
@brunoborges brunoborges marked this pull request as ready for review May 29, 2026 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-submission PR adds at least one new contribution skills PR touches skills

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants