Scrapy Cloud supports automatic and manual deploys from GitHub repositories. You can hook a GitHub repository with your Scrapy Cloud project and configure it so that a new deploy is triggered every time you push a changeset to your remote repo.

Steps to setup GitHub deployment

1. Go to your project's Code & Deploys page, in the Repository tab

2. Click the CONNECT TO GITHUB button to connect your project with GitHub

You might be asked to authorize Scrapinghub to access your repositories, if you haven't connected your account with GitHub before.

3. Connect to one of your GitHub repositories

⚠️  Make sure that the repo you select contains a Scrapy project at its root (i.e. the scrapy.cfg file is located in the repository root). Otherwise, the build process will fail.

4. Configure the deploy options

By default, your repo's master branch is configured for auto-deploy. So, whenever you push your changes in there, a new deploy to Scrapy Cloud will be triggered.

If you prefer, you can select a particular branch instead of the master one.

You can also disable automatic deploys. In this case, you can deploy your project manually by clicking the Deploy this branch button.

5. Deploy your project

If you have configured auto-deploy for a given branch, you can trigger a deploy by pushing a commit (or a set of commits) to that branch in your GitHub repository. Otherwise, click the Deploy this branch button in the Repository page.

After you've triggered the deployment, you can follow it and also view the details about the build process, as shown below:

That's it. Now you can keep your Scrapy Cloud project in sync with your GitHub repositories, without having to manually deploy them using shub.