@twyr/announce
Version:
CLI Tool and NPM Library for announcing a release on Github / Gitlab / etc. and on NPM
503 lines (498 loc) • 19 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<title>PublishCommandClass - Announce CLI - API Reference</title>
<meta name="description" content="Announce CLI - API Reference" />
<meta name="keywords" content="automation announce changelog cli console git github gitlab npm package publish release release-automation release-helper release-workflow semantic-release semantic-version semver semver-release terminal twyr version" />
<meta name="keyword" content="automation announce changelog cli console git github gitlab npm package publish release release-automation release-helper release-workflow semantic-release semantic-version semver semver-release terminal twyr version" />
<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="styles/prettify.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
<script src="scripts/nav.js" defer></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</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 class="wrap">
<input type="text" id="nav-search" placeholder="Search" />
<h2><a href="index.html">Home</a></h2>
<h2><a href="https://github.com/twyr/announce" target="_blank" class="menu-item" id="github_link">GitHub</a></h2>
<h3>Classes</h3>
<ul>
<li><a href="GitHubWrapper.html">GitHubWrapper</a>
<ul class='methods'>
<li data-type='method'><a href="GitHubWrapper.html#_fetchData">_fetchData</a></li>
<li data-type='method'><a href="GitHubWrapper.html#createRelease">createRelease</a></li>
<li data-type='method'><a href="GitHubWrapper.html#fetchCommitAuthorInformation">fetchCommitAuthorInformation</a></li>
<li data-type='method'><a href="GitHubWrapper.html#fetchCommitInformation">fetchCommitInformation</a></li>
<li data-type='method'><a href="GitHubWrapper.html#fetchReleaseInformation">fetchReleaseInformation</a></li>
<li data-type='method'><a href="GitHubWrapper.html#getCommitLink">getCommitLink</a></li>
</ul>
</li>
<li><a href="GitLabWrapper.html">GitLabWrapper</a>
<ul class='methods'>
<li data-type='method'><a href="GitLabWrapper.html#createRelease">createRelease</a></li>
<li data-type='method'><a href="GitLabWrapper.html#fetchCommitAuthorInformation">fetchCommitAuthorInformation</a></li>
<li data-type='method'><a href="GitLabWrapper.html#fetchCommitInformation">fetchCommitInformation</a></li>
<li data-type='method'><a href="GitLabWrapper.html#fetchReleaseInformation">fetchReleaseInformation</a></li>
<li data-type='method'><a href="GitLabWrapper.html#getCommitLink">getCommitLink</a></li>
</ul>
</li>
<li><a href="PrepareCommandClass.html">PrepareCommandClass</a>
<ul class='methods'>
<li data-type='method'><a href="PrepareCommandClass.html#_bumpVersion">_bumpVersion</a></li>
<li data-type='method'><a href="PrepareCommandClass.html#_computeNextVersion">_computeNextVersion</a></li>
<li data-type='method'><a href="PrepareCommandClass.html#_getCurrentVersion">_getCurrentVersion</a></li>
<li data-type='method'><a href="PrepareCommandClass.html#_getTargetFileList">_getTargetFileList</a></li>
<li data-type='method'><a href="PrepareCommandClass.html#_mergeOptions">_mergeOptions</a></li>
<li data-type='method'><a href="PrepareCommandClass.html#_setupLogger">_setupLogger</a></li>
<li data-type='method'><a href="PrepareCommandClass.html#_setupTasks">_setupTasks</a></li>
<li data-type='method'><a href="PrepareCommandClass.html#execute">execute</a></li>
</ul>
</li>
<li><a href="PublishCommandClass.html">PublishCommandClass</a>
<ul class='methods'>
<li data-type='method'><a href="PublishCommandClass.html#_getUpstreamRepositoryInfo">_getUpstreamRepositoryInfo</a></li>
<li data-type='method'><a href="PublishCommandClass.html#_initializeGit">_initializeGit</a></li>
<li data-type='method'><a href="PublishCommandClass.html#_mergeOptions">_mergeOptions</a></li>
<li data-type='method'><a href="PublishCommandClass.html#_publishToNpm">_publishToNpm</a></li>
<li data-type='method'><a href="PublishCommandClass.html#_setupLogger">_setupLogger</a></li>
<li data-type='method'><a href="PublishCommandClass.html#_setupTasks">_setupTasks</a></li>
<li data-type='method'><a href="PublishCommandClass.html#execute">execute</a></li>
</ul>
</li>
<li><a href="ReleaseCommandClass.html">ReleaseCommandClass</a>
<ul class='methods'>
<li data-type='method'><a href="ReleaseCommandClass.html#_generateChangelog">_generateChangelog</a></li>
<li data-type='method'><a href="ReleaseCommandClass.html#_generateRelease">_generateRelease</a></li>
<li data-type='method'><a href="ReleaseCommandClass.html#_initializeGit">_initializeGit</a></li>
<li data-type='method'><a href="ReleaseCommandClass.html#_mergeOptions">_mergeOptions</a></li>
<li data-type='method'><a href="ReleaseCommandClass.html#_pushUpstream">_pushUpstream</a></li>
<li data-type='method'><a href="ReleaseCommandClass.html#_restoreCode">_restoreCode</a></li>
<li data-type='method'><a href="ReleaseCommandClass.html#_setupLogger">_setupLogger</a></li>
<li data-type='method'><a href="ReleaseCommandClass.html#_setupTasks">_setupTasks</a></li>
<li data-type='method'><a href="ReleaseCommandClass.html#_stashOrCommit">_stashOrCommit</a></li>
<li data-type='method'><a href="ReleaseCommandClass.html#_summarize">_summarize</a></li>
<li data-type='method'><a href="ReleaseCommandClass.html#_tagCode">_tagCode</a></li>
<li data-type='method'><a href="ReleaseCommandClass.html#execute">execute</a></li>
</ul>
</li>
</ul>
</nav>
<div id="main">
<h1 class="page-title">PublishCommandClass</h1>
<section>
<header>
<h2>
PublishCommandClass
</h2>
<div class="class-description usertext">
<p>The command class that handles all the publish operations.</p>
</div>
</header>
<article>
<div class="container-overview">
<h2>Constructor</h2>
<h4 class="name" id="PublishCommandClass"><span class="type-signature"></span>new PublishCommandClass<span class="signature">(mode)</span><span class="type-signature"></span></h4>
<p class="summary usertext">The command class that implements the "publish" step of the workflow.</p>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="commands_publish-command.js.html">commands/publish-command.js</a>, <a href="commands_publish-command.js.html#line19">line 19</a>
</li>
</ul>
</dd>
</dl>
<div class="description usertext">
<p>The command class that implements the "publish" step of the workflow.
Please see README.md for the details of what this step involves.</p>
</div>
<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>mode</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last">
<p>Set the current run mode - CLI or API</p>
</td>
</tr>
</tbody>
</table>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="_getUpstreamRepositoryInfo"><span class="type-signature">(async) </span>_getUpstreamRepositoryInfo<span class="signature">(ctxt, task)</span><span class="type-signature"> → {null}</span></h4>
<p class="summary usertext">
<p>Retrieves the upstream repository information, and sets a POJO with that info into the context.</p>
</p>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="commands_publish-command.js.html">commands/publish-command.js</a>, <a href="commands_publish-command.js.html#line184">line 184</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>ctxt</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last">
<p>Task context containing the options object returned by the _mergeOptions method</p>
</td>
</tr>
<tr>
<td class="name"><code>task</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last">
<p>Reference to the task that is running</p>
</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<p>Nothing.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">null</span>
</dd>
</dl>
<h4 class="name" id="_initializeGit"><span class="type-signature"></span>_initializeGit<span class="signature">(ctxt, task)</span><span class="type-signature"> → {null}</span></h4>
<p class="summary usertext">
<p>Creates a Git client instance for the current project repository and sets it on the context.</p>
</p>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="commands_publish-command.js.html">commands/publish-command.js</a>, <a href="commands_publish-command.js.html#line158">line 158</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>ctxt</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last">
<p>Task context containing the options object returned by the _mergeOptions method</p>
</td>
</tr>
<tr>
<td class="name"><code>task</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last">
<p>Reference to the task that is running</p>
</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<p>Nothing.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">null</span>
</dd>
</dl>
<h4 class="name" id="_mergeOptions"><span class="type-signature"></span>_mergeOptions<span class="signature">(options)</span><span class="type-signature"> → {object}</span></h4>
<p class="summary usertext">
<p>Merges options passed in with configured ones - and puts in sane defaults if neither is available.</p>
</p>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="commands_publish-command.js.html">commands/publish-command.js</a>, <a href="commands_publish-command.js.html#line78">line 78</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>options</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last">
<p>Parsed command-line options, or options passed in via API</p>
</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<p>Merged options - input options > configured options.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">object</span>
</dd>
</dl>
<h4 class="name" id="_publishToNpm"><span class="type-signature">(async) </span>_publishToNpm<span class="signature">(ctxt, task)</span><span class="type-signature"> → {null}</span></h4>
<p class="summary usertext">
<p>Retrieves the release assets from GitHub, and publishes them to NPM.</p>
</p>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="commands_publish-command.js.html">commands/publish-command.js</a>, <a href="commands_publish-command.js.html#line219">line 219</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>ctxt</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last">
<p>Task context containing the options object returned by the _mergeOptions method</p>
</td>
</tr>
<tr>
<td class="name"><code>task</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last">
<p>Reference to the task that is running</p>
</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<p>Nothing.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">null</span>
</dd>
</dl>
<h4 class="name" id="_setupLogger"><span class="type-signature"></span>_setupLogger<span class="signature">(options)</span><span class="type-signature"> → {object}</span></h4>
<p class="summary usertext">
<p>Creates a logger in CLI mode or uses the passed in logger object in API mode - and returns it.</p>
</p>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="commands_publish-command.js.html">commands/publish-command.js</a>, <a href="commands_publish-command.js.html#line96">line 96</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>options</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last">
<p>merged options object returned by the _mergeOptions method</p>
</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<p>Logger object with info / error functions.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">object</span>
</dd>
</dl>
<h4 class="name" id="_setupTasks"><span class="type-signature"></span>_setupTasks<span class="signature">()</span><span class="type-signature"> → {object}</span></h4>
<p class="summary usertext">
<p>Setup the list of tasks to be run</p>
</p>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="commands_publish-command.js.html">commands/publish-command.js</a>, <a href="commands_publish-command.js.html#line116">line 116</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>Tasks as Listr.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">object</span>
</dd>
</dl>
<h4 class="name" id="execute"><span class="type-signature">(async) </span>execute<span class="signature">(options)</span><span class="type-signature"> → {null}</span></h4>
<p class="summary usertext">
<p>The main method to publish the Git Host release to NPM.</p>
<p>This method does 2 things:</p>
<ul>
<li>Gets the URL to the compressed asset for the last/specified release from the Git Host</li>
<li>Publishes the asset to NPM</li>
</ul>
</p>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="commands_publish-command.js.html">commands/publish-command.js</a>, <a href="commands_publish-command.js.html#line38">line 38</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>options</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last">
<p>Parsed command-line options, or options passed in via API</p>
</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
<p>Nothing.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">null</span>
</dd>
</dl>
</article>
</section>
</div>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.7</a> using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
</footer>
<script>
prettyPrint();
</script>
<script src="scripts/polyfill.js"></script>
<script src="scripts/linenumber.js"></script>
<script src="scripts/search.js" defer></script>
</body>
</html>