Files
probot.github.io/api/0.9.1/Robot.html
2017-08-18 10:53:56 -05:00

729 lines
11 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Robot - Documentation</title>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
<label for="nav-trigger" class="overlay"></label>
<nav>
<li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading">Classes</li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Context.html">Context</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#config">config</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#issue">issue</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#repo">repo</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Robot.html">Robot</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#on">on</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#route">route</a></span></li><li class="nav-heading"><a href="global.html">Globals</a></li>
</nav>
<div id="main">
<h1 class="page-title">Robot</h1>
<section>
<header>
<h2>
Robot
</h2>
<div class="class-description"><p>The <code>robot</code> parameter available to plugins</p></div>
</header>
<article>
<div class="container-overview">
<div class="section-method">
<h2>Constructor</h2>
<h4 class="name" id="Robot"><span class="type-signature"></span>new Robot<span class="signature">()</span><span class="type-signature"></span></h4>
<h5 class="subsection-title">Properties:</h5>
<table class="props">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>log</code></td>
<td class="type">
<span class="param-type"><code><a href="global.html#logger">logger</a></code></span>
</td>
<td class="description last"><p>A logger</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="robot.js.html">robot.js</a>, <a href="robot.js.html#line12">line 12</a>
</li></ul></dd>
</dl>
</div>
</div>
<h3 class="subsection-title">Methods</h3>
<div class="section-method">
<h4 class="name" id="on"><span class="type-signature"></span>on<span class="signature">(event, callback)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Listen for <a href="https://developer.github.com/webhooks/">GitHub webhooks</a>,
which are fired for almost every significant action that users take on
GitHub.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="robot.js.html">robot.js</a>, <a href="robot.js.html#line86">line 86</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>event</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last">
<p>the name of the <a href="https://developer.github.com/webhooks/#events">GitHub webhook
event</a>. Most events also
include an &quot;action&quot;. For example, the * <a href="https://developer.github.com/v3/activity/events/types/#issuesevent"><code>issues</code></a>
event has actions of <code>assigned</code>, <code>unassigned</code>, <code>labeled</code>, <code>unlabeled</code>,
<code>opened</code>, <code>edited</code>, <code>milestoned</code>, <code>demilestoned</code>, <code>closed</code>, and <code>reopened</code>.
Often, your bot will only care about one type of action, so you can append
it to the event name with a <code>.</code>, like <code>issues.closed</code>.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code><a href="Robot.html#~webhookCallback">Robot~webhookCallback</a></code></span>
</td>
<td class="description last">
<p>a function to call when the
webhook is received.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>robot.on('push', context => {
// Code was just pushed.
});
robot.on('issues.opened', context => {
// An issue was just opened.
});</code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="route"><span class="type-signature"></span>route<span class="signature">(path)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Get an <a href="http://expressjs.com">express</a> router that can be used to
expose HTTP endpoints</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="robot.js.html">robot.js</a>, <a href="robot.js.html#line49">line 49</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>path</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last">
<p>the prefix for the routes</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<div class="param-desc">
<p><a href="http://expressjs.com/en/4x/api.html#router">express.Router</a></p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>module.exports = robot => {
// Get an express router to expose new HTTP endpoints
const app = robot.route('/my-plugin');
// Use any middleware
app.use(require('express').static(__dirname + '/public'));
// Add a new route
app.get('/hello-world', (req, res) => {
res.end('Hello World');
});
};</code></pre>
</div>
</div>
<h3 class="subsection-title">Type Definitions</h3>
<div class="section-method">
<h4 class="name" id="~webhookCallback"><span class="type-signature"></span>webhookCallback<span class="signature">(context)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Do the thing</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="robot.js.html">robot.js</a>, <a href="robot.js.html#line194">line 194</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>context</code></td>
<td class="type">
<span class="param-type"><code><a href="Context.html">Context</a></code></span>
</td>
<td class="description last">
<p>the context of the event that was triggered,
including <code>context.payload</code>, and helpers for extracting information from
the payload, which can be passed to GitHub API calls.</p>
<pre class="prettyprint source lang-js"><code> module.exports = robot => {
robot.on('push', context => {
// Code was pushed to the repo, what should we do with it?
robot.log(context);
});
};</code></pre>
</td>
</tr>
</tbody>
</table>
</div>
</article>
</section>
</div>
<br class="clear">
<footer>
Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Fri Aug 18 2017 10:53:55 GMT-0500 (CDT) using the Minami theme.
</footer>
<script>prettyPrint();</script>
<script src="scripts/linenumber.js"></script>
</body>
</html>