mirror of https://github.com/matrix-org/go-neb.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
363 lines
13 KiB
363 lines
13 KiB
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="theme-color" content="#375EAB">
|
|
|
|
<title>travisci - The Go Programming Language</title>
|
|
|
|
<link type="text/css" rel="stylesheet" href="../../../../../../lib/godoc/style.css">
|
|
|
|
<link rel="stylesheet" href="../../../../../../lib/godoc/jquery.treeview.css">
|
|
<script type="text/javascript">window.initFuncs = [];</script>
|
|
</head>
|
|
<body>
|
|
|
|
<div id='lowframe' style="position: fixed; bottom: 0; left: 0; height: 0; width: 100%; border-top: thin solid grey; background-color: white; overflow: auto;">
|
|
...
|
|
</div><!-- #lowframe -->
|
|
|
|
<div id="topbar" class="wide"><div class="container">
|
|
<div class="top-heading" id="heading-wide"><a href="http://localhost:6060/">The Go Programming Language</a></div>
|
|
<div class="top-heading" id="heading-narrow"><a href="http://localhost:6060/">Go</a></div>
|
|
<a href="index.html#" id="menu-button"><span id="menu-button-arrow">▽</span></a>
|
|
<form method="GET" action="http://localhost:6060/search">
|
|
<div id="menu">
|
|
<a href="http://localhost:6060/doc/">Documents</a>
|
|
<a href="http://localhost:6060/pkg/">Packages</a>
|
|
<a href="http://localhost:6060/project/">The Project</a>
|
|
<a href="http://localhost:6060/help/">Help</a>
|
|
<a href="http://localhost:6060/blog/">Blog</a>
|
|
|
|
<input type="text" id="search" name="q" class="inactive" value="Search" placeholder="Search">
|
|
</div>
|
|
</form>
|
|
|
|
</div></div>
|
|
|
|
|
|
|
|
<div id="page" class="wide">
|
|
<div class="container">
|
|
|
|
|
|
<h1>Package travisci</h1>
|
|
|
|
|
|
|
|
|
|
<div id="nav"></div>
|
|
|
|
|
|
<!--
|
|
Copyright 2009 The Go Authors. All rights reserved.
|
|
Use of this source code is governed by a BSD-style
|
|
license that can be found in the LICENSE file.
|
|
-->
|
|
<!--
|
|
Note: Static (i.e., not template-generated) href and id
|
|
attributes start with "pkg-" to make it impossible for
|
|
them to conflict with generated attributes (some of which
|
|
correspond to Go identifiers).
|
|
-->
|
|
|
|
<script type='text/javascript'>
|
|
document.ANALYSIS_DATA = null;
|
|
document.CALLGRAPH = null;
|
|
</script>
|
|
|
|
|
|
|
|
<div id="short-nav">
|
|
<dl>
|
|
<dd><code>import "github.com/matrix-org/go-neb/services/travisci"</code></dd>
|
|
</dl>
|
|
<dl>
|
|
<dd><a href="index.html#pkg-overview" class="overviewLink">Overview</a></dd>
|
|
<dd><a href="index.html#pkg-index" class="indexLink">Index</a></dd>
|
|
|
|
|
|
</dl>
|
|
</div>
|
|
<!-- The package's Name is printed as title by the top-level template -->
|
|
<div id="pkg-overview" class="toggleVisible">
|
|
<div class="collapsed">
|
|
<h2 class="toggleButton" title="Click to show Overview section">Overview ▹</h2>
|
|
</div>
|
|
<div class="expanded">
|
|
<h2 class="toggleButton" title="Click to hide Overview section">Overview ▾</h2>
|
|
<p>
|
|
Package travisci implements a Service capable of processing webhooks from Travis-CI.
|
|
</p>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div id="pkg-index" class="toggleVisible">
|
|
<div class="collapsed">
|
|
<h2 class="toggleButton" title="Click to show Index section">Index ▹</h2>
|
|
</div>
|
|
<div class="expanded">
|
|
<h2 class="toggleButton" title="Click to hide Index section">Index ▾</h2>
|
|
|
|
<!-- Table of contents for API; must be named manual-nav to turn off auto nav. -->
|
|
<div id="manual-nav">
|
|
<dl>
|
|
|
|
<dd><a href="index.html#pkg-constants">Constants</a></dd>
|
|
|
|
|
|
|
|
|
|
|
|
<dd><a href="index.html#Service">type Service</a></dd>
|
|
|
|
|
|
|
|
<dd> <a href="index.html#Service.OnReceiveWebhook">func (s *Service) OnReceiveWebhook(w http.ResponseWriter, req *http.Request, cli *matrix.Client)</a></dd>
|
|
|
|
|
|
<dd> <a href="index.html#Service.PostRegister">func (s *Service) PostRegister(oldService types.Service)</a></dd>
|
|
|
|
|
|
<dd> <a href="index.html#Service.Register">func (s *Service) Register(oldService types.Service, client *matrix.Client) error</a></dd>
|
|
|
|
|
|
|
|
</dl>
|
|
</div><!-- #manual-nav -->
|
|
|
|
|
|
|
|
|
|
<h4>Package files</h4>
|
|
<p>
|
|
<span style="font-size:90%">
|
|
|
|
<a href="http://localhost:6060/src/github.com/matrix-org/go-neb/services/travisci/travisci.go">travisci.go</a>
|
|
|
|
<a href="http://localhost:6060/src/github.com/matrix-org/go-neb/services/travisci/verify.go">verify.go</a>
|
|
|
|
</span>
|
|
</p>
|
|
|
|
</div><!-- .expanded -->
|
|
</div><!-- #pkg-index -->
|
|
|
|
<div id="pkg-callgraph" class="toggle" style="display: none">
|
|
<div class="collapsed">
|
|
<h2 class="toggleButton" title="Click to show Internal Call Graph section">Internal call graph ▹</h2>
|
|
</div> <!-- .expanded -->
|
|
<div class="expanded">
|
|
<h2 class="toggleButton" title="Click to hide Internal Call Graph section">Internal call graph ▾</h2>
|
|
<p>
|
|
In the call graph viewer below, each node
|
|
is a function belonging to this package
|
|
and its children are the functions it
|
|
calls—perhaps dynamically.
|
|
</p>
|
|
<p>
|
|
The root nodes are the entry points of the
|
|
package: functions that may be called from
|
|
outside the package.
|
|
There may be non-exported or anonymous
|
|
functions among them if they are called
|
|
dynamically from another package.
|
|
</p>
|
|
<p>
|
|
Click a node to visit that function's source code.
|
|
From there you can visit its callers by
|
|
clicking its declaring <code>func</code>
|
|
token.
|
|
</p>
|
|
<p>
|
|
Functions may be omitted if they were
|
|
determined to be unreachable in the
|
|
particular programs or tests that were
|
|
analyzed.
|
|
</p>
|
|
<!-- Zero means show all package entry points. -->
|
|
<ul style="margin-left: 0.5in" id="callgraph-0" class="treeview"></ul>
|
|
</div>
|
|
</div> <!-- #pkg-callgraph -->
|
|
|
|
|
|
<h2 id="pkg-constants">Constants</h2>
|
|
|
|
<pre>const <span id="DefaultTemplate">DefaultTemplate</span> = (`%{repository}#%{build_number} (%{branch} - %{commit} : %{author}): %{message}
|
|
Change view : %{compare_url}
|
|
Build details : %{build_url}`)</pre>
|
|
<p>
|
|
DefaultTemplate contains the template that will be used if none is supplied.
|
|
This matches the default mentioned at: <a href="https://docs.travis-ci.com/user/notifications#Customizing-slack-notifications">https://docs.travis-ci.com/user/notifications#Customizing-slack-notifications</a>
|
|
</p>
|
|
|
|
|
|
<pre>const <span id="ServiceType">ServiceType</span> = "travis-ci"</pre>
|
|
<p>
|
|
ServiceType of the Travis-CI service.
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h2 id="Service">type <a href="http://localhost:6060/src/github.com/matrix-org/go-neb/services/travisci/travisci.go?s=1582:3020#L41">Service</a></h2>
|
|
<pre>type Service struct {
|
|
<a href="../../types/index.html">types</a>.<a href="../../types/index.html#DefaultService">DefaultService</a>
|
|
|
|
<span class="comment">// The URL which should be added to .travis.yml - Populated by Go-NEB after Service registration.</span>
|
|
WebhookURL <a href="../../../../../builtin/index.html#string">string</a> `json:"webhook_url"`
|
|
<span class="comment">// A map from Matrix room ID to Github-style owner/repo repositories.</span>
|
|
Rooms map[<a href="../../../../../builtin/index.html#string">string</a>]struct {
|
|
<span class="comment">// A map of "owner/repo" to configuration information</span>
|
|
Repos map[<a href="../../../../../builtin/index.html#string">string</a>]struct {
|
|
<span class="comment">// The template string to use when creating notifications.</span>
|
|
<span class="comment">//</span>
|
|
<span class="comment">// This is identical to the format of Slack Notifications for Travis-CI:</span>
|
|
<span class="comment">// https://docs.travis-ci.com/user/notifications#Customizing-slack-notifications</span>
|
|
<span class="comment">//</span>
|
|
<span class="comment">// The following variables are available:</span>
|
|
<span class="comment">// repository_slug: your GitHub repo identifier (like svenfuchs/minimal)</span>
|
|
<span class="comment">// repository_name: the slug without the username</span>
|
|
<span class="comment">// build_number: build number</span>
|
|
<span class="comment">// build_id: build id</span>
|
|
<span class="comment">// branch: branch build name</span>
|
|
<span class="comment">// commit: shortened commit SHA</span>
|
|
<span class="comment">// author: commit author name</span>
|
|
<span class="comment">// commit_message: commit message of build</span>
|
|
<span class="comment">// commit_subject: first line of the commit message</span>
|
|
<span class="comment">// result: result of build</span>
|
|
<span class="comment">// message: Travis CI message to the build</span>
|
|
<span class="comment">// duration: total duration of all builds in the matrix</span>
|
|
<span class="comment">// elapsed_time: time between build start and finish</span>
|
|
<span class="comment">// compare_url: commit change view URL</span>
|
|
<span class="comment">// build_url: URL of the build detail</span>
|
|
Template <a href="../../../../../builtin/index.html#string">string</a> `json:"template"`
|
|
} `json:"repos"`
|
|
} `json:"rooms"`
|
|
<span class="comment">// contains filtered or unexported fields</span>
|
|
}</pre>
|
|
<p>
|
|
Service contains the Config fields for the Travis-CI service.
|
|
</p>
|
|
<p>
|
|
This service will send notifications into a Matrix room when Travis-CI sends
|
|
webhook events to it. It requires a public domain which Travis-CI can reach.
|
|
Notices will be sent as the service user ID.
|
|
</p>
|
|
<p>
|
|
Example JSON request:
|
|
</p>
|
|
<pre>{
|
|
rooms: {
|
|
"!ewfug483gsfe:localhost": {
|
|
repos: {
|
|
"matrix-org/go-neb": {
|
|
template: "%{repository}#%{build_number} (%{branch} - %{commit} : %{author}): %{message}\nBuild details : %{build_url}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h3 id="Service.OnReceiveWebhook">func (*Service) <a href="http://localhost:6060/src/github.com/matrix-org/go-neb/services/travisci/travisci.go?s=6648:6744#L171">OnReceiveWebhook</a></h3>
|
|
<pre>func (s *<a href="index.html#Service">Service</a>) OnReceiveWebhook(w <a href="../../../../../net/http/index.html">http</a>.<a href="../../../../../net/http/index.html#ResponseWriter">ResponseWriter</a>, req *<a href="../../../../../net/http/index.html">http</a>.<a href="../../../../../net/http/index.html#Request">Request</a>, cli *<a href="../../matrix/index.html">matrix</a>.<a href="../../matrix/index.html#Client">Client</a>)</pre>
|
|
<p>
|
|
OnReceiveWebhook receives requests from Travis-CI and possibly sends requests to Matrix as a result.
|
|
</p>
|
|
<p>
|
|
If the repository matches a known Github repository, a notification will be formed from the
|
|
template for that repository and a notice will be sent to Matrix.
|
|
</p>
|
|
<p>
|
|
Go-NEB cannot register with Travis-CI for webhooks automatically. The user must manually add the
|
|
webhook endpoint URL to their .travis.yml file:
|
|
</p>
|
|
<pre>notifications:
|
|
webhooks: <a href="http://go-neb-endpoint.com/notifications">http://go-neb-endpoint.com/notifications</a>
|
|
</pre>
|
|
<p>
|
|
See <a href="https://docs.travis-ci.com/user/notifications#Webhook-notifications">https://docs.travis-ci.com/user/notifications#Webhook-notifications</a> for more information.
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h3 id="Service.PostRegister">func (*Service) <a href="http://localhost:6060/src/github.com/matrix-org/go-neb/services/travisci/travisci.go?s=9069:9125#L249">PostRegister</a></h3>
|
|
<pre>func (s *<a href="index.html#Service">Service</a>) PostRegister(oldService <a href="../../types/index.html">types</a>.<a href="../../types/index.html#Service">Service</a>)</pre>
|
|
<p>
|
|
PostRegister deletes this service if there are no registered repos.
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h3 id="Service.Register">func (*Service) <a href="http://localhost:6060/src/github.com/matrix-org/go-neb/services/travisci/travisci.go?s=8601:8682#L234">Register</a></h3>
|
|
<pre>func (s *<a href="index.html#Service">Service</a>) Register(oldService <a href="../../types/index.html">types</a>.<a href="../../types/index.html#Service">Service</a>, client *<a href="../../matrix/index.html">matrix</a>.<a href="../../matrix/index.html#Client">Client</a>) <a href="../../../../../builtin/index.html#error">error</a></pre>
|
|
<p>
|
|
Register makes sure the Config information supplied is valid.
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div id="footer">
|
|
Build version go1.6.<br>
|
|
Except as <a href="https://developers.google.com/site-policies#restrictions">noted</a>,
|
|
the content of this page is licensed under the
|
|
Creative Commons Attribution 3.0 License,
|
|
and code is licensed under a <a href="http://localhost:6060/LICENSE">BSD license</a>.<br>
|
|
<a href="http://localhost:6060/doc/tos.html">Terms of Service</a> |
|
|
<a href="http://www.google.com/intl/en/policies/privacy/">Privacy Policy</a>
|
|
</div>
|
|
|
|
</div><!-- .container -->
|
|
</div><!-- #page -->
|
|
|
|
<!-- TODO(adonovan): load these from <head> using "defer" attribute? -->
|
|
<script type="text/javascript" src="../../../../../../lib/godoc/jquery.js"></script>
|
|
<script type="text/javascript" src="../../../../../../lib/godoc/jquery.treeview.js"></script>
|
|
<script type="text/javascript" src="../../../../../../lib/godoc/jquery.treeview.edit.js"></script>
|
|
|
|
|
|
<script type="text/javascript" src="../../../../../../lib/godoc/godocs.js"></script>
|
|
|
|
</body>
|
|
</html>
|
|
|