Skip to content

Latest commit

 

History

History
340 lines (263 loc) · 47.8 KB

README.md

File metadata and controls

340 lines (263 loc) · 47.8 KB
Auto Logo

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:

  • brew - Automate the creation of Homebrew formulae
  • chrome - Publish code to Chrome Web Store
  • cocoapods - Version your CocoaPod, and push to your specs repository!
  • crates - Publish Rust crates
  • docker - Publish images with Docker
  • gem - Publish ruby gems
  • git-tag - Manage your projects version through just a git tag (default when used with binary)
  • gradle - Publish code with gradle
  • maven - Publish code with maven
  • npm - Publish code to npm (default when installed through npm)
  • sbt - Publish Scala projects with sbt
  • vscode - Publish code to the VSCode extension marketplace

Extra Functionality:

  • all-contributors - Automatically add contributors as changelogs are produced using all-contributors-cli
  • conventional-commits - Parse conventional commit messages for version bumps
  • exec - Tap into hooks and run scripts on the terminal
  • first-time-contributor - Thank first time contributors for their work right in your release notes.
  • gh-pages - Automate publishing to your gh-pages documentation website
  • jira - Include Jira story links in the changelog
  • magic-zero - A plugin that closely adheres to semver versioning for 0.0.x and 0.x.y releases
  • microsoft-teams - Post your release notes to a Microsoft teams channel
  • omit-commits - Ignore commits base on name, email, subject, labels, and username
  • omit-release-notes - Ignore release notes in PRs made by certain accounts
  • pr-body-labels - Allow outside contributors to indicate what semver label should be applied to the Pull Request
  • 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
  • protected-branch - Handle Github branch protections and avoid run auto with an admin token

🔨 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

Installing the binary

Install the bundled binary onto your system. This requires the project to be built or in watch mode.

yarn install-mac

If running this for the first time you may also have to run the following command.

chmod +x /usr/local/bin/auto

Cleaning

yarn clean

Linting

yarn lint

Testing

yarn test

Run the docs

yarn docs

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"

Create a new package

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

The two arguments are:

  1. A spaced name
  2. A description
yarn create:package my-package "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

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

react-easy-crop - A React component to crop images/videos with easy interactions

💅 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

💻 📖 🤔 ⚠️

Andrew Lisowski

💻 📖 🤔 🚇 ⚠️ 📝

David

🚇 ⚠️ 💻 📖

Orta

💻 📖

Justin Bennett

🐛 💻 📖 ⚠️

Alec Larson

💻

Tyler Krupicka

💻

Zachary Sherwin

💻 📖 ⚠️

bnigh

💻 📖 ⚠️

su7edja

💻

Yogesh Khandelwal

💻 ⚠️

Matt Boulanger

💻

Karen Lo

📖

James Nail

⚠️ 💻

rdipika94

📖

Brian Muenzenmeyer

📖 💻

Sarah van der Laan

📖

Hannes Güdelhöfer

💻

Eric Clemmons

💻 📖 ⚠️

Jeremiah Zucker

📖 ⚠️ 💻

Brandon Miller

💻 📖 ⚠️

Harris Borawski

📖 ⚠️ 💻

Shelby Cohen

📖 ⚠️ 💻

Kyle Brown

⚠️ 💻

Till Weisser

📖 ⚠️ 💻

G. Richard Bellamy

📖 💻 ⚠️

Kevin Wolf

📖 ⚠️ 💻

Marty Henderson

📖 ⚠️ 💻

Spencer Hamm

💻

Lucas Shadler

💻 ⚠️

David Stone

📖 ⚠️ 💻

Lucas Curti

💻

rachana

📖 ⚠️ 💻

Richard Simpson

📖 ⚠️ 💻

Arturo Silva

📖

Christy Jacob

📖

Check your git settings!

📖

Kendall Gassner

📖 ⚠️ 💻

Drew Cortright

📖 ⚠️ 💻

Philippe Boyd

📖

Mukul Chaware

📖 ⚠️ 💻

Tim Ottewell

📖 ⚠️ 💻

Andrew Leedham

📖 ⚠️ 💻

Seth Thomas

⚠️ 💻

Evan Lovely

📖

Dorian Marié

📖

myndelx

💻

sentony93

📖 ⚠️ 💻

Kelly Harrop

📖 💻

Rogerio Angeliski

📖 ⚠️ 💻

Piotr Monwid-Olechnowicz

💻 📖

John T. Wodder II

📖

Alexey Alekhin

📖 💻 ⚠️ 🚇

Vincent Briglia

📖 ⚠️ 💻

Cameron Yick

⚠️ 💻 📖 🚇

Kelvin Nguyen

💻

Lucas Shadler

📖 ⚠️ 💻

Mathieu Bergeron

📖 ⚠️ 💻

Andreas Weichselbaum

📖 ⚠️ 💻

Torkjel Hongve

📖 ⚠️ 💻

Dalton Scharff

📖 ⚠️ 💻

Corentin Ardeois

💻

Julien Bouyoud

📖 ⚠️ 💻

Valentin Hervieu

📖 ⚠️ 💻

Ikko Ashimine

📖 ⚠️ 💻

Josh Biddick

📖 💻

Anton Karpov

⚠️ 💻

Eric Hayes

📖 ⚠️ 💻

Dominik Moritz

💻 ⚠️

Jason T Brown

📖 🚇 ⚠️ 💻

Bruno Nardini

📖 🚇 ⚠️ 💻

Andrey Bozhko

💻

Adil Malik

📖 🚇 ⚠️ 💻

David Sheldrick

⚠️ 💻 📖

Eskild Diderichsen

📖 ⚠️ 💻

ld-codes

📖 💻

Chris

📖

Satish Pokala

📖

Niccolò Olivieri Achille

⚠️ 💻

Jack Westbrook

📖 ⚠️ 💻

Atte Huhtakangas

📖 ⚠️ 💻

Patrick Ruhkopf

⚠️ 💻

Mark Potnick

⚠️ 💻

MichaelRyanWebber

💻

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