/auto

Generate releases based on semantic version labels on pull requests.

Primary LanguageTypeScriptMIT LicenseMIT

auto

Generate releases based on semantic version labels on pull requests

CircleCI Codecov npm All Contributors npm Auto Release code style: prettier

Automated releases powered by pull request labels. Streamline your release workflow and publish constantly! auto is meant to be run in a continuous integration (CI) environment, but all the commands work locally as well.

Release Features:

  • Calculate semantic version bumps from PRs
  • Skip a release with the skip-release label
  • Publish canary releases from PRs or locally
  • Generate changelogs with fancy headers, authors, and monorepo package association
  • Use labels to create new changelog sections
  • Generate a GitHub release

Pull Request Interaction Features:

  • Get the labels for a PR
  • Set the status of a PR
  • Check that a pull request has a SemVer label
  • Comment on a PR with markdown
  • Update the PR body with contextual build metadata

Visit the docs for more information.

Plugins

Auto has an extensive plugin system and wide variety of official plugins. Make a PR to add yours!

Package Managers:

  • chrome - Publish code to Chrome Web Store
  • crates - Publish Rust crates
  • git-tag - Manage your projects version through just a git tag (default when used with binary)
  • maven - Publish code with maven
  • npm - Publish code to npm (default when installed through npm)

Extra Functionality:

  • all-contributors - Automatically add contributors as changelogs are produced using `all-contributors-cli
  • conventional-commits - Parse conventional commit messages for version bumps
  • first-time-contributor - Thank first time contributors for their work right in your release notes.
  • jira - Include Jira story links in the changelog
  • omit-commits - Ignore commits base on name, email, subject, labels, and username
  • omit-release-notes - Ignore release notes in PRs made by certain accounts
  • released - Add a released label to published PRs, comment with the version it's included in and comment on the issues the PR closes
  • s3 - Post your built artifacts to amazon s3
  • slack - Post release notes to slack
  • twitter - Post release notes to twitter
  • upload-assets - Add extra assets to the release

Start Developing

To get set up, fork and clone the project then run the following command:

yarn

Build/Typecheck

You must build at least once before running the tests or lint.

yarn build

In watch mode:

yarn start

Cleaning

yarn clean

Linting

yarn lint

Testing

yarn test

Run the docs

yarn docs:watch

Create a new plugin

Get started developing a new plugin in the monorepo in seconds.

The two arguments are:

  1. A spaced name
  2. A description
yarn create:plugin "My Plugin" "Do something really cool"

Contributing

Feel free to make an issue or open a pull request!

Make sure to read our code of conduct.

πŸš€ Projects Using auto πŸš€

⭐ Storybookjs design-system - Storybook's official design system

⭐ space-kit - Home base for Apollo's design system

⭐ react-glider - A react wrapper for glider.js

⭐ Ignite - Modern markdown documentation generator

⭐ reaction - Artsy’s React Components

⭐ emission - Artsy’s React Native Components

⭐ webpack-inject-plugin - A webpack plugin to dynamically inject code into the bundle.

⭐ html-webpack-insert-text-plugin - Insert text into the head or body of your HTML

πŸ’… auto Badge πŸ’…

Does your project use auto? Then use our custom badge!

Auto Release

Auto Release

Auto Release

Auto Release

🎨 Prior Art 🎨

auto is inspired by some excellent tech that came before it.

Contributors

Thanks goes to these wonderful people (emoji key):

Adam Dierkens
Adam Dierkens

πŸ’» πŸ“– πŸ€” ⚠️
Andrew Lisowski
Andrew Lisowski

πŸ’» πŸ“– πŸ€” πŸš‡ ⚠️
David
David

πŸš‡
Orta
Orta

πŸ’»
Justin Bennett
Justin Bennett

πŸ› πŸ’»
Alec Larson
Alec Larson

πŸ’»
Tyler Krupicka
Tyler Krupicka

πŸ’»
Zachary Sherwin
Zachary Sherwin

πŸ’» πŸ“– ⚠️
bnigh
bnigh

πŸ’»
su7edja
su7edja

πŸ’»
Yogesh Khandlewal
Yogesh Khandlewal

πŸ’»
Matt Boulanger
Matt Boulanger

πŸ’»
Karen Lo
Karen Lo

πŸ“–

This project follows the all-contributors specification. Contributions of any kind welcome!

Adding a Contributor

To add a contributor run yarn contributors:add, choose "Add new contributor or edit contribution type" and follow the prompts.

License

FOSSA Status