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.
You can integrate with the following providers:
- Github - git
- Bitbucket - git, mercurial
- Gitlab - git
- Beanstalkapp - git, mercurial, subversion
- CodebaseHQ - git
- Custom Implementation - git
Install via rubygems:
gem install magnum-payload
Or with bundler:
gem "magnum-payload", require: "magnum/payload"
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.skip_message?
See Payload Attributes
section for payload instance details.
Check examples
directory for code samples.
All payload classes are inherited from Magnum::Payload::Base
:
- Magnum::Payload::Github
- Magnum::Payload::Gitlab
- Magnum::Payload::Beanstalk
- Magnum::Payload::Bitbucket
- Magnum::Payload::Custom
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
To execute test suite run:
rake test
- Magnum CI
- https://magnum-ci.com
- [email protected]
The MIT License (MIT)
Copyright (c) 2013-2015 Magnum CI