2025/03/13

如何使用 cURL 刪除與查詢 GitHub Packages 的 NuGet 套件版本

在 GitHub Packages 上,你可以透過 API 來查詢或刪除已發布的 NuGet 套件版本。本篇文章將介紹如何使用 curl 來執行這些操作。

🔍 查詢 NuGet 套件的所有版本

如果你想要取得某個 GitHub Organization 內的 NuGet 套件的所有版本,可以使用以下 curl 指令:

curl -H "Authorization: Bearer ghp_xxxxxx" \
     -H "Accept: application/vnd.github+json" \
     "https://api.github.com/orgs/YourOrgName/packages/nuget/ProjectName/versions"

這段指令會:

  • 使用 -H "Authorization: Bearer ghp_xxxxxx" 提供你的 GitHub Personal Access Token(PAT)來進行身份驗證。
  • 加上 -H "Accept: application/vnd.github+json" 以確保回傳的 JSON 資料格式符合最新 API 版本。
  • 向 GitHub API 發送請求,列出 Organization YourOrgName 下,NuGet 套件 ProjectName 的所有版本。

2025/03/10

透過 Git Subtree 無痛整合 GitHub 上的既有專案

Git Subtree 輕鬆合併專案,保留完整 commit 歷史

在軟體開發的過程中,時常會遇到這樣的需求:

  • 你有一個現有的 Git 專案,但需要將另一個儲存庫的內容整合進來,並且希望保留完整的 commit 歷史。

這時,Git 提供了幾種不同的方式來達成這個目標,其中 Git Subtree 是一個簡單又強大的解法。

本文將帶你了解 Git Subtree 的用途、與 Submodule 的差異,以及如何實際操作,讓你的開發流程更順暢!

2025/03/03

Ubuntu 24.04 取得當前硬碟總大小及已使用空間

df --block-size=1K  | awk '{total+=$2; used+=$3; avail+=$4} END {printf "總大小: %.2fG, 已使用: %.2fG, 可用: %.2fG\n", total/1024/1024, used/1024/1024, avail/1024/1024}'

就會得到

2025/03/02

修正 Ubuntu 24.04 systemd-networkd-wait-online 導致開機過慢問題

 輸入下方指令


sudo systemctl edit systemctl-networkd-wait-online.service
# 再ExecStart=/usr/lib/systemd/systemd-networkd-wait-online 加入--timeout=15
sudo systemctl daemon-reload


參考資料:

https://www.reddit.com/r/Ubuntu/comments/16xi5h0/how_do_i_fix_systemdnetworkdwaitonlineservice/

使用 GitHub Actions 在 NX Monorepo 中實現單元測試與 Cypress E2E 測試


  # 單元測試及E2E測試
  test:
    name: 單元測試及E2E測試
    runs-on: [ self-hosted, Ubuntu, 24.04 ]
    steps:
      # 單元測試
      - name: Unit Test
        run: pnpm nx test project
      # E2E 測試
      - name: E2E Test
        run: |
          # 安裝依賴套件
          sudo apt install -y libgtk2.0-0t64 libgtk-3-0t64 libgbm-dev libnotify-dev libnss3 libxss1 libasound2t64 libxtst6 xauth xvfb
          # 安裝 Cypress
          pnpm cypress install
          # 驗證 Cypress
          pnpm cypress verify
          # 執行 E2E 測試
          pnpm nx e2e project --headless