https://github.com/intuit/auto
Generate releases based on semantic version labels on pull requests.
https://github.com/intuit/auto
auto-release github hack hacktoberfest jira publishing release releases slack
Last synced: about 1 month ago
JSON representation
Generate releases based on semantic version labels on pull requests.
- Host: GitHub
- URL: https://github.com/intuit/auto
- Owner: intuit
- License: mit
- Created: 2018-12-03T18:10:31.000Z (almost 7 years ago)
- Default Branch: main
- Last Pushed: 2025-02-06T16:08:08.000Z (9 months ago)
- Last Synced: 2025-04-10T07:04:53.448Z (7 months ago)
- Topics: auto-release, github, hack, hacktoberfest, jira, publishing, release, releases, slack
- Language: TypeScript
- Homepage: https://intuit.github.io/auto/
- Size: 59.5 MB
- Stars: 2,330
- Watchers: 16
- Forks: 210
- Open Issues: 157
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome - auto - Generate releases based on semantic version labels on pull requests. (TypeScript)
- awesome-fe-resources - auto
- awesome-platform-engineering - autorelease - Release automation for GitHub (Continuous integration / Shell into containers)
- jimsghstars - intuit/auto - Generate releases based on semantic version labels on pull requests. (TypeScript)
- awesome-javascript - auto-monorepo
- awesome-javascript - auto-monorepo
README
Generate releases based on semantic version labels on pull requests
---
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](https://intuit.github.io/auto/) for more information.
## :pushpin: Plugins :pushpin:
Auto has an extensive plugin system and wide variety of official plugins. Make a PR to add yours!
**Package Managers:**
- [brew](./plugins/brew) - Automate the creation of Homebrew formulae
- [chrome](./plugins/chrome) - Publish code to Chrome Web Store
- [cocoapods](./plugins/cocoapods) - Version your [CocoaPod](https://cocoapods.org/), and push to your specs repository!
- [crates](./plugins/crates) - Publish Rust crates
- [docker](./plugins/docker) - Publish images with Docker
- [gem](./plugins/gem) - Publish ruby gems
- [git-tag](./plugins/git-tag) - Manage your projects version through just a git tag (`default` when used with binary)
- [gradle](./plugins/gradle) - Publish code with gradle
- [maven](./plugins/maven) - Publish code with maven
- [npm](./plugins/npm) - Publish code to npm (`default` when installed through `npm`)
- [sbt](./plugins/sbt) - Publish Scala projects with [sbt](https://www.scala-sbt.org)
- [vscode](./plugins/vscode) - Publish code to the VSCode extension marketplace
**Extra Functionality:**
- [all-contributors](./plugins/all-contributors) - Automatically add contributors as changelogs are produced using [all-contributors-cli](https://www.npmjs.com/package/all-contributors-cli)
- [conventional-commits](./plugins/conventional-commits) - Parse conventional commit messages for version bumps
- [exec](./plugins/exec) - Tap into hooks and run scripts on the terminal
- [first-time-contributor](./plugins/first-time-contributor) - Thank first time contributors for their work right in your release notes.
- [gh-pages](./plugins/gh-pages) - Automate publishing to your gh-pages documentation website
- [jira](./plugins/jira) - Include Jira story links in the changelog
- [magic-zero](./plugins/magic-zero) - A plugin that closely adheres to semver versioning for 0.0.x and 0.x.y releases
- [microsoft-teams](./plugins/microsoft-teams) - Post your release notes to a Microsoft teams channel
- [omit-commits](./plugins/omit-commits) - Ignore commits base on name, email, subject, labels, and username
- [omit-release-notes](./plugins/omit-release-notes) - Ignore release notes in PRs made by certain accounts
- [pr-body-labels](./plugins/pr-body-labels) - Allow outside contributors to indicate what semver label should be applied to the Pull Request
- [released](./plugins/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](./plugins/s3) - Post your built artifacts to amazon s3
- [slack](./plugins/slack) - Post release notes to slack
- [twitter](./plugins/twitter) - Post release notes to twitter
- [upload-assets](./plugins/upload-assets) - Add extra assets to the release
- [protected-branch](./plugins/protected-branch) - Handle Github branch protections and avoid run auto with an admin token
## :hammer: Start Developing :hammer:
To get set up, fork and clone the project then run the following command:
```bash
yarn
```
### Build/Typecheck
You must build at least once before running the tests or lint.
```bash
yarn build
```
In watch mode:
```bash
yarn start
```
### Installing the binary
Install the bundled binary onto your system. This requires the project to be built or in watch mode.
```bash
yarn install-mac
```
If running this for the first time you may also have to run the following command.
```bash
chmod +x /usr/local/bin/auto
```
### Cleaning
```bash
yarn clean
```
### Linting
```bash
yarn lint
```
### Testing
```bash
yarn test
```
### Run the docs
```bash
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
```bash
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
```bash
yarn create:package my-package "Do something really cool"
```
## :beers: Contributing :beers:
Feel free to make an [issue](https://github.com/intuit/auto/issues) or open a [pull request](https://github.com/intuit/auto/pulls)!
Make sure to read our [code of conduct](./CODE_OF_CONDUCT.md).
## :rocket: Projects Using `auto` :rocket:
:star: [Storybookjs design-system](https://github.com/storybookjs/design-system) - Storybook's official design system
:star: [space-kit](https://github.com/apollographql/space-kit) - Home base for Apollo's design system
:star: [react-glider](https://github.com/hipstersmoothie/react-glider) - A react wrapper for glider.js
:star: [reaction](https://github.com/artsy/reaction) - Artsyβs React Components
:star: [emission](https://github.com/artsy/emission) - Artsyβs React Native Components
:star: [webpack-inject-plugin](https://github.com/adierkens/webpack-inject-plugin) - A webpack plugin to dynamically inject code into the bundle.
:star: [html-webpack-insert-text-plugin](https://github.com/hipstersmoothie/html-webpack-insert-text-plugin) - Insert text into the head or body of your HTML
:star: [react-easy-crop](https://github.com/ValentinH/react-easy-crop) - A React component to crop images/videos with easy interactions
## :nail_care: `auto` Badge :nail_care:
Does your project use `auto`? Then use our custom badge!
[](https://github.com/intuit/auto)
[](https://github.com/intuit/auto)
[](https://github.com/intuit/auto)
[](https://github.com/intuit/auto)
## :art: Prior Art :art:
`auto` is inspired by some excellent tech that came before it.
- [github-semantic-version](https://github.com/ericclemmons/github-semantic-version) - Automated semantic version releases powered by Github Issues.
- [lerna-changelog](https://github.com/lerna/lerna-changelog) - π PR-based changelog generator with monorepo support
## Contributors
Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#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
π»

Martin Elias
π»

Ketan Reddy
β οΈ π»
This project follows the [all-contributors](https://github.com/kentcdodds/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
[](https://app.fossa.io/projects/git%2Bgithub.com%2Fintuit%2Fauto?ref=badge_large)