使用 ImgBot 自动为 Github 项目优化图片

我也不知道什么时候发现的这个项目,用了很久了,压缩率不错,非常适合白嫖图床~

简介

ImgBot 是一个为你节省时间优化图片的机器人。优化图片意味着不牺牲图片质量和更小的文件大小。 安装后不久,你会收到一个优化图片的 pull request。合并这个 pull request 就行了!Imgbot 会伴随你的工作,保持图片的优化。 ImgBot 默认使用无损压缩。

安装ImgBot

因为我已经安装了 ImgBot 了,所以文字与截图上的可能有点出入

访问 https://bit.ly/3gdqfiq ,点击 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,没用过的话可在账号设置Setting-->Developersettings-->Personal access tokens 生成(注意不是项目的Settings)。

将这个token填到项目Settings-->Secrets,名称为GIT_MERGE_TOKEN

参考链接

没及时加,清了记录,然后再搜搜不到了..
非原创,仅修改部分描述

本文经授权后发布,本文观点不代表立场,转载请联系原作者。
基于github + jsdelivr 的烟雨图床程序
« 上一篇 07-30
冰点文库下载器 v3.2.13 去广告修改版
下一篇 » 08-02

发表评论