feat(skills): Close Gitea issues when beads are reconciled
Some checks failed
CI / check (push) Has been cancelled
Some checks failed
CI / check (push) Has been cancelled
This commit was merged in pull request #28.
This commit is contained in:
@@ -4,12 +4,13 @@ description: Reconcile beads with merged PRs and close completed beads
|
|||||||
|
|
||||||
# Reconcile Beads Workflow
|
# Reconcile Beads Workflow
|
||||||
|
|
||||||
This skill reconciles beads that are in `in_review` status with their corresponding PRs. If a PR has been merged, the bead is closed.
|
This skill reconciles beads that are in `in_review` status with their corresponding PRs. If a PR has been merged, the bead is closed and any linked Gitea issue is also closed.
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
- Custom status `in_review` must be configured: `bd config set status.custom "in_review"`
|
- Custom status `in_review` must be configured: `bd config set status.custom "in_review"`
|
||||||
- Beads in `in_review` status should have a PR URL in their notes
|
- Beads in `in_review` status should have a PR URL in their notes
|
||||||
|
- `tea` CLI must be configured for closing Gitea issues
|
||||||
|
|
||||||
## Workflow
|
## Workflow
|
||||||
|
|
||||||
@@ -52,6 +53,34 @@ If the PR is merged:
|
|||||||
bd close [BEAD_ID] --reason="PR merged: [PR_URL]"
|
bd close [BEAD_ID] --reason="PR merged: [PR_URL]"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Step 3.1: Close corresponding Gitea issue (if any)
|
||||||
|
|
||||||
|
After closing a bead, check if it has a linked Gitea issue:
|
||||||
|
|
||||||
|
1. **Check for Gitea issue URL in bead notes**:
|
||||||
|
Look for the pattern `Gitea issue: <URL>` in the notes. Extract the URL.
|
||||||
|
|
||||||
|
2. **Extract issue number from URL**:
|
||||||
|
```bash
|
||||||
|
# Example: https://git.johnogle.info/johno/nixos-configs/issues/16 -> 16
|
||||||
|
echo "$GITEA_URL" | grep -oP '/issues/\K\d+'
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Close the Gitea issue**:
|
||||||
|
```bash
|
||||||
|
tea issues close [ISSUE_NUMBER]
|
||||||
|
```
|
||||||
|
|
||||||
|
4. **Handle errors gracefully**:
|
||||||
|
- If issue is already closed: Log warning, continue
|
||||||
|
- If issue not found: Log warning, continue
|
||||||
|
- If `tea` fails: Log error, continue with other beads
|
||||||
|
|
||||||
|
Example warning output:
|
||||||
|
```
|
||||||
|
Warning: Could not close Gitea issue #16: issue already closed
|
||||||
|
```
|
||||||
|
|
||||||
### Step 4: Report summary
|
### Step 4: Report summary
|
||||||
|
|
||||||
Present results:
|
Present results:
|
||||||
@@ -60,10 +89,17 @@ Present results:
|
|||||||
## Beads Reconciliation Summary
|
## Beads Reconciliation Summary
|
||||||
|
|
||||||
### Closed (PR Merged)
|
### Closed (PR Merged)
|
||||||
| Bead | PR | Title |
|
| Bead | PR | Gitea Issue | Title |
|
||||||
|------|-----|-------|
|
|------|-----|-------------|-------|
|
||||||
| beads-abc | #123 | Feature X |
|
| beads-abc | #123 | #16 closed | Feature X |
|
||||||
| beads-xyz | #456 | Bug fix Y |
|
| beads-xyz | #456 | (none) | Bug fix Y |
|
||||||
|
|
||||||
|
### Gitea Issues Closed
|
||||||
|
| Issue | Bead | Status |
|
||||||
|
|-------|------|--------|
|
||||||
|
| #16 | beads-abc | Closed successfully |
|
||||||
|
| #17 | beads-def | Already closed (skipped) |
|
||||||
|
| #99 | beads-ghi | Error: issue not found |
|
||||||
|
|
||||||
### Still in Review
|
### Still in Review
|
||||||
| Bead | PR | Status | Title |
|
| Bead | PR | Status | Title |
|
||||||
@@ -80,9 +116,14 @@ Present results:
|
|||||||
- **Missing PR URL**: Skip the bead and report it
|
- **Missing PR URL**: Skip the bead and report it
|
||||||
- **PR not found**: Report the error but continue with other beads
|
- **PR not found**: Report the error but continue with other beads
|
||||||
- **API errors**: Report and continue
|
- **API errors**: Report and continue
|
||||||
|
- **Gitea issue already closed**: Log warning, continue (not an error)
|
||||||
|
- **Gitea issue not found**: Log warning, continue (issue may have been deleted)
|
||||||
|
- **No Gitea issue linked**: Normal case, no action needed
|
||||||
|
- **tea command fails**: Log error with output, continue with other beads
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
- This skill complements `/parallel_beads` which sets beads to `in_review` status
|
- This skill complements `/parallel_beads` which sets beads to `in_review` status
|
||||||
- Run this skill periodically or after merging PRs to keep beads in sync
|
- Run this skill periodically or after merging PRs to keep beads in sync
|
||||||
- Beads with closed (but not merged) PRs are not automatically closed - they may need rework
|
- Beads with closed (but not merged) PRs are not automatically closed - they may need rework
|
||||||
|
- Gitea issues are only closed for beads that have a `Gitea issue: <URL>` in their notes
|
||||||
|
|||||||
Reference in New Issue
Block a user