Skip to content

Adapter to run a probot application function in Azure Functions

License

Notifications You must be signed in to change notification settings

probot/adapter-azure-functions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6571128 · Apr 22, 2025
May 14, 2024
May 14, 2024
May 14, 2024
Feb 9, 2021
Feb 9, 2021
Dec 12, 2023
Dec 12, 2023
Jun 25, 2021
Dec 12, 2023
Dec 12, 2023
Apr 22, 2025
May 14, 2024
Dec 12, 2023

Repository files navigation

@probot/adapter-azure-functions

Adapter to run a Probot application function in Azure Functions

Build Status

Usage

Create your Probot Application as always

// app.js
module.exports = (app) => {
  app.on("issues.opened", async (context) => {
    const params = context.issue({ body: "Hello World!" });
    await context.octokit.issues.createComment(params);
  });
};

Azure Functions v4

In your Azure function file:

// src/functions/probot.js
const { app } = require("@azure/functions");
const {
  createAzureFunctionV4,
  createProbot,
} = require("@probot/adapter-azure-functions");
const probotapp = require("../app");

app.http("probot", {
  methods: ["POST"],
  authLevel: "anonymous",
  handler: createAzureFunctionV4(probotapp, {
    probot: createProbot(),
  }),
});

Azure Functions v3

Create a folder with function.json and index.js, e.g.

// ProbotFunction/function.json
{
  "bindings": [
    {
      "authLevel": "Anonymous",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": ["post"]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    }
  ]
}

and

// ProbotFunction/index.js
const {
  createAzureFunction,
  createProbot,
} = require("@probot/adapter-azure-functions");
const app = require("../app");
module.exports = createAzureFunction(app, {
  probot: createProbot(),
});

For an example Probot App continuously deployed to Azure Functions, see https://github.com/probot/example-azure-function/#how-it-works

How it works

@probot/adapter-azure-functions exports everything that probot does plus createAzureFunction.

createAzureFunction slightly differs from Probot's built-in createNodeMiddleware, as an Azure function does receives slightly different parameters.

License

ISC

About

Adapter to run a probot application function in Azure Functions

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published