@fitlab-ai/agent-infra 0.5.3 → 0.5.5
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/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/lib/defaults.json +1 -0
- package/package.json +1 -1
- package/templates/.agents/rules/issue-pr-commands.github.en.md +35 -10
- package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +35 -10
- package/templates/.agents/rules/issue-sync.github.en.md +118 -28
- package/templates/.agents/rules/issue-sync.github.zh-CN.md +112 -22
- package/templates/.agents/rules/milestone-inference.github.en.md +13 -6
- package/templates/.agents/rules/milestone-inference.github.zh-CN.md +13 -6
- package/templates/.agents/rules/pr-sync.github.en.md +3 -1
- package/templates/.agents/rules/pr-sync.github.zh-CN.md +3 -1
- package/templates/.agents/scripts/platform-adapters/platform-sync.github.js +1118 -0
- package/templates/.agents/scripts/validate-artifact.js +51 -802
- package/templates/.agents/skills/analyze-task/SKILL.en.md +2 -2
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/analyze-task/config/verify.json +1 -1
- package/templates/.agents/skills/block-task/SKILL.en.md +2 -2
- package/templates/.agents/skills/block-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/block-task/config/verify.json +1 -1
- package/templates/.agents/skills/cancel-task/SKILL.en.md +6 -6
- package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +6 -6
- package/templates/.agents/skills/cancel-task/config/verify.json +1 -1
- package/templates/.agents/skills/commit/SKILL.en.md +14 -2
- package/templates/.agents/skills/commit/SKILL.zh-CN.md +14 -2
- package/templates/.agents/skills/commit/config/verify.json +2 -1
- package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +23 -0
- package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +23 -0
- package/templates/.agents/skills/complete-task/SKILL.en.md +2 -2
- package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/complete-task/config/verify.json +1 -1
- package/templates/.agents/skills/create-issue/SKILL.en.md +3 -1
- package/templates/.agents/skills/create-issue/SKILL.zh-CN.md +3 -1
- package/templates/.agents/skills/create-issue/config/verify.json +1 -1
- package/templates/.agents/skills/create-issue/reference/label-and-type.en.md +6 -1
- package/templates/.agents/skills/create-issue/reference/label-and-type.zh-CN.md +6 -1
- package/templates/.agents/skills/create-pr/SKILL.en.md +4 -4
- package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +4 -4
- package/templates/.agents/skills/create-pr/config/verify.json +3 -1
- package/templates/.agents/skills/create-pr/reference/pr-body-template.en.md +9 -6
- package/templates/.agents/skills/create-pr/reference/pr-body-template.zh-CN.md +9 -6
- package/templates/.agents/skills/create-release-note/SKILL.en.md +27 -2
- package/templates/.agents/skills/create-release-note/SKILL.zh-CN.md +27 -2
- package/templates/.agents/skills/create-task/config/verify.json +1 -1
- package/templates/.agents/skills/implement-task/SKILL.en.md +4 -4
- package/templates/.agents/skills/implement-task/SKILL.zh-CN.md +4 -4
- package/templates/.agents/skills/implement-task/config/verify.json +1 -2
- package/templates/.agents/skills/import-codescan/config/verify.json +1 -1
- package/templates/.agents/skills/import-dependabot/config/verify.json +1 -1
- package/templates/.agents/skills/import-issue/SKILL.en.md +1 -1
- package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/import-issue/config/verify.json +1 -1
- package/templates/.agents/skills/plan-task/SKILL.en.md +2 -2
- package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/plan-task/config/verify.json +1 -1
- package/templates/.agents/skills/refine-task/SKILL.en.md +2 -4
- package/templates/.agents/skills/refine-task/SKILL.zh-CN.md +2 -4
- package/templates/.agents/skills/refine-task/config/verify.json +1 -2
- package/templates/.agents/skills/refine-title/SKILL.en.md +5 -1
- package/templates/.agents/skills/refine-title/SKILL.zh-CN.md +5 -1
- package/templates/.agents/skills/restore-task/config/verify.json +1 -1
- package/templates/.agents/skills/review-task/SKILL.en.md +2 -2
- package/templates/.agents/skills/review-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/review-task/config/verify.json +1 -1
- package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +2 -1
- package/templates/.github/scripts/sync-labels-to-set.sh +110 -0
- package/templates/.github/workflows/metadata-sync.yml +118 -0
- package/templates/.github/workflows/pr-label.yml +66 -0
- package/templates/.github/workflows/status-label.yml +20 -30
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
name: PR Label & Assignee
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request_target:
|
|
5
|
+
types: [opened, synchronize]
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: read
|
|
9
|
+
issues: write
|
|
10
|
+
pull-requests: write
|
|
11
|
+
|
|
12
|
+
concurrency:
|
|
13
|
+
group: pr-label-${{ github.event.pull_request.number }}
|
|
14
|
+
cancel-in-progress: true
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
label-and-assign:
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
steps:
|
|
20
|
+
- name: Checkout base branch
|
|
21
|
+
uses: actions/checkout@v4
|
|
22
|
+
|
|
23
|
+
- name: Sync in-labels
|
|
24
|
+
env:
|
|
25
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
26
|
+
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
27
|
+
run: |
|
|
28
|
+
changed_files=$(gh api "repos/$GITHUB_REPOSITORY/pulls/$PR_NUMBER/files" \
|
|
29
|
+
--paginate --jq '[.[].filename]')
|
|
30
|
+
|
|
31
|
+
should_labels=$(jq -rn \
|
|
32
|
+
--argjson files "$changed_files" \
|
|
33
|
+
--argjson mapping "$(jq '.labels.in // {}' .agents/.airc.json)" \
|
|
34
|
+
'$mapping
|
|
35
|
+
| to_entries
|
|
36
|
+
| map(select(.value | any(. as $prefix | $files | any(startswith($prefix)))))
|
|
37
|
+
| map("in: " + .key)
|
|
38
|
+
| .[]?')
|
|
39
|
+
|
|
40
|
+
set -- \
|
|
41
|
+
--repo "$GITHUB_REPOSITORY" \
|
|
42
|
+
--pr "$PR_NUMBER" \
|
|
43
|
+
--prefix "in: "
|
|
44
|
+
|
|
45
|
+
while IFS= read -r label; do
|
|
46
|
+
[ -z "$label" ] && continue
|
|
47
|
+
set -- "$@" --target "$label"
|
|
48
|
+
done <<EOF
|
|
49
|
+
$should_labels
|
|
50
|
+
EOF
|
|
51
|
+
|
|
52
|
+
.github/scripts/sync-labels-to-set.sh "$@"
|
|
53
|
+
|
|
54
|
+
- name: Assign PR creator if unassigned
|
|
55
|
+
env:
|
|
56
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
57
|
+
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
58
|
+
CREATOR: ${{ github.event.pull_request.user.login }}
|
|
59
|
+
ASSIGNEES_JSON: ${{ toJSON(github.event.pull_request.assignees) }}
|
|
60
|
+
run: |
|
|
61
|
+
count=$(printf '%s' "$ASSIGNEES_JSON" | jq 'length')
|
|
62
|
+
if [ "$count" -eq 0 ]; then
|
|
63
|
+
gh pr edit "$PR_NUMBER" \
|
|
64
|
+
--repo "$GITHUB_REPOSITORY" \
|
|
65
|
+
--add-assignee "$CREATOR" 2>/dev/null || true
|
|
66
|
+
fi
|
|
@@ -14,6 +14,16 @@ jobs:
|
|
|
14
14
|
manage-status-labels:
|
|
15
15
|
runs-on: ubuntu-latest
|
|
16
16
|
steps:
|
|
17
|
+
- name: Checkout shared scripts
|
|
18
|
+
if: >-
|
|
19
|
+
(github.event_name == 'issues' && github.event.action == 'closed' && github.event.issue.state_reason == 'completed') ||
|
|
20
|
+
(github.event_name == 'issues' && github.event.action == 'reopened') ||
|
|
21
|
+
(github.event_name == 'pull_request_target' && github.event.action == 'closed' && github.event.pull_request.merged == true)
|
|
22
|
+
uses: actions/checkout@v4
|
|
23
|
+
with:
|
|
24
|
+
sparse-checkout: .github/scripts
|
|
25
|
+
sparse-checkout-cone-mode: false
|
|
26
|
+
|
|
17
27
|
- name: Remove status labels on issue close
|
|
18
28
|
if: >-
|
|
19
29
|
github.event_name == 'issues' &&
|
|
@@ -23,16 +33,10 @@ jobs:
|
|
|
23
33
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
24
34
|
ISSUE_NUMBER: ${{ github.event.issue.number }}
|
|
25
35
|
run: |
|
|
26
|
-
|
|
36
|
+
.github/scripts/sync-labels-to-set.sh \
|
|
27
37
|
--repo "$GITHUB_REPOSITORY" \
|
|
28
|
-
--
|
|
29
|
-
|
|
30
|
-
| while IFS= read -r label; do
|
|
31
|
-
[ -z "$label" ] && continue
|
|
32
|
-
gh issue edit "$ISSUE_NUMBER" \
|
|
33
|
-
--repo "$GITHUB_REPOSITORY" \
|
|
34
|
-
--remove-label "$label"
|
|
35
|
-
done || true
|
|
38
|
+
--issue "$ISSUE_NUMBER" \
|
|
39
|
+
--prefix "status:"
|
|
36
40
|
|
|
37
41
|
- name: Add triage label on issue reopen
|
|
38
42
|
if: github.event_name == 'issues' && github.event.action == 'reopened'
|
|
@@ -40,19 +44,11 @@ jobs:
|
|
|
40
44
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
41
45
|
ISSUE_NUMBER: ${{ github.event.issue.number }}
|
|
42
46
|
run: |
|
|
43
|
-
|
|
44
|
-
--repo "$GITHUB_REPOSITORY" \
|
|
45
|
-
--json labels --jq '.labels[].name | select(startswith("status:"))' \
|
|
46
|
-
2>/dev/null \
|
|
47
|
-
| while IFS= read -r label; do
|
|
48
|
-
[ -z "$label" ] && continue
|
|
49
|
-
gh issue edit "$ISSUE_NUMBER" \
|
|
50
|
-
--repo "$GITHUB_REPOSITORY" \
|
|
51
|
-
--remove-label "$label"
|
|
52
|
-
done || true
|
|
53
|
-
gh issue edit "$ISSUE_NUMBER" \
|
|
47
|
+
.github/scripts/sync-labels-to-set.sh \
|
|
54
48
|
--repo "$GITHUB_REPOSITORY" \
|
|
55
|
-
--
|
|
49
|
+
--issue "$ISSUE_NUMBER" \
|
|
50
|
+
--prefix "status:" \
|
|
51
|
+
--target "status: waiting-for-triage"
|
|
56
52
|
|
|
57
53
|
- name: Clean status labels on PR merge
|
|
58
54
|
if: >-
|
|
@@ -71,15 +67,9 @@ jobs:
|
|
|
71
67
|
--repo "$GITHUB_REPOSITORY" \
|
|
72
68
|
--json state --jq '.state')
|
|
73
69
|
if [ "$state" = "CLOSED" ]; then
|
|
74
|
-
|
|
70
|
+
.github/scripts/sync-labels-to-set.sh \
|
|
75
71
|
--repo "$GITHUB_REPOSITORY" \
|
|
76
|
-
--
|
|
77
|
-
|
|
78
|
-
| while IFS= read -r label; do
|
|
79
|
-
[ -z "$label" ] && continue
|
|
80
|
-
gh issue edit "$issue_number" \
|
|
81
|
-
--repo "$GITHUB_REPOSITORY" \
|
|
82
|
-
--remove-label "$label"
|
|
83
|
-
done || true
|
|
72
|
+
--issue "$issue_number" \
|
|
73
|
+
--prefix "status:"
|
|
84
74
|
fi
|
|
85
75
|
done
|