feat: bridge for git-ssb issue tracker

Labels: area/bridge kind/feature lifecycle/rotten priority/awaiting-more-evidence triage/needs-information

Timeline

Craig Sutherland (casutherland) opened

In addition to git-bug+git-ssb basic compatibility (#356), I’m also hoping to add a git-bug bridge for the git-ssb Issues tracker at some point.

Michael Muré (MichaelMure) changed the title from feat: bridge for git-ssb issue tracker to feat: bridge for git-ssb issue tracker

Michael Muré (MichaelMure) added label area/bridge

Michael Muré (MichaelMure) added label enhancement

Michael Muré (MichaelMure) commented

Be my guest :)

It looks moderately easy to do now that the bridge's core supported 3 different bridges and saw quite a lot of refactoring and improvements as well as the reusable prompts. Also, git-ssb's issue tracker seems quite limited in features.

Any idea how you would interface with it ? Is there some API or code to import ?

Craig Sutherland (casutherland) commented (edited)

Any idea how you would interface with it ? Is there some API or code to import ?

Currently SSB's dominant implementation language is node, and I believe that the closest thing to an API available for git-ssb Issues is the ssb-issues node library that is initialized with the distributed ssb-server (a.k.a. sbot) instance running locally with node.

1/ With git-bug implemented in golang, I suppose extending/wrapping the ssb-issues node library to expose a local Issues API served via the local ssb-server instance would be one approach. Or we can perhaps interrogate git-ssb-web APIs which may already be served locally on http://localhost:7718. All SSB data is currently formatted with JSON. The new git-bug golang library implementing the git-ssb bridge would need to pass the git repo ref id (ssb-id) to allow git-ssb to identify the root node within the SSB append-only log. Not sure about authentication/authorization approach yet.

I will bounce these initial quick thoughts off others with more ssb & node experience, to see if they suggest a more elegant approach.

2/ I also noticed that git-ssb comes with a basic cli command to list issues (git ssb issues [--all|--open|--closed], which is read-only). In addition, anyone may run git-ssb-web attached to their local ssb-server instance, and interact fully (create/edit/close/list) with the git-ssb Issues basic tracker, even while disconnected from the network. So, although I will still use git-bug with git-ssb repos regardless, and a bridge to git-ssb Issues will be nice (and appears to be fairly straightforward to implement), I'm not sure how many other people will actually use this bridge. :man_shrugging:

x-post: ssb:%CWTITFYuLdyg1xa4OPQ3/4lD9m7mybA2/R4JNUlZ6z8=.sha256

github-actions (github-actions) commented

This bot triages untriaged issues and PRs according to the following rules:

  • After 90 days of inactivity, the lifecycle/stale label is applied
  • After 30 days of inactivity since lifecycle/stale was applied, the issue is closed

To remove the stale status, you can:

  • Remove the lifecycle/stale label
  • Comment on this issue

github-actions (github-actions) added label lifecycle/stale

sudoforge commented (edited)

Just an FYI, I've opened an issue for moving away from maintaining bridges within git-bug, and instead exposing a common interface and supporting bridges as plugins (#1227). I'd appreciate it if you could take a look and provide your thoughts.

sudoforge removed label enhancement

sudoforge added label kind/feature

sudoforge added label priority/awaiting-more-evidence

sudoforge added label triage/needs-information

github-actions (github-actions) commented

This bot triages issues in order to help the maintainers identify what needs attention, according to the following lifecycle rules:

  • After 90 days of inactivity, lifecycle/stale is applied
  • After 90 days of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied

This bot will not automatically close stale issues.

To remove the stale status, you can:

  • Remove the stale label from this issue
  • Comment on this issue
  • Close this issue
  • Offer to help out with triaging

To avoid automatic lifecycle management of this issue, add lifecycle/frozen.

github-actions (github-actions) added label lifecycle/rotten

github-actions (github-actions) removed label lifecycle/stale

sudoforge removed label lifecycle/dormant