Issues
Issues are JJHub’s primary tool for tracking bugs, feature requests, tasks, and discussions. They support labels, milestones, assignees, reactions, dependencies, pinning, locking, and templates — the full feature set you expect from a modern forge.Creating Issues
Via CLI
| Flag | Description |
|---|---|
-t, --title <text> | Issue title (required) |
-b, --body <text> | Issue body (Markdown supported) |
-a, --assignee <username> | Assign to a user (repeatable for multiple assignees) |
-T, --template <name> | Use an issue template |
--blocks <number> | Mark this issue as blocking another (repeatable) |
--blocked-by <number> | Mark this issue as blocked by another (repeatable) |
Via API
Using Templates
Issue templates provide structured forms for consistent issue creation. Templates are Markdown files in.jjhub/ISSUE_TEMPLATE/:
Listing and Viewing Issues
Editing and Closing Issues
Labels
Labels categorize issues with color-coded tags. They make issues filterable and scannable.Managing Labels
Adding Labels to Issues
Labels are applied when creating issues (via templates or API) or through the API:API Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/repos/:owner/:repo/labels | List labels |
POST | /api/repos/:owner/:repo/labels | Create a label |
GET | /api/repos/:owner/:repo/issues/:number/labels | List labels on an issue |
POST | /api/repos/:owner/:repo/issues/:number/labels | Add labels to an issue |
DELETE | /api/repos/:owner/:repo/issues/:number/labels/:name | Remove a label |
Milestones
Milestones group issues into time-boxed goals. They help track progress toward releases or feature deadlines.Managing Milestones
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/repos/:owner/:repo/milestones | List milestones |
POST | /api/repos/:owner/:repo/milestones | Create a milestone |
Dependencies
Issues can have blocking/blocked-by relationships to model task dependencies. A dependency means one issue must be resolved before another can proceed.Concepts
- Blocks: Issue A blocks issue B means B cannot proceed until A is resolved
- Blocked by: Issue B is blocked by issue A means B depends on A being resolved first
- Circular dependencies are rejected at creation time
Creating Dependencies
Viewing the Dependency Graph
Behavior
- Blocked issues can still receive comments and updates
- Closing a blocked issue while its blockers are open displays a warning
- When a blocking issue is closed, dependents are automatically updated and fully unblocked issues are surfaced in notifications
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/repos/:owner/:repo/issues/:number/dependencies | List dependencies |
POST | /api/repos/:owner/:repo/issues/:number/dependencies | Create a dependency |
DELETE | /api/repos/:owner/:repo/issues/:number/dependencies/:id | Remove a dependency |
Pinning Issues
Pin up to 3 important issues to the top of the issue list. Pinned issues appear before all other issues regardless of sort order.API Endpoints
| Method | Endpoint | Description |
|---|---|---|
PUT | /api/repos/:owner/:repo/issues/:number/pin | Pin an issue (max 3 per repo) |
DELETE | /api/repos/:owner/:repo/issues/:number/pin | Unpin an issue |
Locking Issues
Locking an issue prevents non-admin users from adding new comments. Existing comments are preserved and remain visible. Only repository admins and owners can lock or unlock issues.Lock Reasons
| Reason | Description |
|---|---|
off-topic | Discussion has drifted from the original issue |
too-heated | Discussion has become unproductive or hostile |
resolved | The issue has been resolved and no further discussion is needed |
spam | The issue is attracting spam comments |
Behavior
- Non-admin users cannot add new comments to a locked issue
- Admin and owner users can still comment on locked issues
- Locking does not affect other issue operations (editing, closing, labeling, assigning)
- The lock reason (if provided) is displayed when viewing the issue
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
PUT | /api/repos/:owner/:repo/issues/:number/lock | Lock an issue |
DELETE | /api/repos/:owner/:repo/issues/:number/lock | Unlock an issue |
Reactions
Reactions let you add emoji responses to issues and comments.Supported Types
| Reaction | Description |
|---|---|
+1 | Thumbs up |
-1 | Thumbs down |
laugh | Laughing |
hooray | Celebration |
confused | Confused |
heart | Heart |
rocket | Rocket |
eyes | Eyes |
CLI Commands
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/repos/:owner/:repo/issues/:number/reactions | List reactions on an issue |
POST | /api/repos/:owner/:repo/issues/:number/reactions | Add a reaction |
DELETE | /api/repos/:owner/:repo/issues/:number/reactions/:id | Remove a reaction |
GET | /api/repos/:owner/:repo/issues/comments/:id/reactions | List reactions on a comment |
POST | /api/repos/:owner/:repo/issues/comments/:id/reactions | Add a reaction to a comment |
DELETE | /api/repos/:owner/:repo/issues/comments/:id/reactions/:reaction_id | Remove a comment reaction |
Comments
Issues support threaded comments with Markdown formatting and @mentions.Adding Comments
Editing and Deleting Comments
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/repos/:owner/:repo/issues/:number/comments | List comments |
POST | /api/repos/:owner/:repo/issues/:number/comments | Add a comment |
PATCH | /api/repos/:owner/:repo/issues/comments/:id | Edit a comment |
DELETE | /api/repos/:owner/:repo/issues/comments/:id | Delete a comment |
Full API Reference
| Method | Endpoint | Description |
|---|---|---|
GET | /api/repos/:owner/:repo/issues | List issues |
POST | /api/repos/:owner/:repo/issues | Create an issue |
GET | /api/repos/:owner/:repo/issues/:number | Get an issue |
PATCH | /api/repos/:owner/:repo/issues/:number | Update an issue |
Next Steps
- Issue Templates — structured issue creation forms
- Landing Requests — link issues to code changes
- CLI Reference — all issue commands
- Organizations — team-based issue management