Git Product home page Git Product logo

achievibit's Introduction

achievibit Logo

@kibibit/achievibit

Server Unit Tests Client Unit Tests API Tests E2E Tests All Contributors

Github Gamification - Achievements system as a GitHub WebHook.


Production Production Docs

Beta Beta Docs

Description

  • Get achievements on different characteristics of your pull requests
  • Use the achievibit chrome extension to see achievibit inside GitHub

how to use

we're working on implementing GitHub oAuth to support some extra features.

stay tuned

achievibit needs to be integrated into each enabled repository via a webhook.

  1. Go to your main repository page
  2. click on Settings
  3. on the sidebar, click on Webhooks
  4. click on add webhook
  5. paste achievibit's url (https://achievibit.kibibit.io) into the payload url
  6. change Content type to application/json
  7. on Which events would you like to trigger this webhook?, select Let me select individual events. and check Pull request and Pull request reviews

Maybe sometime later we'll also support repo achievements. open an issue if you're interested :-)

Chrome extension Chrome Store Version Chrome Store Downloads

You can install our chrome extension to see achievements in github profiles, and see an animation everytime you get an achievement

Add our shield to your project's README

We've just started, and we want to spread the word. We would really appreciate if you'll add our shield if you think achievibit is worth talking about

copy this snippet to any markdown file

  • shield: number of achievable achievements Supported achievements
[![Supported achievements](http://achievibit.kibibit.io/achievementsShield)](https://achievibit.kibibit.io)

Contributors โœจ

Thanks goes to these wonderful people (emoji key):


Neil Kalman

๐Ÿ’ป ๐Ÿ“– ๐ŸŽจ ๐Ÿšง ๐Ÿš‡ โš ๏ธ

O T

๐Ÿ’ป โš ๏ธ

Michael Dunaevsky

๐Ÿ’ป โš ๏ธ ๐Ÿ›

Andrea Rosales

๐Ÿ› ๐Ÿ’ป

Daniel Ruf

๐Ÿ› ๐Ÿ“–

This project follows the all-contributors specification. Contributions of any kind are welcome!

Stay in touch

achievibit's People

Contributors

andrearosr avatar danielruf avatar dependabot[bot] avatar dunaevsky avatar greenkeeper[bot] avatar greenkeeperio-bot avatar k1b1b0t avatar ortichon avatar semantic-release-bot avatar thatkookooguy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

achievibit's Issues

Create achievibit's k1b1b0t

k1b1b0t - bot for reporting on achievements

FEATURE

k1b1b0t will post on Telegram and Slack to notify users on received achievements. This can be used by groups (organizations or individuals) to share notifications on achievements.

Example Scenarios

  • an organization with X people, using slack. They can have several bots, posting on R&D statuses (build, tests, etc.). You can have k1b1b0t in a group like that, or a group that is less production oriented and more development oriented.
  • a bunch of friendly developers open a group on Slack\Telegram and mock each other on bad achievements, and complimenting on good once?

These are just examples, but you can take our achievibit group on Telegram as an example.

What can k1b1b0t do?

  • k1b1b0t can subscribe specific channels\groups to notifications on specific users. It will send a "banner" of achievement unlocked when a user recieves an achievement.
  • k1b1b10t can also subscribe a channel\group to a daily summary of users total achievements
  • k1b1b0t should be charming and cool. we should try and give him some super powers

Additional Information

I already implemented a basic bot for Telegram. We can use that as a base and integrate it inside our Heroku server.
Telegram Node.js API: https://github.com/yagop/node-telegram-bot-api
Greate Tutorial on Node.js library: https://github.com/hosein2398/node-telegram-bot-api-tutorial
Slack Node.js library for bots: https://www.npmjs.com/package/slackbots

both bots should be using a webhook and not pulling


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

An in-range update of mongodb is breaking the build ๐Ÿšจ

Version 2.2.23 of mongodb just got published.

Branch Build failing ๐Ÿšจ
Dependency mongodb
Current Version 2.2.22
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

As mongodb is a direct dependency of this project this is very likely breaking your project right now. If other packages depend on you itโ€™s very likely also breaking them.
I recommend you give this issue a very high priority. Iโ€™m sure you can resolve this ๐Ÿ’ช


Status Details
  • โŒ continuous-integration/travis-ci/push The Travis CI build failed Details

  • โœ… coverage/coveralls First build on greenkeeper/mongodb-2.2.23 at 39.32% Details

Commits

The new version differs by 17 commits .

  • 47e519f some fixes for proxy tests to attempt to avoid travis running issues
  • 671f286 Merge branch '2.2' of github.com:mongodb/node-mongodb-native into 2.2
  • 2603748 updated history and package.json to V2.2.23
  • 941417e Merge pull request #1470 from ra4king/patch-1
  • dac57e9 Merge pull request #1477 from oBusk/patch-1
  • a24c252 Merge pull request #1476 from maicss/patch-1
  • fe04423 Fix typo in node quickstart
  • 16ede54 https://jira.mongodb.org/browse/NODE-932
  • d1a4e15 fixed test
  • 7050663 minor test fix and mongo_client options validation
  • 39102e1 NODE-931 Validates all the options for MongoClient.connect and fixes missing connection settings
  • 38c037c NODE-929 Update SSL tutorial to correctly reflect the non-need for server/mongos/replset subobjects
  • 7832ca9 Merge branch '2.2' of github.com:mongodb/node-mongodb-native into 2.2:
  • 636444b link driver to mongodb-core 2.0 branch for dev
  • e4f5999 Merge pull request #1473 from Annoraaq/patch-1

There are 17 commits in total. See the full diff.

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot ๐ŸŒด

oAuth

as GitHub requires for their integration page

integrate the new github project system

not sure if we should do milestones yet, but we can when we do this

Will allow us to connect accumulative achievements to milestone assignment and project assignment :-)

V2.0: Create a Nest seed with basic functionalities

SEED FOR VERSION 2

FEATURE

achievibit's build system should be pretty basic.

We need the following things:

  • a watch system to restart the server on file changes automatically
  • maybe a setup function to start a mongodb instance locally (so developers can just start testing their achievements)
  • a function to reset the local mongodb achievibit db to start from scratch easily

Should include:

  • Nest for server side inside src/server folder
  • Jest unit tests
  • All the original achievements from V1

So we can start working on other implementations

get to a total of 20 achievements

#currently, let's stick to the simple ones (without saving any treasure (data)).
Try and give a description, a name, and an avatar that references to some pop-culture or geek culture thing. Something that people know, or you want people to know about :-)

