git ssb

0+

cel / ssb-issues



Branch:
cel committed 1.2.0Latest: 5f3fba8 on 5/23/2020, 9:24:48 PM
📄README.md
📄index.js
📁lib
📄package.json
📄test.js
README.md

ssb-issues

Issue tracking built on secure-scuttlebutt

Schema

type: issue

An issue. Represents something that should be fixed.

{
  type: 'issue',
  project: Link?,
  title: string?,
  text: string?,
  labels: [LabelRef]?
}

issue edits

Edits to an issue open/closed state may be done by ssb message type issue-edit, post, or git-update. For example, you can make a post that updates an issue, or push a git commit that updates an issue. Other issue edits should be done with message type issue-edit.

{
  type: 'issue-edit'|'post'|'git-update',
  issues: [{
    link: IssueRef,
    open: boolean?,
    labels: {
      add: [IssueRef]?,
      remove: [IssueRef]?,
    }?
  }]
}

issue labels

An issue label represents a tag that can be applied to issues in a repo/project. It can be renamed using about messages. Issue labels can be added to or removed from issues using issue-edit messages.

{
  type: 'issue-label',
  project: Link?,
  name: string?,
  issues: [issueRef]?
}

API

var Issues = require('ssb-issues')
var issues = Issues.init(sbot)

get: async

Get an issue by its id

issues.get(issueId, cb)

The resulting issue object is as follows:

{
  id: MsgRef,
  author: FeedRef,
  project: Ref?,
  projectAuthor: FeedRef?,
  created_at: number, 
  updated_at: number,
  open: boolean,
  msg: Msg,
  labels: MsgRefs
}

list: source

Get a stream of issues

issues.list({ project:, open:, author:, live:, gt:, gte:, lt:, lte:, reverse: })

new: async

Create a new issue

issues.new({ project:, title:, text: }, cb)

close: async

issues.close(id, cb)

Mark an issue as closed.

id (MsgRef): id of the issue to reopen

reopen: async

issues.reopen(id, cb)`

Mark an issue as open.

id (MsgRef): id of the issue to reopen text (string): text to accompany the open action

edit: async

issues.edit(id, opts, cb)`

Edit an issue.

id (MsgRef): id of the issue to reopen opts.open (boolean): set open/closed status opts.title (string): set title (deprecated)

isStatusChanged: sync

var open = issueSchemas.isStatusChanged(issue, msg)

Check if a message changes an issue's status

getMention: sync

var mention = issueSchemas.getMention(issue, msg)

Get a mention of an issue in a message, if any

deinit: async

Deinit the issues object. Closes all live streams. Since issues uses live streams, you should call deinit when you are done with the issues and want your program to exit or free up resources.

pulls.deinit(cb)

schemas

var issueSchemas = Issues.schemas

issueSchemas.new(project, title, text)

Create a new issue.

issueSchemas.newLabel(project, name, issues)

Create a new issue label.

issueSchemas.edit(id, opts)

Edit an issue.

issueSchemas.close(id)

Close an issue.

issueSchemas.reopen(id)

Reopen an issue.

issueSchemas.closes(msg, id)

Mutate a message to make it close an issue

issueSchemas.reopens(msg, id)

Mutate a message to make it reopen an issue

License

Copyright (c) 2016, 2020 Charles Lehner

Usage of the works is permitted provided that this instrument is retained with the works, so that any entity that uses the works is notified of this instrument.

DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.

Built with git-ssb-web