<commit_before># Bump

[![Build Status](https://travis-ci.org/gocardless/bump.svg?branch=master)](https://travis-ci.org/gocardless/bump)

Bump helps you keep your project's Ruby and Node dependencies up to date. It:

- Checks for updates to each of your dependencies.
- Builds an updated dependency file for each update required.
- Opens a separate Pull Request for each update, linking to a changelog.

All that's left for you to do is review the change.

### Using Bump from your local machine

You can run Bump locally to kick-off a one-off update of your project's
dependencies. Bump will ask you for the project's repository and the language of
the dependencies you'd like to update.

1. Pull down bump and install its dependencies:
  ```bash
  git clone <EMAIL>:gocardless/bump.git  # Pull down Bump
  cd bump && bundle install                     # Install Bump's dependencies
  cp config/dummy_env .env                      # Set up your environment

  # You'll also need to update the `BUMP_GITHUB_TOKEN` in .env to be a valid
  # token with access to your project and all of its private dependencies.
  ```

2. Start a worker for each queue. We use [foreman](http://ddollar.github.io/foreman/) to automate the process:
  ```bash
  bundle exec foreman start
  ```

3. In a new window, push a message to `DependencyFileFetcher` (the first of Bump's services):
  ```bash
  bundle exec bin/bump_dependencies_for_repo
  ```

### Hosting Bump
You can launch your own instance of Bump via Heroku

[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy)

Once you've deployed, you'll want to click through to heroku scheduler in the
list of addons and set up a scheduled task to bump your dependencies each day.

You can use the `./bin/bump_dependencies_for_repo` script to do this:
```
./bin/bump_dependencies_for_repo gocardles/bump ruby
```

# The code / contributing

To allow support for multiple languages Bump has a service-oriented
architecture. It can be split into five concerns, each of which has its own
worker:

| Service                 | Description                                                                                   |
|-------------------------|-----------------------------------------------------------------------------------------------|
| `DependencyFileFetcher` | Fetches the relevant dependency files for a project (e.g., the `Gemfile` and `Gemfile.lock`). |
| `DependencyFileParser`  | Parses a dependency file and extracts a list of dependencies for a project.                   |
| `UpdateChecker`         | Checks whether a given dependency is up-to-date.                                              |
| `DependencyFileUpdater` | Updates a dependency file to use the latest version of a given dependency.                    |
| `PullRequestCreator`    | Creates a Pull Request to the original repo with the updated dependency file.                 |

### Contributing

We'd love to see the following improvements to Bump:

- A straightforward deployment process, making it easy for anyone to self-host
  the project (and automatically trigger an update check every day).
- A faster `DependencyFileUpdater` for Node. This might need its own,
  language-specific worker that borrows from NPM internals to avoid doing an
  actual install.
- Support for more languages. Python should be relatively easy, for example.


---

GoCardless ♥ open source. If you do too, come [join us](https://gocardless.com/jobs#software-engineer).<commit_msg>Fix join us link<commit_after># Bump

[![Build Status](https://travis-ci.org/gocardless/bump.svg?branch=master)](https://travis-ci.org/gocardless/bump)

Bump helps you keep your project's Ruby and Node dependencies up to date. It:

- Checks for updates to each of your dependencies.
- Builds an updated dependency file for each update required.
- Opens a separate Pull Request for each update, linking to a changelog.

All that's left for you to do is review the change.

### Using Bump from your local machine

You can run Bump locally to kick-off a one-off update of your project's
dependencies. Bump will ask you for the project's repository and the language of
the dependencies you'd like to update.

1. Pull down bump and install its dependencies:
  ```bash
  git clone <EMAIL>:gocardless/bump.git  # Pull down Bump
  cd bump && bundle install                     # Install Bump's dependencies
  cp config/dummy_env .env                      # Set up your environment

  # You'll also need to update the `BUMP_GITHUB_TOKEN` in .env to be a valid
  # token with access to your project and all of its private dependencies.
  ```

2. Start a worker for each queue. We use [foreman](http://ddollar.github.io/foreman/) to automate the process:
  ```bash
  bundle exec foreman start
  ```

3. In a new window, push a message to `DependencyFileFetcher` (the first of Bump's services):
  ```bash
  bundle exec bin/bump_dependencies_for_repo
  ```

### Hosting Bump
You can launch your own instance of Bump via Heroku

[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy)

Once you've deployed, you'll want to click through to heroku scheduler in the
list of addons and set up a scheduled task to bump your dependencies each day.

You can use the `./bin/bump_dependencies_for_repo` script to do this:
```
./bin/bump_dependencies_for_repo gocardles/bump ruby
```

# The code / contributing

To allow support for multiple languages Bump has a service-oriented
architecture. It can be split into five concerns, each of which has its own
worker:

| Service                 | Description                                                                                   |
|-------------------------|-----------------------------------------------------------------------------------------------|
| `DependencyFileFetcher` | Fetches the relevant dependency files for a project (e.g., the `Gemfile` and `Gemfile.lock`). |
| `DependencyFileParser`  | Parses a dependency file and extracts a list of dependencies for a project.                   |
| `UpdateChecker`         | Checks whether a given dependency is up-to-date.                                              |
| `DependencyFileUpdater` | Updates a dependency file to use the latest version of a given dependency.                    |
| `PullRequestCreator`    | Creates a Pull Request to the original repo with the updated dependency file.                 |

### Contributing

We'd love to see the following improvements to Bump:

- A straightforward deployment process, making it easy for anyone to self-host
  the project (and automatically trigger an update check every day).
- A faster `DependencyFileUpdater` for Node. This might need its own,
  language-specific worker that borrows from NPM internals to avoid doing an
  actual install.
- Support for more languages. Python should be relatively easy, for example.


---

GoCardless ♥ open source. If you do too, come [join us](https://gocardless.com/about/jobs/software-engineer/).
{'fraction_non_alphanumeric': 0.1067463706233988, 'fraction_numerical': 0.0008539709649871904, 'mean_word_length': 2.6054386865059005, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 10, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 10, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1906430', 'n_tokens_mistral': 1855, 'n_tokens_neox': 1792, 'n_words': 824}