Skip to content

Kind 1621: Git Issue

Overview

Kind 1621 defines a Git issue event in the Nostr ecosystem. It enables users to submit bug reports, feature requests, questions, or any other form of conversational text related to a Git repository announced on Nostr. Issues serve as a way for users to communicate about repositories without needing to submit actual code changes.

Specification

PropertyValue
Kind Number1621
Event RangeRegular Event
Defined inNIP-34

Content Format

The content field contains Markdown text describing the issue, feature request, or other comment related to a Git repository. This can include bug reports, feature suggestions, questions, or any other discussion points.

Schema

# Sample bug report

## Description

When using the software with a large dataset, the search function becomes unresponsive after approximately 1000 records are loaded.

## Steps to reproduce

1. Import a CSV file with more than 1000 records
2. Open the search panel
3. Type any search term

## Expected behavior

The search should filter the records quickly, regardless of dataset size.

## Actual behavior

The UI freezes for 5-10 seconds, and sometimes crashes completely.

## Environment

- OS: Ubuntu 22.04
- Browser: Firefox 112.0
- Screen resolution: 1920x1080

Tags

Tag NameDescriptionFormatRequired
aBase repository address["a", "30617:<base-repo-owner-pubkey>:<base-repo-id>"]Yes
pRepository owner["p", "<repository-owner-pubkey>"]Yes
subjectIssue title/subject["subject", "<issue-subject>"]No
tIssue label["t", "<issue-label>"]No

Client Behavior

Clients should:

  • Display issues in a user-friendly format, with proper Markdown rendering.
  • Allow users to view and filter issues for repositories they follow.
  • Enable users to create new issues for repositories.
  • Send issues to the relays specified in the repository's announcement event.
  • Provide a way to add optional subject and label tags to help categorize issues.
  • Allow users to reply to issues following NIP-22 (comments are created as regular kind 1 notes with an e tag referencing the issue).
  • Display the status of issues based on Kind 1630-1633. A new issue defaults to "Open" (Kind 1630) status.

Relay Behavior

Relays should:

  • Store these events according to NIP-01 guidelines.
  • No special handling is required beyond standard event handling.

Use Cases

  • Reporting bugs in Git repositories announced on Nostr.
  • Requesting new features for projects.
  • Asking questions about repository functionality.
  • Providing feedback on existing features.
  • Initiating discussions related to the repository.
  • Creating task lists or TODOs for project maintainers.

Example

json
{
  "id": "4ac23413d1f5e3d6042b7dd0c6fbefe4c5d5c54f9925a8666e6fab5d0bbf78b1",
  "pubkey": "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245",
  "created_at": 1677168100,
  "kind": 1621,
  "tags": [
    ["a", "30617:32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245:nostr-protocol"],
    ["p", "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245"],
    ["subject", "Performance issue with large repositories"],
    ["t", "bug"],
    ["t", "performance"]
  ],
  "content": "## Description\n\nWhen cloning repositories with more than 5000 commits, the initial clone operation takes significantly longer than expected.\n\n## Steps to reproduce\n\n1. Try to clone a repository with >5000 commits using the provided URL\n2. Monitor network traffic and CPU usage\n\n## Expected behavior\n\nRepository should clone at network speed without excessive CPU usage.\n\n## Actual behavior\n\nCPU usage spikes to 100% and the process takes 3-5x longer than with other git clients.\n\n## Environment\n- OS: Ubuntu 22.04\n- Git version: 2.34.1\n",
  "sig": "a1c4e3c98b9e137093ef2c0f4b09eaf6257f829de87c16fa2f65678eb264b99c056c97a650b1b493edb2c79e38ca800ae6e78f799b79810d0654989c5dc0b234"
}

References

  • Kind 30617: Git Repository Announcement
  • Kind 30618: Git Repository State Announcement
  • Kind 1617: Git Patch
  • Kinds 1630-1633: Git Status Events (Open, Applied/Merged, Closed, Draft)

Notes

Replies to Git issues follow the standard NIP-22 comment approach, using regular kind 1 events with an e tag pointing to the issue event.

The status of an issue is determined by Kind 1630-1633 events:

  • Kind 1630: Issue is Open (default status)
  • Kind 1631: Issue is Resolved
  • Kind 1632: Issue is Closed
  • Kind 1633: Issue is in Draft state

Multiple labels can be added via multiple t tags to help categorize issues (e.g., "bug", "enhancement", "question", "documentation", etc.).