Code payload parser and formatter
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:
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
:
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 diffTo execute test suite run:
rake test
The MIT License (MIT)
Copyright © 2013-2015 Magnum CI