📄 | README.md |
📄 | index.js |
📁 | lib |
📄 | package.json |
📄 | test.js |
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?
}
type: issue-edit
An edit to an issue. Only considered valid if its author is the author of the
issue (issue.author
) or of the project of the issue (issue.projectAuthor
).
{
type: 'issue-edit',
issue: IssueRef,
open: boolean?,
title: string?
}
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
}
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 issueopen
: whether the issue is open (true) or closed (false)project
: the project that the issue is forprojectAuthor
: the author of the project
createFeedStream: source
Get a stream of issues
issues.createFeedStream({ project:, open:, live:, gt:, gte:, lt:, lte:, reverse:, limit:, }, cb)
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 issuetext
(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
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)
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 issuetext
(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
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.
Built with git-ssb-web