Here is my suggestions:

  • if the reviewer also committed to the pull request he's reviewing :-) (example: lending a helping hand = some reference to a handjob :-P) - Done
  • If every commit inside the pull request passed tests (green status) - Done

or whatever you want :-) just talk to me before to check if it's doable or if you want a reminder on what data we're collecting on each PR


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

V2.5: Add api endpoint to get all achievements of a specific Repository \ Organization \ Pull Requests

API GET ALL REPO\ORGANIZATION\PR ACHIEVEMENTS

FEATURE

This should be pretty similar to #160

we should add a way to get all Repository \ Organization \ Pull Requests related achievements.
Here is what I'm thinking (and why):

  • /achievements/:user:/ - get all achievements of a specific user (all repos)
  • /achievements/:user:/:repo:/ - get all achievements of a specific repo
  • /achievements/:user:/:repo:/:pr_id: - get all achievements of a specific pull request

[NOTICE]: if the user is an organization, get achievements based on organization and not the organization user (for all team members)

This will allow us to add these later for some achievement SWAG:

  • get SVG Badge of all achievements of a specific user (all repos) (user bio or personal website \ cv)
  • get SVG Badge of all achievements of a specific repo (show on a repo's README.md)
  • get SVG Badge of all achievements of a specific pull request [SVG] (added by us in a pull request comment when it is merged)
  • get SVG Badge of all achievements of a specific organization (all repos) (for organization swag :-))

RAW paths should be implemented as well since we would be able to use the data itself. in a future kibibit cli for example, we can show achievements when a feature is merged.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

V2.5: Implement user properties: level \ exp \ lives \ penalties and rewards [$5]

Implement user properties: level \ exp \ lives \ penalties and rewards

FEATURE

Bountysource


This should be done after we gain parity with V1

