Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ducktapejs/ducktape
A platform for sticking different platforms together
https://github.com/ducktapejs/ducktape
automation azure-devops bitrise client github jira job-scheduler slack webhooks
Last synced: 16 days ago
JSON representation
A platform for sticking different platforms together
- Host: GitHub
- URL: https://github.com/ducktapejs/ducktape
- Owner: ducktapejs
- Created: 2019-10-31T08:56:54.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-04T23:59:19.000Z (almost 2 years ago)
- Last Synced: 2024-07-29T17:04:48.246Z (3 months ago)
- Topics: automation, azure-devops, bitrise, client, github, jira, job-scheduler, slack, webhooks
- Language: TypeScript
- Homepage:
- Size: 917 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Ducktape
A platform for sticking different platforms together
## Supported platforms:
**Fully supported**
* Github `@ducktapejs/integration-github`
* Cron `@ducktapejs/integration-cron`
* Webhook `@ducktapejs/integration-webhook`
* Azure DevOps `@ducktapejs/integration-azure-devops`
* Slack `@ducktapejs/integration-slack`**Work in progress**
* AppStore Connect `@ducktapejs/integration-appstore-connect`
* Jira `@ducktapejs/integration-jira`**Planned**
* Pushover
* Bitrise `@ducktapejs/integration-bitrise`
* Google Play Store `@ducktapejs/integration-google-play-store`## Quick start
Create a new npm project and install `@ducktapejs/server` as well as any integrations you want, for instance `@ducktapejs/integration-github`
The easiest way to create a server is to use the provided `createBin` function to create a cli application
```typescript
#!/usr/bin/env nodeimport { createBin } from '@ducktapejs/server';
import Github from '@ducktapejs/integration-github';createBin({
url: 'localhost:3000',
port: 3000,
clients: {
github: new Github(),
},
}, async ({ github }) => {
// do stuff with integrations here
github.hooks.on('pullrequest', async () => {
const client = await github.getClient('morten-olsen', 'ducktape');
client....
})
})
.catch(console.error);
```The cli will have two actions:
* **start** which starts the provided function
* **create-config** which will guide you through configuring the integrations and create a `config.json` with the configuration resultFor a project example look at `packages/core/demo`
## Bundling
To bundle your new server into a single JS file you can use `@ducktapejs/bundler` to run `ducktape-bundler bundle your/file.ts` which will create a `bundle/bundle.js` file