🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

維護 GitHub 個人資料很麻煩。新部落格文章?更新個人資料。新郵件清單?更新個人資料。製作了影片?也一樣。

我會在多個平台上發佈內容:我的部落格nickyt.co 、我的電子報OneTipAWeek.com我的 YouTube 頻道影片、工作影片以及 我作為嘉賓參與的影片。幾年前,我厭倦了手動更新,所以我決定將其自動化。

我的 GitHub 個人資料頁面( github.com/nickytonline)現在可以自動更新,無需我任何操作即可獲取我的最新內容。以下是我的實作方法。

我的 GitHub 個人資料頁面

GitHub 特殊倉庫

首先,我們來了解一下基礎知識。 GitHub 有一個很棒的功能:如果你建立一個與你的使用者名稱同名的公共倉庫,例如nickytonline/nickytonline ,它就會變成一個特殊的個人資料倉庫,倉庫中的 README.md 檔案會直接顯示在你的個人資料頁面上。

您可以按照GitHub 的官方指南進行設置,但基本步驟如下:

  1. 建立一個新的公共倉庫,名稱與您的使用者名稱完全相同。

  2. 建立時請務必勾選「新增 README 檔案」。

  3. 編輯 README.md 文件,新增您的個人資料內容。

大多數人都知道這部分內容,然後就止步於靜態內容了。但很少人意識到,當它與 GitHub Actions 結合使用時,威力會變得多麼強大。

我的配置

我的個人資料展示了三種類型的動態內容:

- [my YouTube channel](https://youtube.com/@nickytonline)
- [work video content](https://www.youtube.com/@pomerium_io)
- [videos where I'm a guest](https://www.youtube.com/watch?v=VmsuoZHiW5s&list=PLcR4ZgxWXeIAa0VXPJQ7fgXkx73A5TeGU)

所有這些資訊都會自動更新。我撰寫內容,發布後,它就會出現在我的GitHub個人資料頁面上。

GitHub Actions 來幫忙

自動化流程是透過 GitHub Actions 的工作流程實現的。腳本執行後,會更新 README 文件,然後 git 會將更改直接提交到主分支。下面我將向您展示我使用的三個工作流程。

對於 RSS 來源,我使用 Gautam krishna R 開發的部落格文章工作流程。這不需要額外的腳本編寫。

關於新聞簡訊文章:

name: Latest Newsletter Posts
on:
  schedule:
    # 1pm UTC on Mondays
    - cron: '0 13 * * MON'
  workflow_dispatch:

jobs:
  update-readme-with-blog:
    name: Update this repo's README with latest blog posts
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: gautamkrishnar/blog-post-workflow@master
        with:
          feed_list: 'https://rss.beehiiv.com/feeds/NggVbrRMab.xml'
          comment_tag_name: 'NEWSLETTER-POST-LIST'

部落格文章:

name: Latest content I make workflow
on:
  schedule:
    # Runs every day at midnight UTC
    - cron: '0 0 * * *'
  workflow_dispatch:

jobs:
  update-readme-with-blog:
    name: Update this repo's README with latest blog posts
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: gautamkrishnar/blog-post-workflow@master
        with:
          feed_list: 'https://www.nickyt.co/feed'

針對 YouTube 影片:

對於 YouTube 影片,我有一個自訂工作流程,它利用 YouTube API,拉取我最新的影片內容,然後將更改直接提交到主分支。

name: Update readme videos
on:
  schedule:
    # Runs every Monday at 1pm UTC
    - cron: '0 13 * * 1'
  workflow_dispatch:

jobs:
  update_profile_data:
    name: Update readme videos
    runs-on: ubuntu-latest
    environment: all
    steps:
      - uses: actions/checkout@v2
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '22'
      - name: Update README
        env:
          YOUTUBE_API_KEY: ${{ vars.YOUTUBE_API_KEY }}
        run: |
          cd scripts
          npm install
          node --experimental-transform-types update-readme.ts
      - name: Commit changes
        id: commit
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          git config user.name "GitHub Actions Bot"
          git config user.email "<>"
          git pull origin main
          git add .
          if [[ -n "$(git status --porcelain)" ]]; then
            git commit -m "Update README"
            git push origin main
          fi

每個工作流程的執行時間表都不同,但無論何時執行,如果該特定類型的內容有新內容,我的 GitHub 個人資料都會更新。

利用 GitHub Actions 生態系統

GitHub Actions Marketplace中擁有龐大的 GitHub Actions 生態系統。 blog-post-workflow操作只是利用現有解決方案而非從頭開始編寫程式碼的一個例子。

在編寫自訂工作流程/腳本之前,請先查看GitHub Actions Marketplace ,看看是否已經有人解決了您的問題。

README 文件模板

我們將自動化流程與來自特殊倉庫的 README.md 檔案配合使用,該檔案充當模板,其中包含特定的佔位符部分。以下是我的 README 文件的結構:

# Hi! I'm Nick Taylor. 👋🏻

[Static bio content here...]

## Latest Newsletter Posts

<!-- NEWSLETTER-POST-LIST:START -->
<!-- NEWSLETTER-POST-LIST:END -->

## Latest Blog Posts and Talks

<!-- BLOG-POST-LIST:START -->
<!-- BLOG-POST-LIST:END -->

## Upcoming Live Streams

<!-- STREAM-SCHEDULE:START -->
<!-- STREAM-SCHEDULE:END -->

## Latest Videos

<!-- VIDEO-LIST:START -->
<!-- VIDEO-LIST:END -->

HTML 註解之間的每個部分都會自動替換為 GitHub Actions 產生的內容。 blog blog-post-workflow操作會尋找預設的\<!-- BLOG-POST-LIST:START --><!-- BLOG-POST-LIST:END --> ,但您可以使用comment_tag_name參數進行自訂,就像我為我的新聞簡報部分 ( NEWSLETTER-POST-LIST ) 所做的那樣。

靜態內容(您的個人簡介、聯絡方式等)保持不變,而動態部分會自動更新。

身為內容創作者,我發布一期電子報、影片或部落格文章,我的 GitHub 個人資料就自動更新了!我無需手動維護多個平台上的內容。我可以專注於創作優質內容,而自動化流程則負責分發。

入門

如果你想建造類似的東西:

  1. 建立你的專屬個人資料倉庫。建立一個與你的使用者名稱完全相同的公共倉庫,例如 https://github.com/nickytonline/nickytonline

  2. 在 README 檔案中新增佔位符部分,用於放置動態內容。

  3. 先從一種內容類型開始(部落格文章通常是最簡單的)。

  4. 編寫一個簡單的腳本來取得和格式化資料,或使用現有的操作,例如gautamkrishnar/blog-post-workflow。

  5. 設定一個 GitHub Action 來按計劃執行它。

總結

透過自動化功能,您的個人資料會自動保持最新狀態,而不是停留在您上次記得更新時的快照。

已經好幾年了,我的GitHub個人資料一直都是最新的。我從來沒想過這個問題。

如果你定期發佈內容,那麼這個自動化流程就值得搭建。如果你想直接使用整套設置,可以查看我的專屬程式碼庫

如果你想和我保持聯繫,我的所有社交帳號都在nickyt.online

期待下次!

圖片來自Unsplash 用戶 Homa Appliances


原文出處:https://dev.to/nickytonline/how-i-automated-my-github-profile-and-you-can-too-399e


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝15   💬3   ❤️3
315
🥈
我愛JS
📝1   💬3   ❤️2
45
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付