this is what I'm thinking right now, but this is an open discussion.

  • each user starts at level 1, with 0 exp, and 3 lives
  • you gain experience for each "good" achievement you get (X points)
  • you lose a life for each "bad" achievement you get
  • when you lose all 3 lives, you get down a level
  • every time you max the exp for your current level, you level up
  • every time you level up, your lives reset
  • some times you can get temporary extra hearts (opened a new project, etc)
  • accumulative achievements should get more exp for larger achievements

There is a $5 open bounty on this issue. Add to the bounty at Bountysource.

Wait for GitHub fix on code reviewer removed event

Currently, on the code review webhooks, there's an event called review_request_removed, but there's not enough data on it to know which reviewer was removed

I email GitHub about it and I'll continue implementing that event once they deal with this issue

V2.0: Save Pull Request data to DB until the MERGED, CLOSED, or STALE

Save Pull Request data to DB for a period

FEATURE

Heroku keeps resetting dynos every now and then and we lose data on PRs that are open for a long time.

We should keep PR data in a table that deletes stale data (PR that haven't been updated for other a month or whatever we agree on :-)), or just finished.

When we get a webhook event from GitHub, we'll fetch the PR data from the database and update it with the new delta


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

V2.0: Webhook Manager Module

Webhook Manager Module

FEATURE

This should be the path to get webhooks from different cloud version control platforms. Basically, it's just an orchestrator for the Version Control Engines.

it should:

  • load all VCE (aka Version Control Engines)
  • on each webhook request, run the VCE identifier (which will return true if the correct engine to use was found)
  • on each webhook request, run the VCE translator to translate raw PR data from the cloud version control platform, to PR type achievibit uses
  • on each webhook request, update the PR data, and on merge, also call the AchievementsService to grant achievements accordingly.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Achievements aren't being added to DB

There's a problem with repository insertion to users. the DB returns an error and the achievements aren't being given to the user.

Take that into consideration. I'll try and fix this one later today or at the weekend

An in-range update of request is breaking the build ๐Ÿšจ

โ˜๏ธ Greenkeeperโ€™s updated Terms of Service will come into effect on April 6th, 2018.

Version 2.84.0 of request was just published.

Branch Build failing ๐Ÿšจ
Dependency request
Current Version 2.83.0
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

request is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • โŒ continuous-integration/travis-ci/push The Travis CI build could not complete due to an error Details

Commits

The new version differs by 6 commits.

  • d77c839 Update changelog
  • 4b46a13 2.84.0
  • 0b807c6 Merge pull request #2793 from dvishniakov/2792-oauth_body_hash
  • cfd2307 Update hawk to 7.0.7 (#2880)
  • efeaf00 Fixed calculation of oauth_body_hash, issue #2792
  • 253c5e5 2.83.1

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those donโ€™t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot ๐ŸŒด

An in-range update of body-parser is breaking the build ๐Ÿšจ

Version 1.16.1 of body-parser just got published.

Branch Build failing ๐Ÿšจ
Dependency body-parser
Current Version 1.16.0
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

As body-parser is a direct dependency of this project this is very likely breaking your project right now. If other packages depend on you itโ€™s very likely also breaking them.
I recommend you give this issue a very high priority. Iโ€™m sure you can resolve this ๐Ÿ’ช


Status Details
  • โŒ continuous-integration/travis-ci/push The Travis CI build failed Details

  • โœ… coverage/coveralls First build on greenkeeper/body-parser-1.16.1 at 39.32% Details

Release Notes 1.16.1
  • deps: [email protected]
    • Fix deprecation messages in WebStorm and other editors
    • Undeprecate DEBUG_FD set to 1 or 2
Commits

The new version differs by 5 commits .

See the full diff.

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot ๐ŸŒด

[BUG] - nit pick - fix achievibit url in README.md

when adding Achievibit to another repo and trying to add Achievibit's url as a webhook, I get to following error:
this doesn't look like a valid URL
it can be fixed by prefixing the url with http://

sorry about this uber-minor nit pick.

An in-range update of mocha is breaking the build ๐Ÿšจ

Version 3.4.0 of mocha just got published.

Branch Build failing ๐Ÿšจ
Dependency mocha
Current Version 3.3.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As mocha is โ€œonlyโ€ a devDependency of this project it might not break production or downstream projects, but โ€œonlyโ€ your build or test tools โ€“ preventing new deploys or publishes.

I recommend you give this issue a high priority. Iโ€™m sure you can resolve this ๐Ÿ’ช

Status Details
  • โŒ continuous-integration/travis-ci/push The Travis CI build failed Details

Release Notes v3.4.0

Mocha is now moving to a quicker release schedule: when non-breaking changes are merged, a release should happen that week.

This week's highlights:

  • allowUncaught added to commandline as --allow-uncaught (and bugfixed)
  • warning-related Node flags

๐ŸŽ‰ Enhancements

๐Ÿ› Fixes

๐Ÿ”ฉ Other

Commits

The new version differs by 9 commits0.

  • 7554b31 Add Changelog for v3.4.0
  • 9f7f7ed Add --trace-warnings flag
  • 92561c8 Add --no-warnings flag
  • ceee976 lint test/integration/fixtures/simple-reporter.js
  • dcfc094 Revert "use semistandard directly"
  • 93392dd no special case for macOS running Karma locally
  • 4d1d91d --allow-uncaught cli option
  • fb1e083 fix allowUncaught in browser
  • 4ed3fc5 Add license report and scan status

false

See the full diff

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot ๐ŸŒด

An in-range update of ngrok is breaking the build ๐Ÿšจ

Version 2.2.16 of ngrok just got published.

Branch Build failing ๐Ÿšจ
Dependency ngrok
Current Version 2.2.15
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

ngrok is a direct dependency of this project this is very likely breaking your project right now. If other packages depend on you itโ€™s very likely also breaking them.
I recommend you give this issue a very high priority. Iโ€™m sure you can resolve this ๐Ÿ’ช

Status Details
  • โŒ continuous-integration/travis-ci/push The Travis CI build could not complete due to an error Details

Commits

The new version differs by 5 commits.

See the full diff

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot ๐ŸŒด

V2.0: Create a Nest seed with basic functionalities

achievibit's build system should be pretty basic.

We need the following things:

  • a watch system to restart the server on file changes automatically
  • maybe a setup function to start a mongodb instance locally (so developers can just start testing their achievements)
  • a function to reset the local mongodb achievibit db to start from scratch easily

@ortichon tell me if you're up for one of those.

An in-range update of nunjucks is breaking the build ๐Ÿšจ

โ˜๏ธ Greenkeeperโ€™s updated Terms of Service will come into effect on April 6th, 2018.

Version 3.1.1 of nunjucks was just published.

Branch Build failing ๐Ÿšจ
Dependency nunjucks
Current Version 3.1.0
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

nunjucks is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • โŒ continuous-integration/travis-ci/push The Travis CI build could not complete due to an error Details

Commits

The new version differs by 7 commits.

  • 6f3e4a3 v3.1.1
  • eed7b2d Fix bug that broke template caching. fixes #1074
  • db8e3c3 Fix error when running npm install nunjucks --no-bin-links
  • 2c97201 try/catch require of chokidar to make it truly optional
  • a65d3b8 bower forbids minified js in the main property
  • 2c98065 Add nunjucks folder to bower.json ignore
  • 470181d Prepare for next release

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those donโ€™t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot ๐ŸŒด

implement user properties: level \ exp \ lives \ penalties and rewards

this is what I'm thinking right now, but this is an open discussion.

  • each user starts at level 1, with 0 exp, and 3 lives
  • you gain experience for each "good" achievement you get (X points)
  • you lose a life for each "bad" achievement you get
  • when you lose all 3 lives, you get down a level
  • every time you max the exp for your current level, you level up
  • every time you level up, your lives reset
  • some times you can get temporary extra hearts (opened a new project, etc)
  • accumulative achievements should get more exp for larger achievements

V2.0: Send updates to clients based on web sockets

Send updates to clients based on web sockets

FEATURE

For a logged in user:

  • open a socket to listen to user events and show an achievement banner when a user gets an achievement
  • for future features: remove a heart or add a heart to the user lives, or notify the client on additional trophies and XP

for anonymous users:

  • on specific user pages, get updates on that user to refresh the staled data
  • same for organizations
  • for now, the homepage should not listen to any web sockets for anonymous users

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

V2.0: oAuth (with future proofing)

oAuth (with future proofing)

FEATURE

We want to implement oAuth in version 2.0 of achievibit.

Basically, this is the functionality we want:

  • User can login with GitHub | GitLab | BitBucket using nest+passport

    we can use passport strategies for GitHub, GitLab, & BitBucket
    more strategies can be found here

  • User is stored to a separate table that holds authenticated users (which is different than users who got achievements but never logged in)
  • User can login with multiple services at the same time. Identifier should be the email address which is unique (at least the primary AFAIK)

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

[ACHIEVEMENT] IM THE DEVIL I LIKE METAL

similar to Optimus Prime, this achievement is given when a pull request id is only made out of at least 2 '6':

So:
id: 6 won't get the achievement

But 66, 666, and so on, will.

please write unit tests for this achievement. Unit tests are located in the test folder and should cover isSequenceOfSixes(number) and getting the achievement. should cover both success and failure scenarios (look at other files for examples)

achievement image names should be camelCase of the achievement name.

Reference

It's a Tenacious D reference to the movie The Pick of Destiny. Usually, the metadata is as follows:

name: the name of the achievement. Usually a quote or word-play on a pop-culture reference
short: additional pop-culture one-liner
description: mainly tells the user why he got the achievement. It should be informative but can also contain fun references :-)

So here, I would suggest the following (to be in line with the Tenacious D references):

name: I'm the devil I love metal

image: https://goo.gl/images/vy384p

short: There's two option I'm suggesting: either the quote of the next line in the song: "Check this riff, it's fucking tasty" or the quote the devil says at the start of the song: "I AM COMPLETE!"

description:

your pull request id (<id_number>) summoned the devil himself!

I hope that code you submitted was a masterpiece, or you're gonna gargle mayonnaise

Thses are only suggestions. If you have a better name, short, or description, go ahead :-)

