One-line summary: a read-only, rate-limited, cached tool for AI agents to search Drupal.org issue queues, summarize threads, and locate patches without scraping.
This skill bridges AI agents and the official Drupal.org API (api-d7). It is designed to be a good citizen of Drupal.org infrastructure by enforcing request budgeting, rate limiting, and local caching. It emits structured JSON for agent workflows and readable Markdown for human briefings.
Configure your agent to invoke this skill when a user asks to:
- Find the status of a specific issue.
- Summarize recent comments on an issue.
- Debug an error by checking whether a related issue already exists before patching locally.
- List issues matching status, priority, category, version, or component.
- Check whether a patch is attached to an issue.
The tool exposes two primary commands via scripts/dorg.py.
Retrieves metadata, body text, recent comments, and file attachments for a specific issue.
python scripts/dorg.py issue <nid-or-url> [options]Common options:
--mode summary|full(default:summary)--comments N(default: 10 in summary mode, 50 in full mode)--comment-direction ASC|DESC(default:DESC)--files-limit N|all|0(default:10)--resolve-tags none|api|static(default:api)--tag-map path/to/map.json(required when--resolve-tags=static)--related-mrs,--extra-credit--format json|md(default:json)
Filters the issue queue of a specific project (module, theme, or core).
python scripts/dorg.py search --project <machine_name> [options]Common options:
--status <alias|code>--priority <alias|code>--category <alias|code>--version <string>--component <string>--tag-tid <tid>--limit N(default: 20)--sort changed|created|nid(default:changed)--direction ASC|DESC(default:DESC)
This tool uses the Python standard library.
- Clone the repository:
git clone https://github.com/your-username/drupal-issue-queue.git
cd drupal-issue-queue- Verify the CLI:
python scripts/dorg.py --help- Optional: install PyYAML if you use
--resolve-tags=staticwith YAML:
pip install pyyaml- Read-only: no writes to Drupal.org.
- Request budget: defaults to 30 requests per run; sets
truncated.request_budget_hitwhen exceeded. - Caching: responses cached in
~/.cache/drupal-issue-queue(TTL default: 1 hour). - Rate limiting: default 200ms between requests and respects
Retry-Afterheaders.
python scripts/dorg.py search \
--project metatag \
--status "needs review" \
--category bug \
--format jsonpython scripts/dorg.py issue 3412345 --format mdThe tool accepts human-readable aliases for common Drupal codes. See:
references/issue-field-mappings.mdreferences/output-schema.mdreferences/drupalorg-api-d7.md
This skill is designed to pair with:
https://github.com/scottfalconer/drupal-contribute-fixhttps://github.com/scottfalconer/drupal-intent-testing
Global options available on both commands:
--user-agentto override the default User-Agent string.--cache-dir(default:~/.cache/drupal-issue-queue)--cache-ttl(default: 3600 seconds)--sleep-ms(default: 200)--max-requests(default: 30)
Add a LICENSE file to declare the license terms for this project.