前言
随着 GitHub Flow 的发展,越来越多的开发者选择使用 Probot 来构建他们的 GitHub 应用,Probot 可以轻松编写处理 GitHub WebHooks 的服务器less函数。例如,Probot 可以通过触发来自 GitHub 的事件并响应他们来自动执行一些操作。
而 @rtsao/create-probot-plugin 就是 Probot 的一个插件,通过它你能够更方便的创建在 Probot 中使用的插件。下面将详细讲解如何使用这个 npm 包。
环境准备
在开始学习和使用 @rtsao/create-probot-plugin 之前,需要先在您的本地环境安装以下依赖:
- node.js
- npm 或 yarn(这里使用 npm)
安装 @rtsao/create-probot-plugin
使用 npm 安装:
npm install -g @rtsao/create-probot-plugin
创建 Probot 插件
在安装好 @rtsao/create-probot-plugin 模块之后,我们就可以使用它来创建 Probot 插件。首先,在我们的工程目录下,我们使用以下命令来创建一个基于 Typescript 的 Probot 插件:
create-probot-plugin my-plugin
这里的 my-plugin 是你所创建项目的名称,可以根据你自己的喜好来命名。
你执行这个命令之后,所创建的项目将包括以下内容:
-- -------------------- ---- ------- ------------ --- ------------- - --- ----- --- ---- - --- -------- - --- -------------- --- ------------ --- ------------- --- ---------
其中,src/index.ts 是插件入口文件,src/hello-world.ts 是插件的示例代码。
编写插件代码
使用 @rtsao/create-probot-plugin 创建了项目之后,我们就可以编辑插件代码了。打开 src/hello-world.ts 文件,复制并粘贴以下代码:
import { Application } from 'probot'; export = (app: Application) => { app.log("Hello, World!"); }
这个插件很简单,它只是在控制台输出 Hello World,但是我们可以在它的基础上进行扩展。
运行插件
现在,我们已经创建了一个简单的插件,还需要在本地运行它。首先,我们需要进入项目目录,并使用以下命令安装项目的依赖:
cd my-plugin npm install
在安装项目依赖之后,我们需要运行以下命令来启动插件:
npm start
运行之后,你应该可以看到控制台输出 "Hello, World!"。
发布插件
你可能想要将你的插件发布到 npm 上, 那么我们可以使用以下命令:
npm login #登录npm npm publish #发布插件
使用插件
让我们显示在 GitHub 上执行操作。首先,我们的 Probot 应用需要有权限执行某个操作。例如在本例中,我们要让我们的 Probot 应用有权限拉取 repository 的信息,我们可以在这个页面上创建一个新的 OAuth Application:
https://github.com/settings/developers
创建应用成功之后,我们需要配置对应的环境变量。在我们创建的 my-plugin 目录下,创建一个名为 ".env" 的文件,并将环境变量写入其中:
APP_ID=xxxx WEBHOOKS_SECRET=xxxx PRIVATE_KEY_PATH=./private-key.pem
其中 APP_ID,WEBHOOKS_SECRET 及 PRIVATE_KEY_PATH 来自于 OAuth Application 配置页面。PRIVATE_KEY_PATH 是你的私钥文件路径,可以按照官网上的步骤进行生成。
然后就可以运行以下命令来启动插件:
npm start
这时候,我们的 Probot 应用会监听 webhook,你可以在应用 hooks 的配置页面上添加需要监听的 webhook。至此,我们就学会了如何创建一个 Probot 插件,以及如何监听 GitHub Webhooks 并作出相应的响应。
总结
这篇文章介绍了如何使用 @rtsao/create-probot-plugin 包来创建 Probot 插件,并详细讲述了如何运行以及发布插件。此外,我们还介绍了如何配置环境变量,以及如何使用插件来监听和响应 GitHub Webhooks。
希望这篇文章对你的学习有所帮助,并且对你理解 Probot 的原理和使用有所帮助。如果还有什么问题,欢迎在评论区留言,我会尽快回答。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005600b81e8991b448dddb5