Add "Recent Achievemnts" database function for organization page

RECENT ACHIEVEMENTS

FEATURE

For the organization page, I want to add a "Recent Achievements" section that will show the latest 5 or 10 achievements users from that organization got.

Basically, it should receive an organization name as a parameter, and query the database to get that organization data, then, search all the users in that organization for all of their achievements, **sorted by createdOn, and return the 5 or 10 first achievements (last received)

[FEATURE] add api endpoint to get all achievements of a specific pull request

API GET ALL PR ACHIEVEMENTS

FEATURE

we should add a way to get all pull request related achievements.
Here is what I'm thinking (and why):

  • /achievements/:repo_owner:/ - get all achievements of a specific owner (all repos)
  • /achievements/:repo_owner:/:repo:/ - get all achievements of a specific repo
  • /achievements/:repo_owner:/:repo:/:pr_id: - get all achievements of a specific pull request
  • /achievements/:repo_owner:/:repo:/:pr_id:/:username:/ - get all achievements of a specific pull request of a specific user

maybe we can have it this way:

  • /achievements/:repo_owner:/ - get all achievements of a specific owner (all repos) [SVG] (user bio or personal website \ cv)
  • /achievements/:repo_owner:/:repo:/ - get all achievements of a specific repo [SVG] (show on a repo's README.md)
  • /achievements/:repo_owner:/:repo:/:pr_id: - get all achievements of a specific pull request [SVG] (show in a pull request comment)
  • /achievements/:repo_owner:/:repo:/:pr_id:/:username:/ - get all achievements of a specific pull request of a specific user [SVG] (show in user site)
  • /raw/achievements/:repo_owner:/ - get all achievements of a specific owner (all repos) [SVG] (user bio or personal website \ cv)
  • /raw/achievements/:repo_owner:/:repo:/ - get all achievements of a specific repo [JSON]
  • /raw/achievements/:repo_owner:/:repo:/:pr_id: - get all achievements of a specific pull request [JSON]
  • /raw/achievements/:repo_owner:/:repo:/:pr_id:/:username:/ - get all achievements of a specific pull request of a specific user [JSON]

RAW paths can be used for the data itself. in a future kibibit cli for example, we can show achievements when a feature is merged.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

V2.0: Move to git flow

IMPLEMENT GIT FLOW

FEATURE

create a develop branch and start moving the new animations into the application itself to start preparing for an eye candy launch to the github marketplace

I'm hoping to finish the kibibit-cli to enforce some git flow rules in an easy way (instead of saying lots of rules in the CONTRIBUTING.MD file about git flow, we'll simply ask users to use the cli which will be installed with this repo)

