Ghost/ghost/release-utils
2019-03-27 12:08:01 +00:00
..
lib 🐛 Fixed changelog getting set as empty 2019-03-18 00:43:40 +05:30
test 🐛 Fixed changelog entry with emoji not being detected 2019-03-14 16:51:47 +01:00
.eslintrc.js Added initial implementation of @tryghost/release-utils (#7) 2019-03-12 21:53:32 +01:00
LICENSE Added initial implementation of @tryghost/release-utils (#7) 2019-03-12 21:53:32 +01:00
package.json Update dependency sinon to v7.3.1 2019-03-27 12:08:01 +00:00
README.md 🐛 Fixed changelog getting set as empty 2019-03-18 00:43:40 +05:30

Release Utils

Install

npm install @tryghost/release-utils --save

or

yarn add @tryghost/release-utils

Usage

Create Gist:

const releaseUtils = require('@tryghost/release-utils');


releaseUtils
    .gist
    .create({
        userAgent: String,
        gistName: String,
        gistDescription: String,
        changelogPath: String [Path on Disk]
        github: {
            username: String
            token: String
        },
        isPublic: Boolean [optional, Default: true]
    })

Create Changelog:

const releaseUtils = require('@tryghost/release-utils');


const changelog = new releaseUtils.Changelog({
    changelogPath: String [Path on Disk],
    folder: String [Path on Disk]
});

changelog
    .write({
        githubRepoPath: String,
        lastVersion: String
    })
    .write({
        githubRepoPath: String
        lastVersion: String
        append: Boolean [optional, Default: false],
        folder: String [optional, Path on Disk]
    })
    .sort()
    .clean()

Create & Upload Release:

const releaseUtils = require('@tryghost/release-utils');


releaseUtils
    .releases
    .create({
        tagName: String,
        releaseName: String,
        userAgent: String,
        uri: String,
        github: {
            username: String,
            token: String,
        },
        changelogPath: String [Path on Disk] OR Array[{
            changelogPath: String [Path on Disk],
            content: Array [optional]
        }],
        gistUrl: String [optional],
        preRelease: Boolean [optional, Default: false],
        draft: Boolean [optional, Default: true],
        filterEmojiCommits: Boolean [optional, Default: true],
        content: Array [optional]
    });

releaseUtils
    .releases
    .uploadZip({
        github: {
            username: String,
            token: String
        },
        zipPath: String [Path on Disk],
        uri: String,
        userAgent: String
    })

Develop

This is a mono repository, managed with lerna.

Follow the instructions for the top-level repo.

  1. git clone this repo & cd into it as usual
  2. Run yarn to install top-level dependencies.

Run

  • yarn dev

Test

  • yarn lint run just eslint
  • yarn test run lint and tests

Copyright & License

Copyright (c) 2019 Ghost Foundation - Released under the MIT license.