Issue tracking built on secure-scuttlebutt
Issue tracking built on secure-scuttlebutt
#### type: issue
An issue. Represents something that should be fixed.
``js`
{
type: 'issue',
project: Link?,
title: string?,
text: string?
}
#### issue edits
Edits to an issue may be done by any ssb message type. For example, you can
make a post that updates an issue, or push a git commit that updates an issue.
If the message does not have any content other than to update the issue, then
the type may be issue-edit.
`js`
{
type: 'issue-edit'|'post'|'git-update',
issues: [{
link: IssueRef,
open: boolean,
}]
}
`js`
var Issues = require('ssb-issues')
var issues = Issues.init(sbot)
#### get: async
Get an issue by its id
`js`
issues.get(issueId, cb)
The resulting issue object is as follows:
`js`
{
id: MsgRef,
author: FeedRef,
project: Ref?,
projectAuthor: FeedRef?,
created_at: number,
updated_at: number,
open: boolean,
msg: Msg,
}
- id: id of the issueauthor
- : author of the issuecreated_at
- (timestamp): when the issue was createdupdated_at
- (timestamp): when the issue was last updatedtitle
- : title of the issue (deprecated)open
- : whether the issue is open (true) or closed (false)project
- : the project that the issue is forprojectAuthor
- : the author of the projectmsg
- : ssb message object that created the issue (with.key
and .value).
#### list: source
Get a stream of issues
`js`
issues.list({ project:, open:, author:, live:, gt:, gte:, lt:, lte:, reverse: })
- project (Ref): get only issues for the given targetopen
- (boolean): get only open or closed issuesauthor
- (FeedRef): get only issues from the given feedlive
- (boolean, default: false): Keep the stream open and emit new messages as they are received.gt
- (greater than), gte (greater than or equal): maximum [timestamp, id]lt
- (less than), lte (less than or equal): minimum [timestamp, id]reverse
- (boolean, default: false): reverse the order of results
#### new: async
Create a new issue
`js`
issues.new({ project:, title:, text: }, cb)
- project (Ref): id of an ssb object representing the target of the issuetitle
- (string): title of the issue (deprecated)text
- (string): text describing the issue
#### close: async
`js`
issues.close(id, cb)
Mark an issue as closed.
id (MsgRef): id of the issue to reopen
#### reopen: async
`js
issues.reopen(id, cb)
``
Mark an issue as open.
id (MsgRef): id of the issue to reopentext (string): text to accompany the open action
#### edit: async
`js
issues.edit(id, opts, cb)
``
Edit an issue.
id (MsgRef): id of the issue to reopenopts.open (boolean): set open/closed statusopts.title (string): set title (deprecated)
#### isStatusChanged: sync
`js`
var open = issueSchemas.isStatusChanged(issue, msg)
Check if a message changes an issue's status
- msg (Msg in metadata): message to checkissue
- (Issue): issue to check for updateopen
- (boolean?): whether the message updates the issue to be open (true)
closed (false), or does not affect it (null)
#### getMention: sync
`js`
var mention = issueSchemas.getMention(issue, msg)
Get a mention of an issue in a message, if any
- msg (Msg in metadata): message to checkissue
- (Issue): issue to check for updatemention
- (object?): mention object, with properties likemention.open
- (boolean?): whether the issue is updated to be open (true),
closed (false), or not (null)
#### deinit: async
Deinit the issues object. Closes all live streams. Since issues uses livedeinit
streams, you should call when you are done with the issues and want
your program to exit or free up resources.
`js`
pulls.deinit(cb)
`js`
var issueSchemas = Issues.schemas
#### issueSchemas.new(project, title, text)
Create a new issue.
- project (Ref): id of project to associate the issue withtitle
- (string): title to give the issue (deprecated)text
- (string): text body for the issue
#### issueSchemas.edit(id, opts)
Edit an issue.
- opts.open (boolean): open or close the issueopts.title
- (string): set the title of the issue (deprecated)
#### issueSchemas.close(id)
Close an issue.
- id (MsgRef): id of an issue to mark as closed
#### issueSchemas.reopen(id)
Reopen an issue.
- id (MsgRef): id of an issue to mark as open
#### issueSchemas.closes(msg, id)
Mutate a message to make it close an issue
- msg (Msg): message object to updateid
- (MsgRef): id of an issue to mark as closed
#### issueSchemas.reopens(msg, id)
Mutate a message to make it reopen an issue
- msg (Msg): message object to updateid` (MsgRef): id of an issue to mark as open
-
Copyright (c) 2016 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.