# How to Survive the PR Overload from Hacktoberfest | LinearB Blog

> As an open-source project maintainer, Hacktoberfest is a great way to get new contributors and accomplish tasks for your open-source project, but it can also create a huge amount of PRs of varying quality. Learn how you can separate spammy Hacktoberfest PRs – automatically.

_This is a markdown rendering of a live HTML page on linearb.io, generated for AI/LLM consumption — it is not a markdown-only site. To get the full HTML page instead, request this URL with an explicit `Accept: text/html` header (no wildcard, no markdown preference)._


```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://linearb.io/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Blog",
      "item": "https://linearb.io/blog"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "How to Survive the PR Overload from Hacktoberfest",
      "item": "https://linearb.io/blog/how-to-survive-the-pr-overload-from-hacktoberfest"
    }
  ]
}
```

[Home](https://linearb.io/)

/

[Blog](https://linearb.io/blog)

/

How to Survive the PR Overload from Hacktoberfest

# How to Survive the PR Overload from Hacktoberfest

![Photo of gitStream Team](https://assets.linearb.io/image/upload/c_limit,w_2560/f_auto/q_auto/v1/logo-mark-lg?_a=BAVMn6ID0)

By [gitStream Team](https://linearb.io/blog/how-to-survive-the-pr-overload-from-hacktoberfest#git-stream-team)

|

October 10, 2022

![Hacktoberfest_2022_Logo_f01bf71bd8](https://assets.linearb.io/image/upload/c_limit,w_2560/f_auto/q_auto/v1/Hacktoberfest_2022_Logo_f01bf71bd8?_a=BAVMn6ID0)

As an open-source project maintainer, [Hacktoberfest](https://hacktoberfest.com/) (held by [DigitalOcean](https://www.digitalocean.com/) every year) can be both a blessing and a curse.

It’s a phenomenal way for an open-source project to get new contributors and accomplish tasks quickly, but it can also create a huge amount of pull requests of varying quality. Then to make matters worse these need to be reviewed before the end-of-the-month deadline! We all appreciate the time folks give to these projects even if it is just to get a t-shirt, but the review process is literally a pandora’s box. Each PR might be a great quality change that is delightfully innovative or just a white space formatting change that doesn’t follow the guidelines for the project.

[Hacktoberfest](https://hacktoberfest.com/participation/) creates a lot of work. Thanks to some changes by DigitalOcean, each submission needs to be tagged Hacktoberfest. Also, you need to add Hacktoberfest to your project’s topic to opt into the event. Labels help with sorting contributions, but what if you could separate the spammy t-shirt attempts from the quality addition’s automatically?

## How Can You Separate the Good from the Spammy Hacktoberfest PRs?

There is a free tool that can help you with your projects that are hosted on GitHub.   
[/:\\ gitStream by LinearB](http://gitstream.cm) is a new way to manage your PR workflow by categorizing and sorting PRs as they are submitted. 

This is called [continuous merge or CM](https://linearb.io/blog/continuous-merge), like continuous integration(CI) and continuous delivery(CD). It creates a set of automated processes that can help you evaluate the good PRs quicker and keep the spam out.

## How Do You Install gitStream?

First, we need to install gitStream on the repo from the Github marketplace – go to <https://github.com/marketplace/gitstream-by-linearb> to install. Here’s a quick video on the whole process takes just a few minutes:

Next, we need to copy in our .cm file and our GitHub actions file and commit them. To get you started we have built a special Hacktoberfest gitstream.cm file that matches and labels common spam patterns.

```
# -*- mode: yaml -*-
​
manifest:
 version: 1.0
​
# The `automations` section includes a list of automation that applies
# to the repository in which gitStream is installed. Each automation has an
# `if` key with a list of the necessary assertions, as well as a `run` key with a
# list of all actions. All the listed assertions need to pass in order
# for the following actions to be executed (there is AND relation between conditions).
​
# Each automation under the `automations` section is independent of the others.
# Every time a PR is opened or changed, the automation's conditions are evaluated (the `if`).
# The actions under `run` are executed one by one if all the conditions pass.
​
# Conditions consists of an expression, which are wrapped with double curly braces, and
# includes a context variable like `files` and filter functions like `length`. Filters
# functions are essentially functions that can be applied to context variables. They are
# called with a pipe operator (|) and can take arguments. Read more on https://docs.gitstream.cm
​
automations:
 # This is the name of the review automation. You can use whatever name, a meaningful name
 # will help to identify it in the future. Each automation name in this file should be unique.
 spam_formatting_changes:
   # The `if` key has a list of conditions, each condition is specified as a Jinja expression
   # in a double curly braces. Expressions are evaluated by gitStream on a PR when triggered.
   if:
     # Given the PR code changes, check that only formatting changes were made
     - {{ source.diff.files | isFormattingChange }}
   # `run` key has a list of actions, which are executed one by one whenever the automation
   # conditions are met.
   run:
     # When the changes are validated as formatting only, you can help to speed up the review
     # by adding a label that marks it accordingly.
     - action: add-labels@v1
       args:
         labels: ['SPAM?']
​
 spam_docs_changes:
   if:
     # Given the PR files changes, check that only documents were changed.
     - {{ files | allDocs }}
   run:
     - action: add-labels@v1
       args:
         labels: ['SPAM?']
  spam_images_changes:
   if:
     # Check for every changed file if is a document file. The allImages filter checks for
     # common file extensions used for graphics.
     - {{ files | allImages }}
   run:
     - action: add-labels@v1
       args:
         labels: ['SPAM?']

```

You can watch this short 43 second video for a quick walk-through of how to setup this custom .cm file:

Out of the box the hacktoberfest gitstream.cm file comes with 3 actions that add “spam?” labels to the PRs, based on formatting changes, only images or a only docs change. Your team might have other ideas what is a spam PR so modify them to make it suitable for your needs – check out the [docs](http://docs.gitstream.cm) to see what your options can be.

Here’s what the spam filter looks like in action:

Now when you are ready to review your Hacktoberfest PRs you can already have a lot categorized as spam that you don’t need to spend as much time on.

## Other gitStream Features

Another feature of gitStream is an [estimated time to review.](https://docs.gitstream.cm/18%5Fexamples/#estimated-time-for-review)

You can add this code to your gitStream.cm file you just created and it can add in the comments how long gitStream guesses that it will take to review, this way you can plan your day better.

```
automations:
  etr_on_all:
    if:
      - true
    run:
      - action: add-comment@v1
        args:
          comment: "Estimated {{ branch | estimatedReviewTime }} minutes to review"

```

Do you have a certain part of the code base where you have a specific volunteer reviewing every submission that touches it? Have it [auto assigned to them](https://docs.gitstream.cm/25%5Fgitstream-actions/#add-reviewers) – the code to do that looks like this:

```
automations:
  ui_review:
    if:
      - {{ files | match(term='src/ui/') }}
    run:
      - action: add-reviewers@v1
        args:
          reviewers: [uireviewer1,uireviewer2]

```

Add this automation to your gitStream.cm file, change where the path is and who the reviewers are and those PRs are no longer your problem 🙂

There’s lots more that [/:\\ gitStream](http://docs.gitstream.cm/) can do to help your workflow for your project especially during hacktoberfest, but this is a good start to building your CM pipeline.

Now that you are all set up to clear the spam, add to your repo’s topic and publish some issues that you want to get contributions on!

[](https://github.com/apps/gitstream-cm/installations/new)

## Improve developer productivity with LinearB

Find us on

[](https://www.linkedin.com/company/linearb)
[](https://devinterrupted.substack.com/)

## Your next read

[![Cover image for Slack turns channels into the context engine for agentic AI](https://assets.linearb.io/image/upload/c_limit,w_2560/f_auto/q_auto/v1/Blog_Post_Name_2400x1256_077524ba8b?_a=BAVMn6ID0)](https://linearb.io/blog/slack-jaime-delanghe-mcp-agent-context-channels)

Workflow

[Slack turns channels into the context engine for agentic AI](https://linearb.io/blog/slack-jaime-delanghe-mcp-agent-context-channels)

Slack Chief Product Officer Jaime DeLanghe breaks down how channels serve as the foundational context layer for human-agent collaboration. Learn why Slack is...

[![Cover image for Code generation is faster than ever, but shipping value isn't](https://assets.linearb.io/image/upload/c_limit,w_2560/f_auto/q_auto/v1/Blog_AI_code_review_bottleneck_2400x1256_d73333ea46?_a=BAVMn6ID0)](https://linearb.io/blog/code-generation-faster-shipping-isnt)

Workflow

[Code generation is faster than ever, but shipping value isn't](https://linearb.io/blog/code-generation-faster-shipping-isnt)

Your team writes more code than ever, but less reaches production. AI moved the bottleneck to code review. Here's how to measure it and unblock your pipeline.&n...

[![Cover image for AI as a value multiplier: a human-centric approach to engineering leadership](https://assets.linearb.io/image/upload/c_limit,w_2560/f_auto/q_auto/v1/Blog_Servant_Leadership_2400x1256_0cfd4e2a0c?_a=BAVMn6ID0)](https://linearb.io/blog/ai-as-value-multiplier-human-centric-leadership)

Workflow

[AI as a value multiplier: a human-centric approach to engineering leadership](https://linearb.io/blog/ai-as-value-multiplier-human-centric-leadership)

Super.com's Matt Culver explains why AI should be used as a value multiplier, not a cost-cutter, advocating for a human-centric approach to engineering...

## Structured data

_Machine-readable metadata (JSON-LD) embedded in the page for search/AI context — not content rendered on the page itself._

```json
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "LinearB",
  "url": "https://linearb.io/",
  "logo": "https://assets.linearb.io/image/upload/v1715628027/logo-mark-lg.svg",
  "description": "LinearB is the engineering productivity platform that helps engineering leaders prove AI is improving throughput without sacrificing delivery confidence, flow efficiency, or developer experience.",
  "sameAs": [
    "https://www.linkedin.com/company/linearb"
  ],
  "award": [
    {
      "@type": "Award",
      "name": "LinearB is a Leader in the 2026 Gartner® Magic Quadrant™ for Developer Productivity Insight Platforms",
      "dateAwarded": "2026",
      "awardedBy": {
        "@type": "Organization",
        "name": "Gartner®"
      }
    },
    {
      "@type": "Award",
      "name": "Great Place to Work Certification",
      "dateAwarded": "2025-2027",
      "awardedBy": {
        "@type": "Organization",
        "name": "Great Place to Work"
      }
    },
    {
      "@type": "Award",
      "name": "America's Best Startup Employers 2025",
      "dateAwarded": "2025",
      "awardedBy": {
        "@type": "Organization",
        "name": "Forbes Magazine"
      }
    }
  ],
  "hasCertification": [
    {
      "@type": "Certification",
      "name": "SOC 1 Type 2"
    },
    {
      "@type": "Certification",
      "name": "SOC 2 Type 2"
    },
    {
      "@type": "Certification",
      "name": "GDPR Compliance certification"
    },
    {
      "@type": "Certification",
      "name": "ISO 27001"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to Survive the PR Overload from Hacktoberfest",
  "url": "https://linearb.io/blog/how-to-survive-the-pr-overload-from-hacktoberfest",
  "author": {
    "@type": "Person",
    "name": "gitStream Team"
  },
  "datePublished": "2022-10-10T03:36:49.000Z",
  "dateModified": "2022-10-10T03:36:49.000Z",
  "image": "https://assets.linearb.io/image/upload/v1720000000/Hacktoberfest_2022_Logo_f01bf71bd8.png",
  "publisher": {
    "@type": "Organization",
    "name": "LinearB",
    "logo": "https://assets.linearb.io/image/upload/v1777485755/linearb-logo-2026.png"
  },
  "description": "As an open-source project maintainer, Hacktoberfest is a great way to get new contributors and accomplish tasks for your open-source project, but it can also create a huge amount of PRs of varying quality. Learn how you can separate spammy Hacktoberfest PRs – automatically. \n"
}
```

## More on linearb.io

### Top navigation

- [Book a Demo](https://linearb.io/book-a-demo)
- [AI Code Reviews — Catch security risks, bugs, and spec mismatches](https://linearb.io/platform/ai-code-reviews)
- [AI & Productivity Insights — See how AI tools affect cycle time and delivery speed](https://linearb.io/platform/ai-developer-productivity-insights)
- [Measure AI Impact — Track AI adoption and tie it to delivery outcomes](https://linearb.io/use-case/measure-ai-impact)
- [MCP Server — Chat with your data to spot patterns and boost output](https://linearb.io/platform/mcp-server)
- [Resource Allocation — Cost initiatives and shape your investment strategy](https://linearb.io/platform/resource-allocation)
- [Cost Capitalization — Capitalize engineering costs with audit-ready reports](https://linearb.io/platform/cost-capitalization)
- [Dev Team Management — Set targets and tie throughput to business outcomes](https://linearb.io/platform/goals-and-reporting)
- [DevOps Workflow Automation — Policy-based PR routing, approvals, and tests](https://linearb.io/platform/ai-workflow-governance)
- [AI Powered Support — Unify AI and human code delivery in one clear view](https://linearb.io/use-case/ai-powered-support)
- [Optimization — Surface friction with feedback and MCP insights](https://linearb.io/platform/developer-experience)
- [Reporting — Spot what's working and what needs attention](https://linearb.io/use-case/measuring-developer-experience)
- [Surveys — Turn developer feedback into actionable signals](https://linearb.io/platform/developer-surveys)
- [Platform overview](https://linearb.io/platform/overview)
- [Register now](https://linearb.io/event/engineering-productivity-gap)
- [Customers](https://linearb.io/customers)
- [Pricing](https://linearb.io/pricing)
- [Why choose LinearB — Explore your data. Measure performance. Act to improve it.](https://linearb.io/why-linearb)
- [APEX framework — The operating model for AI-era engineering teams](https://linearb.io/resources/apex-framework)
- [Anti-FAQ — The questions other vendors won't answer](https://linearb.io/why-linearb/anti-faq)
- [Security — Enterprise-grade compliance and zero code access](https://linearb.io/security)
- [Build vs. buy — The hidden cost of building it yourself](https://linearb.io/resources/build-vs-buy)
- [Dev Interrupted Podcast — Conversations with engineering leaders](https://linearb.io/dev-interrupted/podcasts)
- [Reports & Guides — Deep dives on productivity and delivery](https://linearb.io/resources)
- [Webinars — Expert sessions on productivity and AI](https://linearb.io/resources?category=workshops)
- [Metrics Benchmarks — See how your engineering org stacks up](https://linearb.io/resources/software-engineering-benchmarks-report)
- [Blog — Product updates and practical insights](https://linearb.io/blog)
- [Help Center — Documentation, setup, and support](https://linearb.helpdocs.io)
- [API Docs](https://docs.linearb.io/api-overview)
- [Status](https://www.linearbstatus.com/)
- [Integrations](https://linearb.io/integrations)
- [LinearB Library](https://linearb.io/library)
- [Engineering metrics](https://linearb.io/library/engineering-metrics)
- [Platform engineering](https://linearb.io/library/platform-engineering)
- [Engineering glossary](https://linearb.io/library/engineering-glossary)
- [Developer productivity](https://linearb.io/library/developer-productivity)
- [AI in software development](https://linearb.io/library/ai-in-software-development)
- [Engineering management](https://linearb.io/library/engineering-management)
- [Developer experience](https://linearb.io/library/developer-experience)
- [DevOps](https://linearb.io/library/devops)
- [Engineering operations and the context layer](https://linearb.io/library/engineering-operations)
- [Engineering efficiency](https://linearb.io/library/engineering-efficiency)
- [Software delivery](https://linearb.io/library/software-delivery)
- [Research and data](https://linearb.io/library/engineering-benchmarks-and-research)
- [LinearB is a Leader in the 2026 Gartner® Magic Quadrant™ for Developer Productivity Insight Platforms](https://linearb.io/resources/gartner-magic-quadrant-dpi-platforms-2026)
- [Sign in](https://app.linearb.io/login)
- [Enterprise](https://linearb.io/solutions/enterprise)
- [Contact](https://linearb.io/contact-us)
- [About us](https://linearb.io/about-us)
- [Careers](https://linearb.io/careers)
- [Service agreement](https://linearb.io/services-agreement)
- [Privacy policy](https://linearb.io/privacy-policy)
- [DPA](https://linearb.io/data-processing-agreement)
- [Security FAQ](https://linearb.io/security-faq)
- [Substack](https://devinterrupted.substack.com/)

### Footer

_Additional links from the site footer, not repeated from the top navigation above._

- [GitHub](https://github.com/linear-b)
- [LinkedIn](https://www.linkedin.com/company/linearb)
- [Twitter](https://twitter.com/LinearB_Inc)