ssb-issues
v1.0.0
Published
Issue tracking built on secure-scuttlebutt
Downloads
39
Readme
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?
}
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
.
{
type: 'issue-edit'|'post'|'git-update',
issues: [{
link: IssueRef,
open: boolean,
}]
}
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,
}
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
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
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
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
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
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 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.
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
License
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.