使用 ImgBot 自動為 Github 項目優化圖片


我在逛Github學生優惠包是看到 ImgBot,它說能自己優化圖像,於是嘗試了一下。

簡介

ImgBot 是一個為你節省時間優化圖片的機器人。優化圖片意味着不犧牲圖片質量和更小的文件大小。 安裝后不久,你會收到一個優化圖片的 pull request。合並這個 pull request 就行了!Imgbot 會伴隨你的工作,保持圖片的優化。 ImgBot 默認使用無損壓縮。

安裝ImgBot

因為我已經安裝了 ImgBot 了,所以文字與截圖上的可能有點出入

首先來到 GitHub Market,點擊 Set up a free trial

 

然后選擇 Open Source (也就是免費的那個方案),然后點擊 Install it for free

檢查一下訂單,點擊 Complete order and begin installation

確認一下 ImgBot 可以訪問的倉庫 (默認 All),以及授予給 ImgBot 的權限,點擊 Install

看到這個頁面就說明 ImgBot 服務已經成功的安裝到你的 GitHub 賬戶上了

使用ImgBot壓縮圖片

將 ImgBot 服務安裝到你的 GitHub 賬戶上后,ImgBot 就會自動遞歸尋找並壓縮 Git 倉庫中的圖片文件 (如果圖片比較多,這一步可能回花費幾天的時間),壓縮好后會向你提一個像這樣的 PR。

確保你選的倉庫有圖片,不然不會收到PR。

你可以點開 Datails 查看壓縮前后大小、壓縮率等細節,確認無誤后,點擊 Merge pull request 開始合並

再輸入 commit 信息,點擊 Confirm merge

設置ImgBot

ImgBot 默認是無損壓縮的,可以按需進行配置為有損壓縮,對文件大小進一步壓榨。配置方法是在根目錄下添加 .imgbotconfig 文件

目前有三個配置項:

  • 提交 PR 的頻率:"schedule"
    • 選項:daily | weekly | monthly
  • 排除的文件:"ignoredFiles"

    • 選項:被排除文件的路徑,支持通配符*
  • 是否使用有損壓縮方式 (壓縮率更高):"aggressiveCompression"

    • 選項:true | false

以下是較為完整的例子:

{
    "schedule": "daily", // daily|weekly|monthly
    "ignoredFiles": [
        "*.jpg",                   // ignore by extension
        "image1.png",              // ignore by filename
        "public/special_images/*", // ignore by folderpath
    ],
    "aggressiveCompression": "true" // true|false
}

還有更多配置項,完整說明請見官方文檔

Github Actions自動合並ImgBot的pr

上傳圖片后,很快 ImgBot 就會對圖片進行壓縮,並在 github 的倉庫中發起一個 pull request。手動點擊合並按鈕對我來說實在是太麻煩了,能不能自動搞呢。有了 actions 沒啥不能的,

在 github actions 配置新增一個文件 .github/workflows/merge.yml。

 

name: Merge Imgbot

on:
  pull_request:
    types:
      - opened
      - ready_for_review
  pull_request_review:
    types:
      - submitted
  status: {}

jobs:
  automerge:
    runs-on: ubuntu-latest
    steps:
      - name: automerge
        uses: "pascalgn/automerge-action@v0.6.1"
        env:
          GITHUB_TOKEN: "${{ secrets.GIT_MERGE_TOKEN }}"
          MERGE_LABELS: ""
          MERGE_METHOD: "squash"
          MERGE_COMMIT_MESSAGE: "pull-request-description"
          MERGE_FORKS: "false"
          MERGE_RETRIES: "2"
          MERGE_RETRY_SLEEP: "10000"
          UPDATE_METHOD: "rebase"

這個 actions 配置中用到了 pascalgn/automerge-action,簡化了對於 pull request 的操作。 

這里用到了 secrets 保存 github access token,和上一步配置 PicGo 用到的 token 一樣,沒用過的話可在賬號設置Setting-->Developersettings-->Personal access tokens 生成(注意不是項目的Settings)。

將這個token填到項目Settings-->Secrets,名稱為GIT_MERGE_TOKEN。

 

 

參考鏈接:

1. mogeko.me-使用 ImgBot 無損壓縮博客中的圖片

2. 陳柏林的Blog-使用 ImgBot 自動為 Github 項目優化圖片

3. 半島鐵醬-我的 gitee 圖床,自動上傳、壓縮、獲取圖片 url


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM