Skip to content

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented Aug 4, 2025

Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs from Renovate will soon appear from 'Mend'. Learn more here.

This PR contains the following updates:

Package Change Age Confidence
probot (source) ^6.0.0 -> ^14.0.0 age confidence

Release Notes

probot/probot (probot)

v14.0.2

Compare Source

Bug Fixes

v14.0.1

Compare Source

Bug Fixes
  • add explicit undefined to optional types, and update webhooks types (#​1979) (05179ff)

v14.0.0

Compare Source

BREAKING CHANGES
  • Probot is now an ESM only library
  • drop Node > 20.17 and Node 21 support
  • Switch to GitHub's OpenAPI specification for Webhooks (from @octokit/webhooks v13)
  • Remove legacy REST enpoint method access. Users will now have to use the octokit.rest.* methods
  • Remove express server from within Probot.
  • All properties marked as private in Typescript, including Probot#state, are now private class fields.
  • createNodeMiddleware() is now an async function
  • @sentry/node needs to be installed separately if needed
  • ioredis needs to be installed separately if needed
  • The built-in server now listens on localhost by default instead of 0.0.0.0.
Probot v14 Migration Guide
ESM Only Package

Probot is now exclusively an ESM package. Either migrate to ESM (recommended), or use `require(esm).

Migrating to ESM:

  1. Update package.json:
{
  "type": "module"
}
  1. Replace all CommonJS require() statements with ESM import syntax
  2. Update your TypeScript configuration:
{
  "compilerOptions": {
    "module": "node16",
    "moduleResolution": "node16"
  }
}

For require(esm):

  • For TypeScript 5.7-5.8: Use "module": "nodenext" and "moduleResolution": "nodenext"
  • For TypeScript 5.9+: Use "module": "node20" and "moduleResolution": "node20"
Node.js Version Requirements
  • Minimum supported version: Node.js 20.18+ and 22+
  • Node.js 21 support has been dropped
Webhook Type Definitions

Replace webhook type imports:

// Before
import { WebhookEvent } from "@​octokit/webhooks-types";

// After
import { WebhookEvent } from "@​octokit/openapi-webhooks-types-migration";
REST API Access Pattern

Legacy endpoint methods have been removed:

app.on("issues.opened", async (context) => {
  // Before
  // const issue = await context.octokit.issues.get(context.issue());

  // After
  const issue = await context.octokit.rest.issues.get(context.issue());
});
Express Server Removal

The built-in Express server has been removed. To use Express:

  1. Install Express:
npm install express
  1. Update your Probot setup:
import Express from "express";
import { createNodeMiddleware, createProbot } from "probot";

const express = Express();

const app = (probot) => {
  probot.on("push", async () => {
    probot.log.info("Push event received");
  });
};

const middleware = await createNodeMiddleware(app, {
  webhooksPath: "/api/github/webhooks",
  probot: createProbot({
    env: {
      APP_ID,
      PRIVATE_KEY,
      WEBHOOK_SECRET,
    },
  }),
});

express.use(middleware);
express.use(Express.json());
express.get("/custom-route", (req, res) => {
  res.json({ status: "ok" });
});

express.listen(3000, () => {
  console.log(`Server is running at http://localhost:3000`);
});
HTTP Server no longer listens on 0.0.0.0 by default

The built-in HTTP server will now listen on localhost by default, instead of listening on all available interfaces.
If you wish to change this behaviour, you can use the HOST environment variable, or the --host variable for the probot run command.

env HOST=0.0.0.0 <start script>
probot run --host=0.0.0.0 app.js
Asynchronous Middleware Initialization

createNodeMiddleware() is now asynchronous:

import { createNodeMiddleware } from "probot";
import app from "../app.js";

// Before
// const middleware = createNodeMiddleware(app);

// After
const middleware = await createNodeMiddleware(app);

v13.4.7

Compare Source

Bug Fixes

v13.4.6

Compare Source

Bug Fixes

v13.4.5

Compare Source

Bug Fixes

v13.4.4

Compare Source

Bug Fixes
  • deps: update Octokit dependencies that have ReDos vulnerability (816f2f7)

v13.4.3

Compare Source

Bug Fixes

v13.4.2

Compare Source

Bug Fixes

v13.4.1

Compare Source

Bug Fixes

v13.4.0

Compare Source

Features

v13.3.10

Compare Source

Bug Fixes

v13.3.9

Compare Source

Bug Fixes

v13.3.8

Compare Source

Bug Fixes

v13.3.7

Compare Source

Bug Fixes

v13.3.6

Compare Source

Bug Fixes

v13.3.5

Compare Source

Bug Fixes

v13.3.4

Compare Source

Bug Fixes

v13.3.0

Compare Source

Features
  • set x-github-delivery header to event.id for all requests sent from context.octokit in event handlers (#​2027) (12944d5)

v13.2.2

Compare Source

Bug Fixes
  • deps: update dependencies pino to v9, pino-http to v10 (#​2007) (ef7b9df)

v13.2.1

Compare Source

Bug Fixes

v13.2.0

Compare Source

Features

v13.1.2

Compare Source

Bug Fixes
  • deps: update dependency express to v4.19.2 [security] (b1d3ac3)

v13.1.1

Compare Source

Bug Fixes

v13.1.0

Compare Source

Features

v13.0.2

Compare Source

Bug Fixes
  • deps: update dependency commander to v12 (737835f)

v13.0.1

Compare Source

Bug Fixes

v13.0.0

Compare Source

Features
BREAKING CHANGES
  • Drop support for NodeJS < 18
  • replace node-fetch with the Fetch API
  • default webhookPath is now /api/github/webhooks
  • probot receive now only supports payloads in JSON format, previously also (unintionally) allowed JS.
  • Probot now requires that payloads be passed as string to the .verify(), .verifyAndReceive() methods. Passing objects is no longer supported
  • The middleware no longer accepts parsed payloads. You will have to pass it as a string
Note on Vercel deployments:

Set NODEJS_HELPERS environment variable to 0 in order to prevent Vercel from parsing the response body.
See Disable Helpers for detail.

v12.4.0

Compare Source

Features
  • set x-github-delivery header to event.id for all requests sent from context.octokit in event handlers (#​2026) (f1985e5)

v12.3.4

Compare Source

Bug Fixes

v12.3.3

Compare Source

Bug Fixes

v12.3.2

Compare Source

Bug Fixes

v12.3.1

Compare Source

Bug Fixes

v12.3.0

Compare Source

Features

v12.2.9

Compare Source

Bug Fixes

v12.2.8

Compare Source

Bug Fixes

v12.2.7

Compare Source

Bug Fixes

v12.2.6

Compare Source

Bug Fixes

v12.2.5

Compare Source

Bug Fixes

v12.2.4

Compare Source

Bug Fixes

v12.2.3

Compare Source

Bug Fixes
  • deps: bump eventsource from 1.1.0 to 2.0.2 (7fd06d6)

v12.2.2

Compare Source

Bug Fixes

v12.2.1

Compare Source

Bug Fixes

v12.2.0

Compare Source

Features
  • customize account name for manifest creation flow using GH_ORG environment variable (#​1606) (992b480)

v12.1.4

Compare Source

Bug Fixes

v12.1.3

Compare Source

Bug Fixes

v12.1.2

Compare Source

Bug Fixes
  • typescript: add types for context.{repo,issue,pullRequest} (#​1622) (638a3b2)

v12.1.1

Compare Source

Bug Fixes

v12.1.0

Compare Source

Features

v12.0.0

Compare Source

Features
BREAKING CHANGES
  • remove '*' event
  • app.webhooks.middleware has been removed in @octokit/webhooks v9
  • removes the webhookPath option on new Probot({}) for the webhooks middleware

v11.4.1

Compare Source

Bug Fixes
  • support setting baseUrl on Octokit constructor instead of Probot constructor (#​1552) (453ddd2)

v11.4.0

Compare Source

Features

v11.3.2

Compare Source

Bug Fixes

v11.3.1

Compare Source

Bug Fixes
  • setup: do not enter setup mode if HOST environment variable is set (#​1538) (4d70d69)

v11.3.0

Compare Source

Features

v11.2.4

Compare Source

Bug Fixes

v11.2.3

Compare Source

Bug Fixes

v11.2.2

Compare Source

Bug Fixes
  • add workaround for "appId option is required" when in setup mode (#​1513) (e11b91e)

v11.2.1

Compare Source

Bug Fixes

v11.2.0

Compare Source

Features

v11.1.1

Compare Source

Bug Fixes

v11.1.0

Compare Source

Features
  • add onAny and onError methods from @octokit/webhooks (#​1480) (9a24f9d)

v11.0.6

Compare Source

Bug Fixes

v11.0.5

Compare Source

Bug Fixes
  • clarify error message in case of invalid app authentication (#​1465) thanks @​eXpire163 (5f1831b)

v11.0.4

Compare Source

Bug Fixes
  • TypeScript: fix description of context.pullRequest method (#​1461) (a5779ff)

v11.0.3

Compare Source

Bug Fixes

v11.0.2

Compare Source

Bug Fixes
  • typescript: remove options.webhookProxy from Probot constructor (#​1459) (01bb678)

v11.0.1

Compare Source

Bug Fixes

v11.0.0

Compare Source

BREAKING CHANGES

For a smooth upgrade, make sure to update to the latest Probot v10 version first (npm install probot@10), run your tests, and address all deprecation messages. Nearly all removed APIs have previously been deprecated.

  • deprecated context.octokit.* have been removed via @octokit/plugin-rest-endpoint-methods v4

  • probot.server property removed. Build your own server instead using import { Server } from "probot"

  • probot.load() is now asynchronous and no longer returns the instance

  • express-async-errors is no longer used.

  • Probot constructor parameter no longer supported in createNodeMiddleware(app, { Probot }). Pass a probot instance instead: createNodeMiddleware(app, { probot })

  • getOptions() has been removed. Use { probot: createProbot() } instead

  • probot.load(appFn) no longer accepts appFn to be a path string. Pass the actual function instead.

  • probot.setup() removed. Use the new Server class instead:

    const { Server, Probot } = require("probot")
    const server = new Server({
      // optional:
      host,
      port,
      webhookPath,
      webhookProxy,
      Probot: Probot.defaults({ id, privateKey, ... })
    })
    
    // load probot app function
    await server.load((app) => {})
    
    // start listening to requests
    await server.start()
    // stop server with: await server.stop()

    If you have more than one app function, combine them in a function instead

    const app1 = require("./app1")
    const app2 = require("./app2")
    
    module.exports = function app ({ probot, getRouter }) {
      await app1({ probot, getRouter })
      await app2({ probot, getRouter })
    }
  • probot.start() / probot.stop() removed. Use the new Server class instead:

    const { Server, Probot } = require("probot")
    const server = new Server({
      Probot: Probot.defaults({ id, privateKey, ... })
      // optional:
      host,
      port,
      webhookPath,
      webhookProxy,
    })
    
    // load probot app function
    await server.load((app) => {})
    
    // start listening to requests
    await server.start()
    // stop server with: await server.stop()
  • REDIS_URL is ignored when using Probot constructor. Use new Probot({ redisConfig: redis://... }) instead

  • Probot constructor no longer reads environment variables. Pass options instead, or import { createProbot } from "probot" instead

  • Probot.run() has been removed. Use import { run} from "probot" instead

  • context.github has been removed. Use context.octokit instead

  • context.event has been removed. Use context.name instead

  • app.route() has been removed. Use the getRouter() argument from the app function instead: (app, { getRouter }) => { ... }

  • app.router has been removed. Use getRouter() from the app function instead: (app, { getRouter }) => { ... }

  • probot.logger has been removed. Use probot.log instead

  • new Probot({ id }) has been removed. Use new Probot({ appId }) instead

  • new Probot({ cert }) has been removed. Use new Probot({ privateKey }) instead

  • probot.webhook has been removed. Use probot.webhooks instead

  • createProbot(options) no longer supports any keys besides overrides, defaults, or env

  • options.throttleOptions has been removed. Set options.Octokit to ProbotOctokit.defaults({ throttle }) instead

  • import { Application } from probot has been removed. Use import { Probot } from probot instead, the APIs are the same

v10.19.0

Compare Source

Features

v10.18.0

Compare Source

Features
Deprecations
  • probot.load() (3d4b363)
  • probot.start() / probot.stop() / probot.setup() (7a8f268)
  • Deprecates new Probot({ id }) (a94fdca)
Bug Fixes
  • `createProbot() without options (8c01e90)
  • load app function only once when using createNodeMiddleware (#​1432) (60b702b)
  • server: log error requests as [METHOD] /[PATH] [STATUS] - [NUM]ms, e.g POST / 500 - 123ms (9d767e1)

v10.17.3

Compare Source

Bug Fixes

v10.17.2

Compare Source

Bug Fixes

v10.17.1

Compare Source

Bug Fixes
  • set default log level correctly to "info" (49153b8)

v10.17.0

Compare Source

Features
  • import { run } from "probot". Deprecates Probot.run() (f35b58a)
  • new Probot({ baseUrl }). Deprecates GHE_HOST / GHE_PROTOCOL when using with the Probot constructor (7abbef7)
  • new Probot({ logLevel }). Deprecates LOG_LEVEL when using Probot constructor (7c46218)
  • deprecate INSTALLATION_TOKEN_TTL (dfc59fc)
  • deprecate LOG_FORMAT, LOG_LEVEL_IN_STRING, SENTRY_DSN environment variables when using Probot constructor. Pass a custom log instance instead: (514c764)
  • deprecate REDIS_URL environment variable when using with the Probot constructor. Use new Probot({ redisConfig: "redis://..." }) instead (1dbd999)

v10.16.0

Compare Source

Features

v10.15.0

Compare Source

Features

v10.14.1

Compare Source

Bug Fixes

v10.14.0

Compare Source

Features
  • deprecate { Application } export. Use { Probot } instead, it has the same APIs now. (#​1408) (0e52e05)

v10.13.0

Compare Source

Features

v10.12.0

Compare Source

Features
  • getRouter argument for app function (({ app, getRouter }) => {}) (#​1406) (de3adc1)

v10.11.0

Compare Source

Features

v10.10.2

Compare Source

Bug Fixes
  • stop using .webhooks.on("*", handler) in favor of `.webhooks.onAny(handler) (ab6fcb1)

v10.10.1

Compare Source

Bug Fixes

v10.10.0

Compare Source

Features

v10.9.5

Compare Source

Bug Fixes
  • use webhooks.onError() instead of deprecated webhooks.on("error", ...) (#​1390) (a5b36b3)

v10.9.4

Compare Source

Bug Fixes
  • typescript: TypeScript issues TS2305,TS2707,TS7006 (41ee70c), closes #​1387

v10.9.3

Compare Source

Bug Fixes

v10.9.2

Compare Source

Bug Fixes

v10.9.1

Compare Source

Bug Fixes
  • do not overwrite options.throttle passed to {Octokit: ProbotOctokit.defaults(options)} (#​1373) (9483546)

v10.9.0

Compare Source

Features

v10.8.1

Compare Source

Bug Fixes
  • use @probot/octokit-plugin-config for context.config (#​1362) (a235671)

    If you mocked http requests for configuration files, you will have to adapt them. Instead of returning a JSON response with a { content } object, where content is a base64 encoded version of your raw configuration, you can now return the content without encoding directly. Example

    Before

    nock("https://api.github.com")
      .get("/repos/wip/app/contents/.github%2Fwip.yml")
      .reply(200, {
        content: Buffer.from("terms: 🚧").toString("base64"),
      });

    After

    nock("https://api.github.com")
      .get("/repos/wip/app/contents/.github%2Fwip.yml")
      .reply(200, "terms: 🚧");

v10.8.0

Compare Source

Features

v10.7.1

Compare Source

Bug Fixes

v10.7.0

Compare Source

Features
  • setup: support registration using an existing GitHub app (#​1345) (d907bbd)

v10.6.0

Compare Source

Features

v10.5.0

Compare Source

Features

v10.4.1

Compare Source

Bug Fixes

v10.4.0

Compare Source

Features

v10.3.0

Compare Source

Features

v10.2.0

Compare Source

Features
  • sentry: set user ID to installation.id and username to repository owner login (when present) (#​1337) (4cf7de9)

v10.1.5

Compare Source

Bug Fixes

v10.1.4

Compare Source

Bug Fixes
  • prevent double new lines when using LOG_FORMAT=json (86c1973)

v10.1.3

Compare Source

Bug Fixes
  • "Cannot find module ../lib/private-key" error when running probot receive (#​1332) (d671d82)

v10.1.2

Compare Source

Bug Fixes
  • trigger release to update docs on probot.github.com (4c88da9)

v10.1.1

Compare Source

v10 release notes

This is the first stable release for v10. See all breaking changes and new features at
https://github.com/probot/probot/releases/tag/v10.0.0

Bug Fixes
  • app.auth(installationId) returns octokit instance with all required installation authentication settings (#​1326) (410302f)

v10.1.0

Compare Source

Features

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants