github :: DeploymentStatusEvent
Triggered when a deployement's status changes.github :: PullRequestPullCommentEvent
Triggered when a comment is created on a pull request diff.github :: events $ GithubDeserializer
JsonDeserializer specific for Github objects.github $ DeploymentStatusEvent
Triggered when a deployement's status changes.github :: events $ GithubDeserializer
JsonDeserializer specific for Github objects.github $ PullRequestPullCommentEvent
Triggered when a comment is created on a pull request diff.Serializable::inspect
to show more useful information
curl :: native_curl
Binding of C libCurl which allow us to interact with network.serialization :: serialization_core
Abstract services to serialize Nit objects to different formatsdeserialize_json
and JsonDeserializer
serialize_to_json
and JsonSerializer
core :: union_find
union–find algorithm using an efficient disjoint-set data structure
# Events are emitted by Github Hooks.
#
# See <https://developer.github.com/v3/activity/events/types/>
module events
import api
intrude import json
# Github event stub.
class GithubEvent
serialize
# Event ID from Github.
var id: nullable String is writable
# Action performed by the event.
var action: nullable String is writable
# Repo where this event occured.
var repo: Repo is writable
end
# Triggered when a commit comment is created.
class CommitCommentEvent
super GithubEvent
serialize
# The `Comment` itself.
var comment: CommitComment is writable
end
# Triggered when a repository, branch, or tag is created.
class CreateEvent
super GithubEvent
serialize
# Oject type that was created.
#
# Can be one of `repository`, `branch`, or `tag`.
var ref_type: String is writable
# Git ref (or null if only a repository was created).
var ref: String is writable
# Name of the repo's default branch (usually master).
var master_branch: String is writable
# Repo's current description.
var description: nullable String is writable
end
# Triggered when a branch or a tag is deleted.
class DeleteEvent
super GithubEvent
serialize
# Object type that was deleted.
#
# Can be one of `repository`, `branch`, or `tag`.
var ref_type: String is writable
# Git ref (or null if only a repository was deleted).
var ref: String is writable
end
# Triggered when a new snapshot is deployed.
#
# Deployement are mainly used with integration testing servers.
class DeploymentEvent
super GithubEvent
serialize
# Commit SHA for which this deployment was created.
var sha: String is writable
# Name of repository for this deployment, formatted as :owner/:repo.
var name: String is writable
# Optional extra information for this deployment.
var payload: nullable String is writable
# Optional environment to deploy to.
# Default: "production"
var environment: nullable String is writable
# Optional human-readable description added to the deployment.
var description: nullable String is writable
end
# Triggered when a deployement's status changes.
class DeploymentStatusEvent
super GithubEvent
serialize
# New deployment state.
#
# Can be `pending`, `success`, `failure`, or `error`.
var state: String is writable
# Optional link added to the status.
var target_url: nullable String is writable
# Deployment hash that this status is associated with.
var deployment: String is writable
# Optional human-readable description added to the status.
var description: nullable String is writable
end
# Triggered when a user forks a repository.
class ForkEvent
super GithubEvent
serialize
# Created repository.
var forkee: Repo is writable
end
# Triggered when an issue comment is created.
class IssueCommentEvent
super GithubEvent
serialize
# `Issue` the comment belongs to.
var issue: Issue is writable
# The `Comment` itself.
var comment: IssueComment is writable
end
# Triggered when an event occurs on an issue.
#
# Triggered when an issue is assigned, unassigned, labeled, unlabeled,
# opened, closed or reopened.
class IssuesEvent
super GithubEvent
serialize
# The `Issue` itself.
var issue: Issue is writable
# Optional `Label` that was added or removed from the issue.
var lbl: nullable Label is writable, serialize_as("label")
# Optional `User` that was assigned or unassigned from the issue.
var assignee: nullable User is writable
end
# Triggered when a user is added as a collaborator to a repository.
class MemberEvent
super GithubEvent
serialize
# `User` that was added.
var member: User is writable
end
# Triggered when an event occurs on a pull request.
#
# Triggered when a pull request is assigned, unassigned,
# labeled, unlabeled, opened, closed, reopened, or synchronized.
class PullRequestEvent
super GithubEvent
serialize
# The pull request number.
var number: Int is writable
# The `PullRequest` itself.
var pull: PullRequest is writable
end
# Triggered when a comment is created on a pull request diff.
class PullRequestPullCommentEvent
super GithubEvent
serialize
# The `Comment` itself.
var comment: PullComment is writable
# `PullRequest` the `comment` belongs to.
var pull: PullRequest is writable
end
# Triggered when a repository branch is pushed to.
class PushEvent
super GithubEvent
serialize
# SHA of the HEAD commit on the repository.
var head_commit: Commit is writable
# Full Git ref that was pushed.
#
# Example: “refs/heads/master”
var ref: String is writable
# Number of commits in the push.
var size: nullable Int is writable
# Array of pushed commits.
var commits = new Array[Commit] is writable, optional
end
# Triggered when the status of a Git commit changes.
class StatusEvent
super GithubEvent
serialize
# The `Commit` itself.
var sha: String is writable
# New state.
#
# Can be `pending`, `success`, `failure`, or `error`.
var state: String is writable
# Optional human-readable description added to the status.
var description: nullable String is writable
# Optional link added to the status.
var target_url: nullable String is writable
# Array of branches containing the status' SHA.
#
# Each branch contains the given SHA,
# but the SHA may or may not be the head of the branch.
#
# The array includes a maximum of 10 branches.
var branches = new Array[Branch] is writable, optional
end
redef class GithubDeserializer
redef fun class_name_heuristic(json_object) do
if json_object.has_key("action") and json_object.has_key("commit") and json_object.has_key("comment") then
return "CommitCommentEvent"
else if json_object.has_key("ref") and json_object.has_key("master_branch") then
return "CreateEvent"
else if json_object.has_key("ref") and json_object.has_key("ref_type") then
return "DeleteEvent"
else if json_object.has_key("action") and json_object.has_key("sha") then
return "DeploymentEvent"
else if json_object.has_key("action") and json_object.has_key("state") then
return "DeploymentStatusEvent"
else if json_object.has_key("action") and json_object.has_key("forkee") then
return "ForkEvent"
else if json_object.has_key("action") and json_object.has_key("issue") and json_object.has_key("comment") then
return "IssueCommentEvent"
else if json_object.has_key("action") and json_object.has_key("issue") then
return "IssuesEvent"
else if json_object.has_key("action") and json_object.has_key("member") then
return "MemberEvent"
else if json_object.has_key("action") and json_object.has_key("number") then
return "PullRequestEvent"
else if json_object.has_key("action") and json_object.has_key("pull") and json_object.has_key("comment") then
return "PullRequestPullCommentEvent"
else if json_object.has_key("head_commit") and json_object.has_key("commits") then
return "PushEvent"
else if json_object.has_key("action") and json_object.has_key("branches") then
return "StatusEvent"
else if json_object.has_key("action") and json_object.has_key("issue") then
return "GithubEvent"
end
return super
end
end
lib/github/events.nit:15,1--281,3