Basically this will help us keep changelogs and update with release versions


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Issue with biWinning.achievement

It gives the achievement even if you only have 1 commit without anything in it. Makes it really easy to achieve,

Should consider making it for at least 2 commits in a PR maybe,

Not sure if this is a bug, but wanted to communicate this issue.

Integrate more cloud version controls so we get some of that action :-)

here are all the events that we can listen to.

They're pretty much the same as GitHub. We need to check if we can support the same events achieibit already listens to.

Some design points

Here's what we need

  • a way to map GitHub's, GitLab's and BitBucket's data into an achievibit data type (for unity)
  • a way to map GitHub's, GitLab's and BitBucket's event names into achievibit events
  • a way to map the location of the data in each system. for example, GitHub event names are placed in headers.x-github-event while GitLab event names are placed in headers.x-gitlab-event
  • a function that gets achievibit's event name and data and saves the new data to the accumulative data

Suggestions:

Interfaces

  • WebhookEvent - enum of all the events achievibit supports
  • WebhookData - a data structure that unifies GitHub, GitLab, and BitBucket webhook data structures to a single achievibit interface

Decorators

  • @WebhookMapper(lodashSelector: string) - takes a specific path inside the request object to map to the correct parameter. this allows the event and data parameter to be mapped to the correct paths

