cobot

A user-experience-focused middleware for building Gitlab applications. more examples.

Usage no npm install needed!

<script type="module">
  import cobot from 'https://cdn.skypack.dev/cobot';
</script>

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

  1. install robot: yarn add cobot or npm i cobot.

  2. import to your nodejs server:

// express
import cobot, { BotEvents } from 'cobot'
app.use(cobot.express())

// koa2
app.use(cobot.koa())
  1. 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

1. Print ok when webhook is triggered.

const bot = cobot.lift()
bot.on(BotEvents.MergeRequest, context => console.log('ok'))

2. Reply thanks your issue when a new issue opened.

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',
]

LICENSE

MIT