magnum-payload
Ruby library to parse and process JSON-formatted payloads from code hosting providers. It accepts any commits payloads and transforms them into identical data structures.
If you need to integrate web-hooks from Github, Bitbucket or Gitlab this is definitely worth checking out. Check examples for details.
Supported platforms
You can integrate with the following providers:
- Github - git
- Bitbucket - git, mercurial
- Gitlab - git
- Beanstalkapp - git, mercurial, subversion
- CodebaseHQ - git
- Custom Implementation - git
Installation
Install via rubygems:
gem install magnum-payload
Or with bundler:
gem "magnum-payload", require: "magnum/payload"
Usage
Example:
require "magnum/payload"
# Shorthand method to parse payload
Magnum::Payload.parse("github", "JSON") # => Magnum::Payload::Github
Magnum::Payload.parse("bitbucket", "JSON") # => Magnum::Payload::Bitbucket
Magnum::Payload.parse("gitlab", "JSON") # => Magnum::Payload::Gitlab
# Or initialize a payload class directly
payload = Magnum::Payload::Github.new("JSON data")
# Check if payload should be skipped
payload.skip?
payload.
See Payload Attributes
section for payload instance details.
Check examples
directory for code samples.
Payload Classes
All payload classes are inherited from Magnum::Payload::Base
:
- Magnum::Payload::Github
- Magnum::Payload::Gitlab
- Magnum::Payload::Beanstalk
- Magnum::Payload::Bitbucket
- Magnum::Payload::Custom
Payload Attributes
Attributes are depending on payload class.
raw_data
- Original payload string or hashdata
- Formatted hash instanceskip
- Skip flag that indicated full payload skip (deleted head, etc)commit
- Code revision (SHA1, number)branch
- Code branch name (git, hg, svn)author
- Commit author namecommitter
- Commit committer name (git)message
- Commit message textcommitter_email
- Committer email (git)author_email
- Author email (git)commit_url
- Direct URL to view commit diffcompare_url
- Direct URL to view commits diff
Test Suite
To execute test suite run:
rake test
Contact
- Magnum CI
- https://magnum-ci.com
- [email protected]
License
The MIT License (MIT)
Copyright (c) 2013-2014 Magnum CI