npm 包 is-valid-github-event 使用教程

阅读时长 11 分钟读完

在前端开发领域中,开发者经常需要跟 Github 交互。如果您正在为 Github 开发应用程序或自动化脚本,那么您需要一种方法来验证 Github 事件是否合法。is-valid-github-event 是一个 NPM 包,允许您验证 Github 的事件,并确保它们来自合法的来源。

什么是 Github 事件

Github 事件是 Github 发出的 Webhook 服务器发送给您提供的 URL 的 HTTP POST 请求,用于通知您发生的事件。对于每种事件类型,Github 都会尝试发送相应的 JSON 负载。对于一个简单的 push 事件,负载可能如下所示:

-- -------------------- ---- -------
-
  ------ --------------------
  --------- -------------------------------------------
  -------- -------------------------------------------
  ---------- ------
  ---------- ------
  --------- ------
  ----------- -----
  ---------- ----------------------------------------------------------------------
  ---------- -
    -
      ----- -------------------------------------------
      ----------- -----
      ---------- ------ ---- -------- -- --- -----
      ------------ ----------------------------
      ------ ----------------------------------------------------------------------------------
      --------- -
        ------- ---- --------
        -------- ------------------
        ----------- ---------
      --
      ------------ -
        ------- ---- --------
        -------- ------------------
        ----------- ---------
      --
      -------- ---
      ---------- ---
      ----------- -
        ------------------
      -
    -
  --
  -------------- -
    ----- -------------------------------------------
    ----------- -----
    ---------- ------ ---- -------- -- --- -----
    ------------ ----------------------------
    ------ ----------------------------------------------------------------------------------
    --------- -
      ------- ---- --------
      -------- ------------------
      ----------- ---------
    --
    ------------ -
      ------- ---- --------
      -------- ------------------
      ----------- ---------
    --
    -------- ---
    ---------- ---
    ----------- -
      ------------------
    -
  --
  ------------- -
    ----- ---------
    ------- --------
    ------------ ---------------
    -------- -
      ------- ---------
      -------- --------------------
    --
    ---------- ------
    ----------- ----------------------------------
    -------------- -- ------------ ---- ------------ --------
    ------- ------
    ------ ----------------------------------
    ------------- -----------
    ------------- -----------------------
    ------------ -----------
    ----------- ---
    ------- ----
    ------------------- ------
    ----------------- ------
    ----------- ---------------
    ------------- -----
    --------------- -----
    ---------------- -----
    ----------- -----
    ------------ ------
    -------------- -----
    ------------- -----
    ----------- ------
    -------------------- ---
    ---------- -----
    -------- -----
    -------------- ---
    ----------- ------
    ----------------- ---------
    ------------- ------
    ---------------- --------
  --
  --------- -
    ------- --------
    -------- ------------------
  --
  --------- -
    -------- --------
    ----- ----
    ---------- ---------------
    ------------- ---------------------------------------------------
    -------------- ---
    ------ -------------------------------------
    ----------- ---------------------------
    ---------------- -----------------------------------------------
    ---------------- ------------------------------------------------------------
    ------------ -----------------------------------------------------
    -------------- ------------------------------------------------------------
    -------------------- ---------------------------------------------------
    -------------------- ------------------------------------------
    ------------ -------------------------------------------
    ------------- ------------------------------------------------------
    ---------------------- -----------------------------------------------------
    ------- -------
    ------------- -----
  -
-

npm 包 is-valid-github-event 的作用

从上面的负载中可以看到,有许多不同的消息类型。每种消息类型需要不同的验证方式。is-valid-github-event 包封装了验证 Github 事件的过程。

具体来说,is-valid-github-event 允许您:

  1. 验证传入的 json 数据是一个已知的 Github 事件类型
  2. 验证事件签名,以确保 Github 事件确实来自于 Github,并且未被篡改

npm 包 is-valid-github-event 的使用

下面我们来详细介绍 npm 包 is-valid-github-event 的使用方法。

1. 安装 is-valid-github-event

首先,您需要将 is-valid-github-event 安装到您的项目中,您可以通过在终端中输入以下命令来完成安装:

2. 引入 is-valid-github-event

在您的代码中引入 is-valid-github-event 包:

3. 验证 Github 事件

现在我们来编写一个代码片段,用于验证 Github 事件:

-- -------------------- ---- -------
----- ----- - --------------------
    -------- -------
    ---------- -
      ---------- -
        ----------- ---- ------
      -
    --
    ----------- --------
    ------- -------------
    ------------ ------------------------------------------------
    --------- ---------------------
---

-- ------- -
    ------------------- ----------
- ---- -
    ----------------- ------ --------------
-

在该代码中,我们重点描述了如下四个计算机参数:

  1. event:Github 事件的名称;
  2. payload:Github 事件携带的负载数据;
  3. signature:Github 对事件签名的 hmac;
  4. secret:您在 Github 中为挂载点设置的 webhook 密钥。

如果验证成功,isValidGithubEvent 函数将返回 true,否则将返回 false。

示例代码

在这里,我们提供了一个完整的代码示例,以更好地展示如何在您自己的代码中使用 is-valid-github-event 包:

-- -------------------- ---- -------
----- ---- - ----------------
----- ------------------ - ---------------------------------

----- ---- - -----
----- ------ - ----------------------

----------------------- ---- -- -
  ----- ------ - ---
  -------------- ----- -- --------------------
  ------------- -- -- -
    ----- ------ - ----------------------
    ----- --- - -------------------------------
    ----- ----- - ------------------------------
    ----- -- - ---------------------------------
    ----- ------- - ------------------
    ----- ----- - --------------------
      ------
      --------
      ---------- ----
      -------
      --
    ---
    -- ------- -
      --------------- ------ --------
      ------------------ ---------------- ---------------------
      ------------------------------------
      -------
    - ---- -
      ----------------- ------ --------------
      ------------------ ---------------- ---------------------
      ------------------------------------
      -------
    -
  ---
----------------

------------------- -- ------- -------- -----------

在实际代码中,您可以根据需要更改 secret、port 或任何其他变量。

结论

通过本文,您现在已经知道 is-valid-github-event 的 npm 包是如何工作的,以及如何验证来自 Github 的事件。这个包的用途很广泛,您可以在自己的应用程序或自动化脚本中使用它,以确保 Github 事件的有效性。如果您想知道更多有关该包的信息,请查看官方文档(https://github.com/nlf/is-valid-github-event )。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600559e681e8991b448d78a5

纠错
反馈