README
cobot
A user-experience-focused middleware for building Gitlab applications. more examples.
Support frameworks: Express / Koa.
Why cobot?
NO APIS
Friendly user experience design
Include
.d.ts
, support for automatic completion in editor.Semantic actions.
How to use
install robot:
yarn add cobot
ornpm i cobot
.import to your nodejs server:
// express
import cobot, { BotEvents } from 'cobot'
app.use(cobot.express())
// koa2
app.use(cobot.koa())
- set webhook on gitlab:
Settings > integrations > url('http://{yourhost}/{any}') > Add webhook
. you can fill in any api with your nodjes server, robot automatically identifies requests from webhooks.
Example
ok
when webhook is triggered.
1. Print const bot = cobot.lift()
bot.on(BotEvents.MergeRequest, context => console.log('ok'))
thanks your issue
when a new issue opened.
2. Reply const bot = cobot.lift()
bot.on(BotEvents.IssueOnOpen, context => {
context.actions.reply('thanks your issue')
})
3. Use await/async in callback
const bot = cobot.lift()
bot.on(BotEvents.MergeRequest, async(context) => {
const notes = await context.actions.findNotes()
console.log(notes)
})
4. Don't worry about interfaces and methods
Support events
BotEvents = [
'CommentOnIssue',
'CommentOnCommit',
'CommentOnSnippet',
'CommentOnMergeRequest',
'MergeRequest',
'WikiCreate',
'WikiUpdate',
'WikiDelete',
'WikiOnAnyAction',
'PipelineOnRunning',
'PipelineOnPending',
'PipelineOnSuccess',
'PipelineOnFailed',
'PipelineOnCanceled',
'PipelineOnSkipped',
'PipelineOnAnyStatus',
'BuildOnAnyStatus',
'Push',
'Tag',
'IssueOnAnyAction',
'IssueOnOpen',
'IssueOnUpdate',
'IssueOnClose',
'IssueOnReopen',
]