All Projects → hypermodules → Gh Release

hypermodules / Gh Release

Licence: other
Create a github release for a node package.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Gh Release

change
A simple tool that automates generating and updating a changelog
Stars: ✭ 47 (-64.39%)
Mutual labels:  changelog, semver, release, tag
perfekt
Release, changelog and version your packages with perfe(k)t 👌 ease!
Stars: ✭ 15 (-88.64%)
Mutual labels:  changelog, semver, release
Bump
Bump updates the project's version, updates/creates the changelog, makes the bump commit, tags the bump commit and makes the release to GitHub. Opinionated but configurable.
Stars: ✭ 327 (+147.73%)
Mutual labels:  tag, release, changelog
Keep A Changelog
If you build software, keep a changelog.
Stars: ✭ 5,065 (+3737.12%)
Mutual labels:  tag, release, changelog
Releaser Tools
Create a GitHub/GitLab/etc. release using a project's commit messages and metadata.
Stars: ✭ 283 (+114.39%)
Mutual labels:  tag, release, changelog
Cli
🆑📍 Setup automated semver compliant package publishing
Stars: ✭ 272 (+106.06%)
Mutual labels:  release, changelog, semver
Release It
🚀 Automate versioning and package publishing
Stars: ✭ 4,773 (+3515.91%)
Mutual labels:  release, changelog, semver
Semantic Release
📦🚀 Fully automated version management and package publishing
Stars: ✭ 14,364 (+10781.82%)
Mutual labels:  release, changelog, semver
Standard Version
🏆 Automate versioning and CHANGELOG generation, with semver.org and conventionalcommits.org
Stars: ✭ 5,806 (+4298.48%)
Mutual labels:  tag, release, changelog
Python Semver
Python package to work with Semantic Versioning (http://semver.org/)
Stars: ✭ 264 (+100%)
Mutual labels:  release, semver
Git Changelog Lib
Library for parsing and generating a changelog, or releasenotes, from a GIT repository
Stars: ✭ 117 (-11.36%)
Mutual labels:  release, changelog
glare
gracefully download (latest) releases from GitHub
Stars: ✭ 64 (-51.52%)
Mutual labels:  semver, release
generate-changelog
generates changelog from git based on jira tickets
Stars: ✭ 18 (-86.36%)
Mutual labels:  changelog, release
React Native Version
🔢 Version your React Native or Expo app in a `npm version` fashion.
Stars: ✭ 408 (+209.09%)
Mutual labels:  release, semver
Release Notes Generator
📋 semantic-release plugin to generate changelog content with conventional-changelog
Stars: ✭ 123 (-6.82%)
Mutual labels:  release, changelog
Publish Nuget
📦 GitHub action to automate publishing NuGet packages when project version changes
Stars: ✭ 109 (-17.42%)
Mutual labels:  tag, release
Conventional Changelog
Generate changelogs and release notes from a project's commit messages and metadata.
Stars: ✭ 5,962 (+4416.67%)
Mutual labels:  tag, changelog
Shipjs
Take control of what is going to be your next release.
Stars: ✭ 668 (+406.06%)
Mutual labels:  release, semver
keep-changelog-maven-plugin
Maven plugin to help creating CHANGELOG by keeping one format and solving merge request conflicts problem by extraction of new CHANGELOG entries to seperate files.
Stars: ✭ 22 (-83.33%)
Mutual labels:  changelog, release
Fugitive
Simple command line tool to make git more intuitive, along with useful GitHub addons.
Stars: ✭ 20 (-84.85%)
Mutual labels:  release, changelog

gh-release

Create a release for a node package on GitHub.

npm travis standard downloads

Features

  • Uses the Github Releases API to create a new GitHub release.
  • Defaults to using information from package.json and CHANGELOG.md.
  • Supports uploading release assets.

gh-release example

⚠️ Important ⚠️

This library abides by the well-established and widely adopted changelog conventions set forth in http://keepachangelog.com.

Any other conventions (autochangelog, standard-version, your favorite thing) are not supported, and support will not be added for them. This library is several years old and well into maintenance mode.

Install

$ npm install gh-release

Usage

Command-line interface

$ gh-release
Your GitHub username: ungoldman
Your GitHub password: ✔✔✔✔✔✔✔✔

creating release v1.0.0 for ungoldman/cool-project

name:               v1.0.0
tag_name:           v1.0.0
target_commitish:   9561804a4d1fca2525d3207bec4907dd5ec7a705
body:

* engage

? publish release to github? Yes
https://github.com/ungoldman/cool-project/releases/tag/v1.0.0

Should be run at the root of the project to be released.

Expects a package.json and CHANGELOG.md in the working directory.

Prints release URL to stdout on success.

Uses ghauth for authentication with Github. A Github API OAuth token is saved to the gh-release config directory after the first time authenticating. Note that the config directory is determined by application-config and is OS-specific. gh-release will alternatively use the token specified in the GH_RELEASE_GITHUB_API_TOKEN environment variable if it exists. This allows it to be used in continuous deployment systems, which can inject different GitHub API tokens depending on the location of the project.

Get usage info by running with --help or -h.

$ gh-release --help
Usage: gh-release [options]

Examples:
  gh-release -n v2.0.3 -c master -d    create a draft release with title v2.0.3 tagged at HEAD of master


Options:
  -t, --tag_name          tag for this release
  -c, --target_commitish  commitish value for tag
  -n, --name              text of release title
  -b, --body              text of release body
  -o, --owner             repo owner
  -r, --repo              repo name
  -d, --draft             publish as draft                          [default: false]
  -p, --prerelease        publish as prerelease                     [default: false]
  -w, --workpath          path to working directory                 [default: "/Users/ng/dev/git/gh-release"]
  -e, --endpoint          GitHub API endpoint URL                   [default: "https://api.github.com"]
  -a, --assets            comma-delimited list of assets to upload  [default: false]
  --dry-run               dry run (stops before release step)       [default: false]
  -y, --yes               bypass confirmation prompt for release    [default: false]
  -h, --help              Show help
  -v, --version           Show version number

Node API

var ghRelease = require('gh-release')

// all options have defaults and can be omitted
var options = {
  tag_name: 'v1.0.0',
  target_commitish: 'master',
  name: 'v1.0.0',
  body: '* init\n',
  draft: false,
  prerelease: false,
  repo: 'gh-release',
  owner: 'ungoldman',
  endpoint: 'https://api.github.com' // for GitHub enterprise, use http(s)://hostname/api/v3
}

// options can also be just an empty object
var options = {}

// auth is required
// it can be an API token...
options.auth = {
  token: 'XXXXXXXX'
}

// or it can either be a username & password
// (But only for GitHub Enterprise when endpoint is set)
options.auth = {
  username: 'ungoldman',
  password: 'XXXXXXXX'
}

ghRelease(options, function (err, result) {
  if (err) throw err
  console.log(result) // create release response: https://developer.github.com/v3/repos/releases/#response-4
})

Defaults

All default values taken from package.json unless specified otherwise.

name description default
tag_name release tag 'v' + version
target_commitish commitish value to tag HEAD of current branch
name release title 'v' + version
body release text CHANGELOG.md section matching version
owner repo owner repo owner in repository
repo repo name repo name in repository
draft publish as draft false
prerelease publish as prerelease false
assets release assets to upload false
endpoint GitHub API endpoint URL https://api.github.com

Override defaults with flags (CLI) or the options object (node).

Standards

Example

All releases of gh-release were created with gh-release.

Config location

Platform Location
OS X ~/Library/Application Support/gh-release/config.json
Linux (XDG) $XDG_CONFIG_HOME/gh-release/config.json
Linux (Legacy) ~/.config/gh-release/config.json
Windows (> Vista) %LOCALAPPDATA%/gh-release/config.json
Windows (XP, 2000) %USERPROFILE%/Local Settings/Application Data/gh-release/config.json

Motivation

There are packages that already do something like this, and they're great, but I want something that does this one thing really well and nothing else, leans heavily on standards in package.json and CHANGELOG.md, and can work both as a CLI tool and programmatically in node.

Contributing

Contributions welcome! Please read the contributing guidelines first.

History

Please read the change log for a human-readable history of changes.

Tests

gh-release uses standard and tape for testing. You can run all tests with npm test.

See also

License

ISC

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].