| name | github |
| description | GitHub and Git workflow helpers, Issues and Projects v2 management via gh CLI; triggers on 'github', 'create issue', 'list issues', 'github project', 'project board', 'sync tasks', 'create pr', 'pr checks', 'retrigger tests', 'bump version', 'push'. |
Purpose
Model-neutral helper for GitHub and Git workflows including Issues, Projects v2, PR management, CI triggers, and version bumping. Uses the gh CLI.
Triggers
Use when the user says:
- "create a github issue", "create issue", "new issue"
- "list github issues", "show issues", "open issues"
- "close issue", "reopen issue", "assign issue"
- "github project", "project board", "kanban"
- "add to project", "update project field", "move to column"
- "sync tasks with github", "import github issues", "export tasks to github"
- "create a pr", "check pr status", "retrigger tests", "toggle test label", "pr checks", "bump version", "push to remote"
Configuration
Uses existing gh CLI authentication. Verify with:
gh auth status
Alternatively, set GITHUB_TOKEN environment variable for CI/headless environments.
How to use
Issues
List Issues
lisa github issues list --repo owner/repo
lisa github issues list --repo owner/repo --state open --labels bug,urgent --assignee @me --limit 20
lisa github issues list --repo owner/repo --state all
Create Issue
lisa github issues create --repo owner/repo --title "Bug: Login fails"
lisa github issues create --repo owner/repo --title "Feature: Dark mode" --body "Add dark mode support" --labels enhancement,ui
lisa github issues create --repo owner/repo --title "Task" --assignee username
View Issue
lisa github issues view --repo owner/repo 123
Close/Reopen Issue
lisa github issues close --repo owner/repo 123
lisa github issues close --repo owner/repo 123 --reason not_planned
lisa github issues reopen --repo owner/repo 123
Assign Issue
lisa github issues assign --repo owner/repo 123 --to username
lisa github issues assign --repo owner/repo 123 --to user1,user2
Label Issue
lisa github issues label --repo owner/repo 123 --add bug,priority-high
lisa github issues label --repo owner/repo 123 --remove wontfix
lisa github issues label --repo owner/repo 123 --add in-progress --remove backlog
Projects v2
List Projects
lisa github projects list --repo owner/repo
lisa github projects list --repo owner/repo --limit 10
View Project
lisa github projects view --repo owner/repo 1
List Project Items
lisa github projects items --repo owner/repo 1
lisa github projects items --repo owner/repo 1 --limit 50
List Project Fields
lisa github projects fields --repo owner/repo 1
Add Issue to Project
lisa github projects add --repo owner/repo 1 123
Update Project Field
lisa github projects set-field --repo owner/repo 1 ITEM_ID --field Status --value "In Progress"
lisa github projects set-field --repo owner/repo 1 ITEM_ID --field Priority --value "High"
Note: Use projects fields to get valid field names and options, and projects items to get item IDs.
Sync (Bidirectional Task Sync)
Sync Lisa tasks with GitHub Issues. Supports import, export, or bidirectional sync.
Import GitHub Issues as Lisa Tasks
lisa github sync --repo owner/repo --import
lisa github sync --repo owner/repo --import --labels task,feature
lisa github sync --repo owner/repo --import --dry-run
lisa github sync --repo owner/repo --import --group my-project
Export Lisa Tasks to GitHub Issues
lisa github sync --repo owner/repo --export
lisa github sync --repo owner/repo --export --dry-run
Bidirectional Sync
lisa github sync --repo owner/repo
lisa github sync --repo owner/repo --dry-run
Status Mapping
| Lisa Status | GitHub State | GitHub Labels |
|---|
ready/todo | open | (none) |
in-progress | open | in-progress |
blocked | open | blocked |
done | closed | (none) |
Conflict Resolution: When both Lisa and GitHub have changes, last-write-wins based on timestamps.
I/O Contract (examples)
Create Issue
{
"status": "ok",
"action": "create",
"issue": {
"number": 123,
"url": "https://github.com/owner/repo/issues/123",
"title": "Bug: Login fails"
}
}
List Issues
{
"status": "ok",
"action": "list",
"issues": [
{
"number": 123,
"title": "Bug: Login fails",
"state": "open",
"labels": ["bug"],
"assignees": ["username"],
"url": "https://github.com/owner/repo/issues/123",
"createdAt": "2026-01-22T10:00:00Z",
"updatedAt": "2026-01-22T10:00:00Z"
}
],
"total": 1
}
View Issue
{
"status": "ok",
"action": "view",
"issue": {
"number": 123,
"title": "Bug: Login fails",
"body": "Steps to reproduce...",
"state": "open",
"labels": ["bug"],
"assignees": ["username"],
"url": "https://github.com/owner/repo/issues/123",
"createdAt": "2026-01-22T10:00:00Z",
"updatedAt": "2026-01-22T10:00:00Z",
"author": "reporter",
"milestone": "v1.0"
}
}
List Projects
{
"status": "ok",
"action": "list",
"projects": [
{
"id": "PVT_kwDOABC123",
"number": 1,
"title": "Sprint Board",
"url": "https://github.com/orgs/owner/projects/1",
"closed": false,
"shortDescription": "Current sprint tasks"
}
],
"total": 1
}
Project Items
{
"status": "ok",
"action": "items",
"items": [
{
"id": "PVTI_abc123",
"type": "ISSUE",
"content": {
"number": 123,
"title": "Bug: Login fails",
"url": "https://github.com/owner/repo/issues/123",
"state": "OPEN"
},
"fieldValues": {
"Status": "In Progress",
"Priority": "High"
}
}
],
"total": 1
}
Project Fields
{
"status": "ok",
"action": "fields",
"fields": [
{
"id": "PVTF_abc123",
"name": "Status",
"dataType": "SINGLE_SELECT",
"options": [
{ "id": "opt_1", "name": "Todo" },
{ "id": "opt_2", "name": "In Progress" },
{ "id": "opt_3", "name": "Done" }
]
},
{
"id": "PVTF_def456",
"name": "Priority",
"dataType": "SINGLE_SELECT",
"options": [
{ "id": "opt_a", "name": "Low" },
{ "id": "opt_b", "name": "Medium" },
{ "id": "opt_c", "name": "High" }
]
}
]
}
Sync Result
{
"status": "ok",
"action": "sync",
"direction": "bidirectional",
"dryRun": false,
"summary": {
"imported": 3,
"exported": 2,
"updated": 1,
"skipped": 5,
"conflicts": 1
},
"imported": [
{ "title": "Bug: Login fails", "issueNumber": 123, "issueUrl": "https://github.com/owner/repo/issues/123" }
],
"exported": [
{ "title": "Refactor auth module", "taskUuid": "abc123", "issueNumber": 456, "issueUrl": "https://github.com/owner/repo/issues/456" }
],
"updated": [
{ "title": "Update docs", "taskUuid": "def789", "issueNumber": 101, "issueUrl": "https://github.com/owner/repo/issues/101" }
],
"conflicts": [
{
"taskUuid": "ghi012",
"taskTitle": "Fix tests",
"issueNumber": 102,
"reason": "Status mismatch: Lisa=\"in-progress\", GitHub=\"closed\"",
"resolution": "remote",
"localUpdatedAt": "2026-01-22T10:00:00Z",
"remoteUpdatedAt": "2026-01-22T11:00:00Z"
}
]
}
Error
{
"status": "error",
"error": "Not authenticated. Run: gh auth login"
}
Workflow Examples
Bug Triage Workflow
lisa github issues create --repo owner/repo --title "Bug: Login fails" --labels bug,triage
lisa github projects add --repo owner/repo 1 123
lisa github projects set-field --repo owner/repo 1 ITEM_ID --field Status --value "Triage"
lisa github issues label --repo owner/repo 123 --add priority-high --remove triage
lisa github projects set-field --repo owner/repo 1 ITEM_ID --field Status --value "Backlog"
Sprint Planning Workflow
lisa github projects items --repo owner/repo 1 --limit 50
lisa github projects set-field --repo owner/repo 1 ITEM_ID --field Status --value "Todo"
lisa github issues assign --repo owner/repo 123 --to developer
Task Sync Workflow
lisa github sync --repo owner/repo --import
lisa tasks update "Fix login bug" --status in-progress
lisa github sync --repo owner/repo
lisa github sync --repo owner/repo --dry-run
Git Workflows
Check PR Status
gh pr checks <PR_NUMBER> --repo <owner/repo>
gh pr view <PR_NUMBER> --repo <owner/repo>
Retrigger CI Tests
When a PR test fails and a fix is pushed, tests don't automatically re-run. Toggle the "TEST" label to trigger:
gh pr edit <PR_NUMBER> --repo <owner/repo> --remove-label "TEST"
sleep 2
gh pr edit <PR_NUMBER> --repo <owner/repo> --add-label "TEST"
Check CircleCI Pipeline Status
Prerequisites: Set CIRCLE_TOKEN environment variable, or have CircleCI CLI configured at ~/.circleci/cli.yml.
curl -s -H "Circle-Token: ${CIRCLE_TOKEN}" \
"https://circleci.com/api/v2/project/gh/<owner>/<repo>/pipeline?branch=<BRANCH>" \
| jq '.items[0] | {number, state, created_at}'
curl -s -H "Circle-Token: ${CIRCLE_TOKEN}" \
"https://circleci.com/api/v2/pipeline/<PIPELINE_ID>/workflow" \
| jq '.items[] | {name, status}'
Poll CI Until Completion
lisa pr checks <PR_NUMBER>
gh pr checks <PR_NUMBER> --watch
Bump Version
Bump the semantic version in package.json before pushing:
lisa bump-version
lisa bump-version patch
lisa bump-version major
Configuration
Control version bumping via LISA_AUTO_BUMP_VERSION in .lisa/.env:
| Value | Behavior |
|---|
true (default) | Enabled, defaults to minor bump |
false | Disabled, bump commands are skipped |
patch / minor / major | Enabled with that bump type as the default |
LISA_AUTO_BUMP_VERSION=false
LISA_AUTO_BUMP_VERSION=patch
A CLI argument always overrides the env default: lisa bump-version major bumps major regardless of the env setting.
Workflow: Push with Version Bump
-
Bump version (default: minor):
lisa bump-version
-
Commit the version bump:
git add package.json
git commit -m "chore: bump version to $(node -p "require('./package.json').version")"
-
Push to remote:
git push
Workflow: PR Test Failure
-
Identify the failure - Check CircleCI logs or GitHub checks
-
Push a fix - Commit and push the fix to the branch
-
Retrigger tests - Toggle the TEST label:
gh pr edit <PR_NUMBER> --repo <owner/repo> --remove-label "TEST" && \
sleep 2 && \
gh pr edit <PR_NUMBER> --repo <owner/repo> --add-label "TEST"
-
Monitor - Watch for the new pipeline to complete
Cross-model checklist
- Claude: Use JSON output for parsing; concise instructions
- Gemini: Explicit commands; minimal formatting
- All models: Always include --repo flag; parse JSON responses
Notes
- Requires
gh CLI v2.0+ or GITHUB_TOKEN environment variable
- Requires CircleCI CLI/token for pipeline status
- Projects v2 uses GraphQL API (requires appropriate permissions)
- Rate limits apply per GitHub API policies
--repo flag is always required (no auto-detection)
- TEST label triggers CI workflow via GitHub Actions/CircleCI integration
See Also
/pr skill for PR creation, polling, and review comment workflows
/jira skill for Jira integration (similar command structure)
/tasks skill for Lisa's internal task management