@openhands/extensions 0.21.0 → 0.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +881 -0
- package/.codex-plugin/marketplace.json +881 -0
- package/.github/workflows/npm-publish.yml +9 -3
- package/.plugin/marketplace.json +881 -0
- package/.release-please-manifest.json +1 -1
- package/README.md +3 -2
- package/automations/bundle-index.js +16 -7
- package/automations/catalog/github-delivery-watchdog/manifest.json +79 -0
- package/automations/catalog/github-issue-to-pr/manifest.json +23 -15
- package/automations/catalog/github-issue-triage/manifest.json +4 -3
- package/automations/catalog/github-pr-reviewer/manifest.json +22 -15
- package/automations/catalog-index.js +6 -4
- package/marketplaces/openhands-extensions.json +6 -0
- package/package.json +1 -1
- package/plugins/city-weather/.claude-plugin/plugin.json +13 -0
- package/plugins/city-weather/.codex-plugin/plugin.json +13 -0
- package/plugins/cobol-modernization/.claude-plugin/plugin.json +19 -0
- package/plugins/cobol-modernization/.codex-plugin/plugin.json +19 -0
- package/plugins/issue-duplicate-checker/.claude-plugin/plugin.json +13 -0
- package/plugins/issue-duplicate-checker/.codex-plugin/plugin.json +13 -0
- package/plugins/magic-test/.claude-plugin/plugin.json +13 -0
- package/plugins/magic-test/.codex-plugin/plugin.json +13 -0
- package/plugins/migration-scoring/.claude-plugin/plugin.json +19 -0
- package/plugins/migration-scoring/.codex-plugin/plugin.json +19 -0
- package/plugins/onboarding/.claude-plugin/plugin.json +20 -0
- package/plugins/onboarding/.codex-plugin/plugin.json +20 -0
- package/plugins/onboarding/skills/agent-readiness-report/references/criteria.md +144 -0
- package/plugins/onboarding/skills/improve-agent-readiness/references/criteria.md +144 -0
- package/plugins/openhands/.claude-plugin/plugin.json +13 -0
- package/plugins/openhands/.codex-plugin/plugin.json +13 -0
- package/plugins/openhands/skills/openhands-api/.claude-plugin/plugin.json +22 -0
- package/plugins/openhands/skills/openhands-api/.codex-plugin/plugin.json +22 -0
- package/plugins/openhands/skills/openhands-api/.plugin/plugin.json +22 -0
- package/plugins/openhands/skills/openhands-api/README.md +52 -0
- package/plugins/openhands/skills/openhands-api/SKILL.md +469 -0
- package/plugins/openhands/skills/openhands-api/references/README.md +33 -0
- package/plugins/openhands/skills/openhands-api/references/TROUBLESHOOTING.md +81 -0
- package/plugins/openhands/skills/openhands-api/references/example_prompt.md +12 -0
- package/plugins/openhands/skills/openhands-api/references/windows.md +44 -0
- package/plugins/openhands/skills/openhands-api/scripts/openhands_api.py +606 -0
- package/plugins/openhands/skills/openhands-api/scripts/openhands_api.ts +252 -0
- package/plugins/openhands/skills/openhands-automation/.claude-plugin/plugin.json +19 -0
- package/plugins/openhands/skills/openhands-automation/.codex-plugin/plugin.json +19 -0
- package/plugins/openhands/skills/openhands-automation/.plugin/plugin.json +19 -0
- package/plugins/openhands/skills/openhands-automation/README.md +89 -0
- package/plugins/openhands/skills/openhands-automation/SKILL.md +899 -0
- package/plugins/openhands/skills/openhands-automation/commands/automation-create.md +8 -0
- package/plugins/openhands/skills/openhands-automation/references/ab-testing.md +185 -0
- package/plugins/openhands/skills/openhands-automation/references/custom-automation.md +832 -0
- package/plugins/openhands/skills/openhands-automation/references/security.md +84 -0
- package/plugins/openhands/skills/openhands-automation/references/windows.md +57 -0
- package/plugins/openhands/skills/openhands-sdk/.claude-plugin/plugin.json +20 -0
- package/plugins/openhands/skills/openhands-sdk/.codex-plugin/plugin.json +20 -0
- package/plugins/openhands/skills/openhands-sdk/.plugin/plugin.json +20 -0
- package/plugins/openhands/skills/openhands-sdk/README.md +22 -0
- package/plugins/openhands/skills/openhands-sdk/SKILL.md +245 -0
- package/plugins/openhands/skills/openhands-sdk/commands/sdk.md +8 -0
- package/plugins/pr-review/.claude-plugin/plugin.json +13 -0
- package/plugins/pr-review/.codex-plugin/plugin.json +13 -0
- package/plugins/pr-review/skills/code-review/.claude-plugin/plugin.json +19 -0
- package/plugins/pr-review/skills/code-review/.codex-plugin/plugin.json +19 -0
- package/plugins/pr-review/skills/code-review/.plugin/plugin.json +19 -0
- package/plugins/pr-review/skills/code-review/README.md +18 -0
- package/plugins/pr-review/skills/code-review/SKILL.md +209 -0
- package/plugins/pr-review/skills/code-review/commands/codereview-roasted.md +8 -0
- package/plugins/pr-review/skills/code-review/commands/codereview.md +8 -0
- package/plugins/pr-review/skills/code-review/references/risk-evaluation.md +41 -0
- package/plugins/pr-review/skills/code-review/references/supply-chain-security.md +31 -0
- package/plugins/pr-review/skills/github-pr-review/.claude-plugin/plugin.json +18 -0
- package/plugins/pr-review/skills/github-pr-review/.codex-plugin/plugin.json +18 -0
- package/plugins/pr-review/skills/github-pr-review/.plugin/plugin.json +18 -0
- package/plugins/pr-review/skills/github-pr-review/README.md +145 -0
- package/plugins/pr-review/skills/github-pr-review/SKILL.md +187 -0
- package/plugins/pr-review/skills/github-pr-review/commands/github-pr-review.md +8 -0
- package/plugins/pr-review/skills/github-pr-review/references/windows.md +47 -0
- package/plugins/qa-changes/.claude-plugin/plugin.json +11 -0
- package/plugins/qa-changes/.codex-plugin/plugin.json +11 -0
- package/plugins/qa-changes/skills/github-pr-review/.claude-plugin/plugin.json +18 -0
- package/plugins/qa-changes/skills/github-pr-review/.codex-plugin/plugin.json +18 -0
- package/plugins/qa-changes/skills/github-pr-review/.plugin/plugin.json +18 -0
- package/plugins/qa-changes/skills/github-pr-review/README.md +145 -0
- package/plugins/qa-changes/skills/github-pr-review/SKILL.md +187 -0
- package/plugins/qa-changes/skills/github-pr-review/commands/github-pr-review.md +8 -0
- package/plugins/qa-changes/skills/github-pr-review/references/windows.md +47 -0
- package/plugins/qa-changes/skills/qa-changes/README.md +18 -0
- package/plugins/qa-changes/skills/qa-changes/SKILL.md +229 -0
- package/plugins/qa-changes/skills/qa-changes/commands/qa-changes.md +8 -0
- package/plugins/release-notes/.claude-plugin/plugin.json +19 -0
- package/plugins/release-notes/.codex-plugin/plugin.json +19 -0
- package/plugins/release-notes/skills/release-notes/README.md +24 -0
- package/plugins/release-notes/skills/release-notes/SKILL.md +19 -0
- package/plugins/release-notes/skills/release-notes/commands/release-notes.md +8 -0
- package/plugins/vulnerability-remediation/.claude-plugin/plugin.json +19 -0
- package/plugins/vulnerability-remediation/.codex-plugin/plugin.json +19 -0
- package/plugins/vulnerability-remediation/skills/github/.claude-plugin/plugin.json +19 -0
- package/plugins/vulnerability-remediation/skills/github/.codex-plugin/plugin.json +19 -0
- package/plugins/vulnerability-remediation/skills/github/.plugin/plugin.json +19 -0
- package/plugins/vulnerability-remediation/skills/github/README.md +42 -0
- package/plugins/vulnerability-remediation/skills/github/SKILL.md +107 -0
- package/plugins/vulnerability-remediation/skills/github/references/windows.md +48 -0
- package/plugins/vulnerability-remediation/skills/github/scripts/agent_conversation.py +150 -0
- package/plugins/vulnerability-remediation/skills/github/scripts/github_client.py +230 -0
- package/plugins/vulnerability-remediation/skills/security/.claude-plugin/plugin.json +18 -0
- package/plugins/vulnerability-remediation/skills/security/.codex-plugin/plugin.json +18 -0
- package/plugins/vulnerability-remediation/skills/security/.plugin/plugin.json +18 -0
- package/plugins/vulnerability-remediation/skills/security/README.md +38 -0
- package/plugins/vulnerability-remediation/skills/security/SKILL.md +33 -0
- package/pyproject.toml +1 -1
- package/python/openhands_extensions/_version.py +1 -1
- package/skills/add-javadoc/.claude-plugin/plugin.json +18 -0
- package/skills/add-javadoc/.codex-plugin/plugin.json +18 -0
- package/skills/add-skill/.claude-plugin/plugin.json +18 -0
- package/skills/add-skill/.codex-plugin/plugin.json +18 -0
- package/skills/agent-canvas-environment/.claude-plugin/plugin.json +19 -0
- package/skills/agent-canvas-environment/.codex-plugin/plugin.json +19 -0
- package/skills/agent-creator/.claude-plugin/plugin.json +20 -0
- package/skills/agent-creator/.codex-plugin/plugin.json +20 -0
- package/skills/agent-memory/.claude-plugin/plugin.json +18 -0
- package/skills/agent-memory/.codex-plugin/plugin.json +18 -0
- package/skills/agent-sdk-builder/.claude-plugin/plugin.json +18 -0
- package/skills/agent-sdk-builder/.codex-plugin/plugin.json +18 -0
- package/skills/azure-devops/.claude-plugin/plugin.json +18 -0
- package/skills/azure-devops/.codex-plugin/plugin.json +18 -0
- package/skills/bitbucket/.claude-plugin/plugin.json +17 -0
- package/skills/bitbucket/.codex-plugin/plugin.json +17 -0
- package/skills/bitbucket-cloud/.claude-plugin/plugin.json +18 -0
- package/skills/bitbucket-cloud/.codex-plugin/plugin.json +18 -0
- package/skills/bitbucket-data-center/.claude-plugin/plugin.json +19 -0
- package/skills/bitbucket-data-center/.codex-plugin/plugin.json +19 -0
- package/skills/code-review/.claude-plugin/plugin.json +19 -0
- package/skills/code-review/.codex-plugin/plugin.json +19 -0
- package/skills/code-simplifier/.claude-plugin/plugin.json +21 -0
- package/skills/code-simplifier/.codex-plugin/plugin.json +21 -0
- package/skills/datadog/.claude-plugin/plugin.json +19 -0
- package/skills/datadog/.codex-plugin/plugin.json +19 -0
- package/skills/deno/.claude-plugin/plugin.json +18 -0
- package/skills/deno/.codex-plugin/plugin.json +18 -0
- package/skills/discord/.claude-plugin/plugin.json +18 -0
- package/skills/discord/.codex-plugin/plugin.json +18 -0
- package/skills/docker/.claude-plugin/plugin.json +17 -0
- package/skills/docker/.codex-plugin/plugin.json +17 -0
- package/skills/evidence-based-citations/.claude-plugin/plugin.json +20 -0
- package/skills/evidence-based-citations/.codex-plugin/plugin.json +20 -0
- package/skills/flarglebargle/.claude-plugin/plugin.json +16 -0
- package/skills/flarglebargle/.codex-plugin/plugin.json +16 -0
- package/skills/frontend-design/.claude-plugin/plugin.json +21 -0
- package/skills/frontend-design/.codex-plugin/plugin.json +21 -0
- package/skills/github/.claude-plugin/plugin.json +19 -0
- package/skills/github/.codex-plugin/plugin.json +19 -0
- package/skills/github/scripts/agent_conversation.py +150 -0
- package/skills/github/scripts/github_client.py +31 -5
- package/skills/github-actions/.claude-plugin/plugin.json +19 -0
- package/skills/github-actions/.codex-plugin/plugin.json +19 -0
- package/skills/github-agents-md-maintainer/.claude-plugin/plugin.json +19 -0
- package/skills/github-agents-md-maintainer/.codex-plugin/plugin.json +19 -0
- package/skills/github-agents-md-maintainer/scripts/github_client.py +230 -0
- package/skills/github-delivery-watchdog/.claude-plugin/plugin.json +9 -0
- package/skills/github-delivery-watchdog/.codex-plugin/plugin.json +9 -0
- package/skills/github-delivery-watchdog/.plugin/plugin.json +9 -0
- package/skills/github-delivery-watchdog/README.md +10 -0
- package/skills/github-delivery-watchdog/SKILL.md +35 -0
- package/skills/github-delivery-watchdog/commands/github-delivery-watchdog.md +8 -0
- package/skills/github-delivery-watchdog/scripts/github_client.py +230 -0
- package/skills/github-delivery-watchdog/scripts/worker.py +96 -0
- package/skills/github-issue-to-pr/.claude-plugin/plugin.json +19 -0
- package/skills/github-issue-to-pr/.codex-plugin/plugin.json +19 -0
- package/skills/github-issue-to-pr/SKILL.md +7 -0
- package/skills/github-issue-to-pr/scripts/agent_conversation.py +150 -0
- package/skills/github-issue-to-pr/scripts/github_client.py +230 -0
- package/skills/github-issue-to-pr/scripts/main.py +16 -10
- package/skills/github-issue-to-pr/scripts/worker.py +172 -0
- package/skills/github-issue-triage/.claude-plugin/plugin.json +9 -0
- package/skills/github-issue-triage/.codex-plugin/plugin.json +9 -0
- package/skills/github-issue-triage/SKILL.md +15 -18
- package/skills/github-issue-triage/scripts/agent_conversation.py +150 -0
- package/skills/github-issue-triage/scripts/github_client.py +230 -0
- package/skills/github-issue-triage/scripts/worker.py +81 -98
- package/skills/github-pr-review/.claude-plugin/plugin.json +18 -0
- package/skills/github-pr-review/.codex-plugin/plugin.json +18 -0
- package/skills/github-pr-reviewer/.claude-plugin/plugin.json +20 -0
- package/skills/github-pr-reviewer/.codex-plugin/plugin.json +20 -0
- package/skills/github-pr-reviewer/SKILL.md +7 -0
- package/skills/github-pr-reviewer/scripts/agent_conversation.py +150 -0
- package/skills/github-pr-reviewer/scripts/github_client.py +230 -0
- package/skills/github-pr-reviewer/scripts/main.py +20 -8
- package/skills/github-pr-reviewer/scripts/worker.py +94 -0
- package/skills/github-repo-monitor/.claude-plugin/plugin.json +22 -0
- package/skills/github-repo-monitor/.codex-plugin/plugin.json +22 -0
- package/skills/github-repo-monitor/scripts/github_client.py +230 -0
- package/skills/gitlab/.claude-plugin/plugin.json +17 -0
- package/skills/gitlab/.codex-plugin/plugin.json +17 -0
- package/skills/gitlab-issue-to-mr/.claude-plugin/plugin.json +19 -0
- package/skills/gitlab-issue-to-mr/.codex-plugin/plugin.json +19 -0
- package/skills/incident-retrospective/.claude-plugin/plugin.json +21 -0
- package/skills/incident-retrospective/.codex-plugin/plugin.json +21 -0
- package/skills/index.js +12 -3
- package/skills/iterate/.claude-plugin/plugin.json +13 -0
- package/skills/iterate/.codex-plugin/plugin.json +13 -0
- package/skills/jira-issue-to-pr/.claude-plugin/plugin.json +19 -0
- package/skills/jira-issue-to-pr/.codex-plugin/plugin.json +19 -0
- package/skills/jupyter/.claude-plugin/plugin.json +18 -0
- package/skills/jupyter/.codex-plugin/plugin.json +18 -0
- package/skills/kubernetes/.claude-plugin/plugin.json +18 -0
- package/skills/kubernetes/.codex-plugin/plugin.json +18 -0
- package/skills/learn-from-code-review/.claude-plugin/plugin.json +19 -0
- package/skills/learn-from-code-review/.codex-plugin/plugin.json +19 -0
- package/skills/linear/.claude-plugin/plugin.json +19 -0
- package/skills/linear/.codex-plugin/plugin.json +19 -0
- package/skills/linear-triage/.claude-plugin/plugin.json +21 -0
- package/skills/linear-triage/.codex-plugin/plugin.json +21 -0
- package/skills/news-digest/.claude-plugin/plugin.json +19 -0
- package/skills/news-digest/.codex-plugin/plugin.json +19 -0
- package/skills/notion/.claude-plugin/plugin.json +17 -0
- package/skills/notion/.codex-plugin/plugin.json +17 -0
- package/skills/npm/.claude-plugin/plugin.json +17 -0
- package/skills/npm/.codex-plugin/plugin.json +17 -0
- package/skills/openhands-api/.claude-plugin/plugin.json +22 -0
- package/skills/openhands-api/.codex-plugin/plugin.json +22 -0
- package/skills/openhands-automation/.claude-plugin/plugin.json +19 -0
- package/skills/openhands-automation/.codex-plugin/plugin.json +19 -0
- package/skills/openhands-enterprise-troubleshooting/.claude-plugin/plugin.json +20 -0
- package/skills/openhands-enterprise-troubleshooting/.codex-plugin/plugin.json +20 -0
- package/skills/openhands-sdk/.claude-plugin/plugin.json +20 -0
- package/skills/openhands-sdk/.codex-plugin/plugin.json +20 -0
- package/skills/pdflatex/.claude-plugin/plugin.json +18 -0
- package/skills/pdflatex/.codex-plugin/plugin.json +18 -0
- package/skills/plain-english-content/.claude-plugin/plugin.json +15 -0
- package/skills/plain-english-content/.codex-plugin/plugin.json +15 -0
- package/skills/prd/.claude-plugin/plugin.json +19 -0
- package/skills/prd/.codex-plugin/plugin.json +19 -0
- package/skills/research-brief/.claude-plugin/plugin.json +20 -0
- package/skills/research-brief/.codex-plugin/plugin.json +20 -0
- package/skills/security/.claude-plugin/plugin.json +18 -0
- package/skills/security/.codex-plugin/plugin.json +18 -0
- package/skills/skill-creator/.claude-plugin/plugin.json +17 -0
- package/skills/skill-creator/.codex-plugin/plugin.json +17 -0
- package/skills/slack-channel-monitor/.claude-plugin/plugin.json +21 -0
- package/skills/slack-channel-monitor/.codex-plugin/plugin.json +21 -0
- package/skills/slack-standup-digest/.claude-plugin/plugin.json +21 -0
- package/skills/slack-standup-digest/.codex-plugin/plugin.json +21 -0
- package/skills/spark-version-upgrade/.claude-plugin/plugin.json +20 -0
- package/skills/spark-version-upgrade/.codex-plugin/plugin.json +20 -0
- package/skills/ssh/.claude-plugin/plugin.json +18 -0
- package/skills/ssh/.codex-plugin/plugin.json +18 -0
- package/skills/swift-linux/.claude-plugin/plugin.json +17 -0
- package/skills/swift-linux/.codex-plugin/plugin.json +17 -0
- package/skills/technical-writing/.claude-plugin/plugin.json +15 -0
- package/skills/technical-writing/.codex-plugin/plugin.json +15 -0
- package/skills/theme-factory/.claude-plugin/plugin.json +19 -0
- package/skills/theme-factory/.codex-plugin/plugin.json +19 -0
- package/skills/ticket-to-code-change/.claude-plugin/plugin.json +21 -0
- package/skills/ticket-to-code-change/.codex-plugin/plugin.json +21 -0
- package/skills/upstream-fork-sync/.claude-plugin/plugin.json +21 -0
- package/skills/upstream-fork-sync/.codex-plugin/plugin.json +21 -0
- package/skills/uv/.claude-plugin/plugin.json +18 -0
- package/skills/uv/.codex-plugin/plugin.json +18 -0
- package/skills/vercel/.claude-plugin/plugin.json +18 -0
- package/skills/vercel/.codex-plugin/plugin.json +18 -0
- package/tests/fixtures/automations/capabilities.json +6 -3
- package/tests/fixtures/automations/github-pr-reviewer.json +64 -43
- package/tests/github_automation_helpers.py +7 -1
- package/tests/test_agent_conversation_dispatch.py +196 -0
- package/tests/test_automation_setup.py +3 -3
- package/tests/test_github_developer_delivery.py +150 -0
- package/tests/test_github_reviewer_delivery.py +110 -0
- package/tests/test_github_triage_delivery.py +78 -41
- package/tests/test_github_watchdog_delivery.py +233 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "github-delivery-watchdog",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"name": "GitHub delivery watchdog",
|
|
5
|
+
"category": "Project management",
|
|
6
|
+
"description": "Periodically check pull requests and merge only current heads with independent review, tests, and passing CI.",
|
|
7
|
+
"requires": {
|
|
8
|
+
"integrations": {},
|
|
9
|
+
"features": [
|
|
10
|
+
"customTarball"
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
"estimatedSetupMinutes": 3,
|
|
14
|
+
"exampleImplementation": "Run a deterministic scheduled scanner using its configured GitHub credential. It creates no agent or conversation. For each managed PR, it rechecks the exact head, independent review and test statuses, GitHub Actions, base freshness, and mergeability before issuing a SHA-pinned squash merge.",
|
|
15
|
+
"setup": {
|
|
16
|
+
"version": "1.0",
|
|
17
|
+
"mode": "direct",
|
|
18
|
+
"form": {
|
|
19
|
+
"triggers": {
|
|
20
|
+
"cron": {
|
|
21
|
+
"schedule": {
|
|
22
|
+
"type": "cron",
|
|
23
|
+
"label": "Check frequency",
|
|
24
|
+
"help": "How often to check repository progress.",
|
|
25
|
+
"default": "*/5 * * * *",
|
|
26
|
+
"required": true
|
|
27
|
+
},
|
|
28
|
+
"timezone": {
|
|
29
|
+
"type": "timezone",
|
|
30
|
+
"label": "Timezone",
|
|
31
|
+
"help": "Timezone for the schedule.",
|
|
32
|
+
"default": "UTC",
|
|
33
|
+
"required": true
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"args": {
|
|
38
|
+
"repositories": {
|
|
39
|
+
"type": "repo-picker",
|
|
40
|
+
"provider": "github",
|
|
41
|
+
"multiple": true,
|
|
42
|
+
"label": "Repositories",
|
|
43
|
+
"help": "Repositories this automation may work on.",
|
|
44
|
+
"required": true
|
|
45
|
+
},
|
|
46
|
+
"githubTokenSecret": {
|
|
47
|
+
"type": "text",
|
|
48
|
+
"label": "GitHub token secret",
|
|
49
|
+
"help": "Name of a saved Agent Server secret. Enter its name, not its value.",
|
|
50
|
+
"default": "GITHUB_PERSONAL_ACCESS_TOKEN",
|
|
51
|
+
"required": true
|
|
52
|
+
},
|
|
53
|
+
"branchPrefix": {
|
|
54
|
+
"type": "text",
|
|
55
|
+
"label": "Delivery branch prefix",
|
|
56
|
+
"help": "Only merge branches with this prefix and an issue number. Match the developer and reviewer settings.",
|
|
57
|
+
"default": "openhands/issue",
|
|
58
|
+
"required": true
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"bundle": {
|
|
63
|
+
"version": "1.0.0",
|
|
64
|
+
"entrypoint": "python3 worker.py",
|
|
65
|
+
"timeout": 300,
|
|
66
|
+
"files": {
|
|
67
|
+
"worker.py": "skills/github-delivery-watchdog/scripts/worker.py",
|
|
68
|
+
"github_client.py": "skills/github/scripts/github_client.py"
|
|
69
|
+
},
|
|
70
|
+
"config": {
|
|
71
|
+
"repos": "{{form.repositories}}",
|
|
72
|
+
"github_token_secret": "{{form.githubTokenSecret}}",
|
|
73
|
+
"branch_prefix": "{{form.branchPrefix}}"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"message": "Configure the repositories, credential name, delivery branch prefix, and schedule."
|
|
77
|
+
},
|
|
78
|
+
"popularityRank": 80
|
|
79
|
+
}
|
|
@@ -2,20 +2,17 @@
|
|
|
2
2
|
"id": "github-issue-to-pr",
|
|
3
3
|
"name": "GitHub issue to PR",
|
|
4
4
|
"category": "Software development",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Implement ready GitHub issues, address pull request feedback, and publish tested changes for review.",
|
|
6
6
|
"requires": {
|
|
7
|
-
"integrations": {
|
|
8
|
-
"github": {
|
|
9
|
-
"message": "Used to read labelled issues, push the branch, and open the pull request."
|
|
10
|
-
}
|
|
11
|
-
},
|
|
7
|
+
"integrations": {},
|
|
12
8
|
"features": [
|
|
13
|
-
"customTarball"
|
|
9
|
+
"customTarball",
|
|
10
|
+
"agentProfiles"
|
|
14
11
|
]
|
|
15
12
|
},
|
|
16
13
|
"popularityRank": 95,
|
|
17
14
|
"estimatedSetupMinutes": 4,
|
|
18
|
-
"exampleImplementation": "
|
|
15
|
+
"exampleImplementation": "A scheduled scanner selects every ready issue and each pull request whose exact head failed review. It submits one idempotent subject turn for each item. The profile-backed agent then clones the repository in its own runtime, implements or revises the change, tests it, pushes it, and requests independent review.",
|
|
19
16
|
"impact": {
|
|
20
17
|
"basis": "completed-runs",
|
|
21
18
|
"one": "1 issue sweep completed",
|
|
@@ -90,24 +87,35 @@
|
|
|
90
87
|
"label": "Ready for review"
|
|
91
88
|
}
|
|
92
89
|
]
|
|
90
|
+
},
|
|
91
|
+
"githubTokenSecret": {
|
|
92
|
+
"type": "text",
|
|
93
|
+
"label": "GitHub token secret",
|
|
94
|
+
"help": "Name of a saved Agent Server secret. Include it in the selected profile so the delegated agent can use GitHub.",
|
|
95
|
+
"default": "GITHUB_PERSONAL_ACCESS_TOKEN",
|
|
96
|
+
"required": true
|
|
93
97
|
}
|
|
94
98
|
}
|
|
95
99
|
},
|
|
96
100
|
"bundle": {
|
|
97
|
-
"version": "1.
|
|
98
|
-
"entrypoint": "python3
|
|
99
|
-
"timeout":
|
|
101
|
+
"version": "1.2.1",
|
|
102
|
+
"entrypoint": "python3 worker.py",
|
|
103
|
+
"timeout": 300,
|
|
100
104
|
"files": {
|
|
101
105
|
"main.py": "skills/github-issue-to-pr/scripts/main.py",
|
|
102
|
-
"
|
|
106
|
+
"agent_conversation.py": "skills/github/scripts/agent_conversation.py",
|
|
107
|
+
"github_client.py": "skills/github/scripts/github_client.py",
|
|
108
|
+
"worker.py": "skills/github-issue-to-pr/scripts/worker.py"
|
|
103
109
|
},
|
|
104
110
|
"config": {
|
|
105
111
|
"repos": "{{form.repositories}}",
|
|
106
112
|
"trigger_label": "{{form.triggerLabel}}",
|
|
107
113
|
"branch_prefix": "{{form.branchPrefix}}",
|
|
108
|
-
"pull_request_mode": "{{form.pullRequestMode}}"
|
|
114
|
+
"pull_request_mode": "{{form.pullRequestMode}}",
|
|
115
|
+
"github_token_secret": "{{form.githubTokenSecret}}"
|
|
109
116
|
}
|
|
110
117
|
},
|
|
111
|
-
"message": "
|
|
112
|
-
}
|
|
118
|
+
"message": "Configure the repositories, labels, branch prefix, pull request mode, agent profile, and schedule."
|
|
119
|
+
},
|
|
120
|
+
"version": "1.2.1"
|
|
113
121
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "github-issue-triage",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"name": "GitHub issue triage",
|
|
5
5
|
"category": "Project management",
|
|
6
6
|
"description": "Prioritize open issues and establish acceptance criteria before marking them ready for development.",
|
|
@@ -54,11 +54,12 @@
|
|
|
54
54
|
}
|
|
55
55
|
},
|
|
56
56
|
"bundle": {
|
|
57
|
-
"version": "1.
|
|
57
|
+
"version": "1.1.1",
|
|
58
58
|
"entrypoint": "python3 worker.py",
|
|
59
|
-
"timeout":
|
|
59
|
+
"timeout": 300,
|
|
60
60
|
"files": {
|
|
61
61
|
"worker.py": "skills/github-issue-triage/scripts/worker.py",
|
|
62
|
+
"agent_conversation.py": "skills/github/scripts/agent_conversation.py",
|
|
62
63
|
"github_client.py": "skills/github/scripts/github_client.py"
|
|
63
64
|
},
|
|
64
65
|
"config": {
|
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "github-pr-reviewer",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"name": "GitHub code review",
|
|
5
5
|
"category": "Code review",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Review labeled pull-request heads, publish readable findings, and record exact-head test and review decisions.",
|
|
7
7
|
"requires": {
|
|
8
|
-
"integrations": {
|
|
9
|
-
"github": {
|
|
10
|
-
"message": "Used to read pull requests and post review comments."
|
|
11
|
-
}
|
|
12
|
-
},
|
|
8
|
+
"integrations": {},
|
|
13
9
|
"features": [
|
|
14
|
-
"customTarball"
|
|
10
|
+
"customTarball",
|
|
11
|
+
"agentProfiles"
|
|
15
12
|
]
|
|
16
13
|
},
|
|
17
14
|
"popularityRank": 100,
|
|
18
15
|
"estimatedSetupMinutes": 4,
|
|
19
|
-
"exampleImplementation": "
|
|
16
|
+
"exampleImplementation": "A scheduled scanner selects every labeled PR head and submits an idempotent subject turn. The profile-backed agent clones that exact head in its runtime, reuses the established review workflow, runs appropriate tests, publishes a readable native review, and records exact-head review and test statuses.",
|
|
20
17
|
"impact": {
|
|
21
18
|
"basis": "completed-runs",
|
|
22
19
|
"one": "1 PR review sweep completed",
|
|
@@ -84,23 +81,33 @@
|
|
|
84
81
|
"label": "Friendly"
|
|
85
82
|
}
|
|
86
83
|
]
|
|
84
|
+
},
|
|
85
|
+
"githubTokenSecret": {
|
|
86
|
+
"type": "text",
|
|
87
|
+
"label": "GitHub token secret",
|
|
88
|
+
"help": "Name of a saved Agent Server secret. Include it in the selected profile so the delegated agent can use GitHub.",
|
|
89
|
+
"default": "GITHUB_PERSONAL_ACCESS_TOKEN",
|
|
90
|
+
"required": true
|
|
87
91
|
}
|
|
88
92
|
}
|
|
89
93
|
},
|
|
90
94
|
"bundle": {
|
|
91
|
-
"version": "1.
|
|
92
|
-
"entrypoint": "python3
|
|
93
|
-
"timeout":
|
|
95
|
+
"version": "1.1.1",
|
|
96
|
+
"entrypoint": "python3 worker.py",
|
|
97
|
+
"timeout": 300,
|
|
94
98
|
"files": {
|
|
95
99
|
"main.py": "skills/github-pr-reviewer/scripts/main.py",
|
|
96
|
-
"
|
|
100
|
+
"agent_conversation.py": "skills/github/scripts/agent_conversation.py",
|
|
101
|
+
"github_client.py": "skills/github/scripts/github_client.py",
|
|
102
|
+
"worker.py": "skills/github-pr-reviewer/scripts/worker.py"
|
|
97
103
|
},
|
|
98
104
|
"config": {
|
|
99
105
|
"repos": "{{form.repositories}}",
|
|
100
106
|
"trigger_label": "{{form.triggerLabel}}",
|
|
101
|
-
"review_tone": "{{form.reviewTone}}"
|
|
107
|
+
"review_tone": "{{form.reviewTone}}",
|
|
108
|
+
"github_token_secret": "{{form.githubTokenSecret}}"
|
|
102
109
|
}
|
|
103
110
|
},
|
|
104
|
-
"message": "
|
|
111
|
+
"message": "Configure the repositories, review label, tone, credential name, agent profile, and schedule."
|
|
105
112
|
}
|
|
106
113
|
}
|
|
@@ -19,10 +19,11 @@ import entry13 from "./catalog/jira-issue-to-gitlab-mr/manifest.json" with { typ
|
|
|
19
19
|
import entry14 from "./catalog/research-brief-writer/manifest.json" with { type: "json" };
|
|
20
20
|
import entry15 from "./catalog/jira-issue-to-bitbucket-pr/manifest.json" with { type: "json" };
|
|
21
21
|
import entry16 from "./catalog/github-agents-md-maintainer/manifest.json" with { type: "json" };
|
|
22
|
-
import entry17 from "./catalog/github-
|
|
23
|
-
import entry18 from "./catalog/
|
|
24
|
-
import entry19 from "./catalog/
|
|
25
|
-
import entry20 from "./catalog/
|
|
22
|
+
import entry17 from "./catalog/github-delivery-watchdog/manifest.json" with { type: "json" };
|
|
23
|
+
import entry18 from "./catalog/github-issue-triage/manifest.json" with { type: "json" };
|
|
24
|
+
import entry19 from "./catalog/upstream-fork-sync/manifest.json" with { type: "json" };
|
|
25
|
+
import entry20 from "./catalog/incident-retrospective-drafter/manifest.json" with { type: "json" };
|
|
26
|
+
import entry21 from "./catalog/news-digest/manifest.json" with { type: "json" };
|
|
26
27
|
|
|
27
28
|
export const AUTOMATION_CATALOG_ENTRIES = [
|
|
28
29
|
entry0,
|
|
@@ -46,4 +47,5 @@ export const AUTOMATION_CATALOG_ENTRIES = [
|
|
|
46
47
|
entry18,
|
|
47
48
|
entry19,
|
|
48
49
|
entry20,
|
|
50
|
+
entry21,
|
|
49
51
|
];
|
|
@@ -870,6 +870,12 @@
|
|
|
870
870
|
"source": "./skills/github-issue-triage",
|
|
871
871
|
"description": "Prioritize open issues and establish acceptance criteria before marking them ready for development.",
|
|
872
872
|
"category": "automations"
|
|
873
|
+
},
|
|
874
|
+
{
|
|
875
|
+
"name": "github-delivery-watchdog",
|
|
876
|
+
"source": "./skills/github-delivery-watchdog",
|
|
877
|
+
"description": "Periodically check pull requests and merge only current heads with independent review, tests, and passing CI.",
|
|
878
|
+
"category": "automations"
|
|
873
879
|
}
|
|
874
880
|
]
|
|
875
881
|
}
|
package/package.json
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "city-weather",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Get current weather, time, and precipitation forecast for any city",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "JP Shackelford",
|
|
7
|
+
"email": "jpshackelford@users.noreply.github.com"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/jpshackelford/openhands-sample-plugins",
|
|
10
|
+
"repository": "https://github.com/jpshackelford/openhands-sample-plugins",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": ["weather", "time", "forecast", "temperature", "precipitation"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "city-weather",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Get current weather, time, and precipitation forecast for any city",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "JP Shackelford",
|
|
7
|
+
"email": "jpshackelford@users.noreply.github.com"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/jpshackelford/openhands-sample-plugins",
|
|
10
|
+
"repository": "https://github.com/jpshackelford/openhands-sample-plugins",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": ["weather", "time", "forecast", "temperature", "precipitation"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cobol-modernization",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "End-to-end COBOL to Java migration workflow. Handles build setup, mainframe dependency removal, and code migration with test validation.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "OpenHands",
|
|
7
|
+
"email": "contact@all-hands.dev"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/OpenHands/extensions",
|
|
10
|
+
"repository": "https://github.com/OpenHands/extensions",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"cobol",
|
|
14
|
+
"java",
|
|
15
|
+
"migration",
|
|
16
|
+
"mainframe",
|
|
17
|
+
"modernization"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cobol-modernization",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "End-to-end COBOL to Java migration workflow. Handles build setup, mainframe dependency removal, and code migration with test validation.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "OpenHands",
|
|
7
|
+
"email": "contact@all-hands.dev"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/OpenHands/extensions",
|
|
10
|
+
"repository": "https://github.com/OpenHands/extensions",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"cobol",
|
|
14
|
+
"java",
|
|
15
|
+
"migration",
|
|
16
|
+
"mainframe",
|
|
17
|
+
"modernization"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "issue-duplicate-checker",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Detect duplicate GitHub issues with OpenHands Cloud and manage duplicate-candidate lifecycle automation.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "OpenHands",
|
|
7
|
+
"email": "contact@all-hands.dev"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/OpenHands/extensions",
|
|
10
|
+
"repository": "https://github.com/OpenHands/extensions",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": ["issues", "duplicates", "github", "automation"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "issue-duplicate-checker",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Detect duplicate GitHub issues with OpenHands Cloud and manage duplicate-candidate lifecycle automation.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "OpenHands",
|
|
7
|
+
"email": "contact@all-hands.dev"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/OpenHands/extensions",
|
|
10
|
+
"repository": "https://github.com/OpenHands/extensions",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": ["issues", "duplicates", "github", "automation"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "magic-test",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "A simple test plugin with a magic word skill for verifying plugin loading",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "OpenHands Test",
|
|
7
|
+
"email": "test@openhands.dev"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/jpshackelford/openhands-sample-plugins",
|
|
10
|
+
"repository": "https://github.com/jpshackelford/openhands-sample-plugins",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": ["test", "magic", "plugin", "verification"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "magic-test",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "A simple test plugin with a magic word skill for verifying plugin loading",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "OpenHands Test",
|
|
7
|
+
"email": "test@openhands.dev"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/jpshackelford/openhands-sample-plugins",
|
|
10
|
+
"repository": "https://github.com/jpshackelford/openhands-sample-plugins",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": ["test", "magic", "plugin", "verification"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "migration-scoring",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Evaluate code migration quality with coverage, correctness, and style scoring. Generates executive reports with actionable recommendations.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "OpenHands",
|
|
7
|
+
"email": "contact@all-hands.dev"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/OpenHands/extensions",
|
|
10
|
+
"repository": "https://github.com/OpenHands/extensions",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"migration",
|
|
14
|
+
"scoring",
|
|
15
|
+
"quality",
|
|
16
|
+
"evaluation",
|
|
17
|
+
"reporting"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "migration-scoring",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Evaluate code migration quality with coverage, correctness, and style scoring. Generates executive reports with actionable recommendations.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "OpenHands",
|
|
7
|
+
"email": "contact@all-hands.dev"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/OpenHands/extensions",
|
|
10
|
+
"repository": "https://github.com/OpenHands/extensions",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"migration",
|
|
14
|
+
"scoring",
|
|
15
|
+
"quality",
|
|
16
|
+
"evaluation",
|
|
17
|
+
"reporting"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "onboarding",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Assess repository agent-readiness across five pillars, propose high-impact fixes, and generate repo-specific AGENTS.md files",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "OpenHands",
|
|
7
|
+
"email": "contact@all-hands.dev"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/OpenHands/extensions",
|
|
10
|
+
"repository": "https://github.com/OpenHands/extensions",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"onboarding",
|
|
14
|
+
"readiness",
|
|
15
|
+
"agents-md",
|
|
16
|
+
"agent-readiness",
|
|
17
|
+
"assessment",
|
|
18
|
+
"ai-readiness"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "onboarding",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Assess repository agent-readiness across five pillars, propose high-impact fixes, and generate repo-specific AGENTS.md files",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "OpenHands",
|
|
7
|
+
"email": "contact@all-hands.dev"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/OpenHands/extensions",
|
|
10
|
+
"repository": "https://github.com/OpenHands/extensions",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"onboarding",
|
|
14
|
+
"readiness",
|
|
15
|
+
"agents-md",
|
|
16
|
+
"agent-readiness",
|
|
17
|
+
"assessment",
|
|
18
|
+
"ai-readiness"
|
|
19
|
+
]
|
|
20
|
+
}
|