Pipes

  • WebhookEventPipe(engine: string) - gets the data from the @WebhookMapper decorator, and transforms that data to achievibit's data, based on the given engine

Example

should work something like this:

  handleWebhooksEvents(
    @WebhookMapper('headers.x-github-event', new WebhookEventPipe('GitHub')) event: WebhookEvent,
   @WebhookMapper('body', new WebhookEventPipe('GitHub')) eventData: WebhookData) {
    // this function will use the achievibit data interface instead of the original one
  }

you can also create a class that inherits the custom decorators for specific engines:

  handleGitHubWebhooksEvents(@GitHubEvent() event: WebhookEvent, @GitHubData() eventData: WebhookData) {
    // this function will use the achievibit data interface instead of the original one
  }

then, based on the provider, the post endpoint will select which WebhookEvents handler to use (implemented inside the engine itself)

sdf

BUG OR FEATURE NAME

FEATURE || BUG (keep only relevant sub-header)

describe your bug \ feature

try and add details as needed. think that someone else needs to understand what you want without being inside your head

Version 10 of node.js has been released

Version 10 of Node.js (code name Dubnium) has been released! ๐ŸŽŠ

To see what happens to your code in Node.js 10, Greenkeeper has created a branch with the following changes:

  • Added the new Node.js version to your .travis.yml

If youโ€™re interested in upgrading this repo to Node.js 10, you can open a PR with these changes. Please note that this issue is just intended as a friendly reminder and the PR as a possible starting point for getting your code running on Node.js 10.

More information on this issue

Greenkeeper has checked the engines key in any package.json file, the .nvmrc file, and the .travis.yml file, if present.

  • engines was only updated if it defined a single version, not a range.
  • .nvmrc was updated to Node.js 10
  • .travis.yml was only changed if there was a root-level node_js that didnโ€™t already include Node.js 10, such as node or lts/*. In this case, the new version was appended to the list. We didnโ€™t touch job or matrix configurations because these tend to be quite specific and complex, and itโ€™s difficult to infer what the intentions were.

For many simpler .travis.yml configurations, this PR should suffice as-is, but depending on what youโ€™re doing it may require additional work or may not be applicable at all. Weโ€™re also aware that you may have good reasons to not update to Node.js 10, which is why this was sent as an issue and not a pull request. Feel free to delete it without comment, Iโ€™m a humble robot and wonโ€™t feel rejected ๐Ÿค–


FAQ and help

There is a collection of frequently asked questions. If those donโ€™t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot ๐ŸŒด

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.