TechSummary 2025-08-04
使用 GitHub Models 在 Actions 中自動化您的專案 🚀
Source: https://github.blog/ai-and-ml/generative-ai/automate-your-project-with-github-models-in-actions/
- GitHub Models 將 AI 整合到 GitHub Actions 工作流程中,實現專案內的自動化分類、摘要等功能。
- 權限設置: 使用 GitHub Models 前需在
permissions
區塊中加入models: read
,並建議遵循最小權限原則,以降低提示詞注入攻擊 (prompt injection) 風險。permissions:
contents: read
issues: write
models: read - 範例一:在 Bug 報告中請求更多資訊
- 透過
actions/ai-inference@v1
動作分析 Issue 內容,判斷錯誤報告是否包含足夠的重現資訊(例如:重現步驟、預期行為、實際行為、環境細節)。 - 若資訊不足,AI 會自動回覆提示作者補齊。此機制利用 AI 模型的回傳值(
pass
或詳細說明)建立工作流程中的條件邏輯。
- name: Analyze Issue For Reproduction
if: contains(join(github.event.issue.labels.*.name, ','), 'bug')
id: analyze-issue
uses: actions/ai-inference@v1
with:
model: mistral-ai/ministral-3b
system-prompt: |
Given a bug report title and text for an application, return 'pass' if there is enough information to reliably reproduce the issue, meaning the report clearly describes the steps to reproduce the problem, specifies the expected and actual behavior, and includes environment details such as browser and operating system; if any of these elements are missing or unclear, return a brief description of what is missing in a friendly response to the author instead of 'pass'. Consider the following title and body:
prompt: |
Title: ${{ steps.issue.outputs.title }}
Body: ${{ steps.issue.outputs.body }} - 透過
- 範例二:從合併的 Pull Request 建立發布說明
- 透過
gh CLI
搭配gh-models
擴充功能,在 Pull Request 合併時自動摘要其標題、內容、評論及審閱,並將摘要內容追加到指定的發布說明 Issue 中。
cat pr.json | gh models run xai/grok-3-mini \
"Given the following pull request information, generate a single, clear, and concise one-line changelog entry that summarizes the main change (feature, fix, or bug) introduced by this PR. Use neutral, user-facing language and avoid technical jargon or internal references. Only write the line, with no additional introduction or explanation text." > summary.md - 透過
- 範例三:摘要並優先處理 Issue
- 設定定期排程工作流程 (例如每週一早上 9 點),使用
gh CLI
抓取過去一週新開啟的 Issue,並將其傳遞給 AI 模型進行摘要、歸納主題及優先級排序,最終創建一個新的 Issue 來呈現週報摘要。 - 此範例使用獨立的
.prompt.yml
提示文件,提供更複雜的提示邏輯。
- 設定定期排程工作流程 (例如每週一早上 9 點),使用
Docker MCP Toolkit 如何與 VS Code Copilot Agent 模式協同工作 🐳
Source: https://www.docker.com/blog/mcp-toolkit-and-vs-code-copilot-agent/
- Docker MCP Toolkit 簡介: Docker Model Context Protocol (MCP) Toolkit 允許在 Docker 容器內託管 和管理 MCP 伺服器(模組化工具端點),這些伺服器暴露 API 以執行特定開發任務,如獲取 GitHub Issue 數據或自動化 CI 工作流程。其設計目標包括安全性(隔離容器)、可重用性(模組化元件)和可發現性(自動被 AI 工具發現)。
- 前提條件: 需要 Docker Desktop v4.43+、VS Code、GitHub Copilot 擴充功能(啟用 Chat 和 Agent 模式),以及可選的 GitHub Personal Access Token。
- 整合步驟:
- 啟用 Docker Desktop 中的 MCP Toolkit: 在 Docker Desktop UI 中找到 MCP Toolkit 選項卡。
- 啟動 MCP 伺服器: 可從 Docker Desktop UI 或 CLI 啟動,例如選擇 GitHub Official MCP 伺服器並配置 GitHub token。
- 啟動 MCP Gateway: 在 Docker Desktop 的 MCP Toolkit 的 Clients 頁籤中,複製並執行
docker mcp gateway run
命令,使 MCP 伺服器工具可被 VS Code 等客戶端發現。docker mcp gateway run
- 連接 MCP 到 Visual Studio Code: 在 VS Code 命令面板中選擇 "Add MCP Server",貼上
docker mcp gateway run
命令。 - 配置和使用 Copilot Agent 模式:
- 選項一 (GUI): 在 Copilot Chat 面板中啟用 Agent 模式,允許 Copilot 訪問外部工具。
- 選項二 (CLI): 手動運行
docker mcp gateway run
命令,並配置mcp.json
文件。
- 探索和測試: 成功配置後,可透過 Copilot 提示,例如 "List open issues in this GitHub repo" 或 "Trigger the CI pipeline for the latest commit",讓 Copilot 自動將任務路由到正確的容器化工具並返回結果。
- 結論: Docker MCP Toolkit 與 VS Code Copilot Agent 模式的整合,為開發者提供了可擴展、模組化且安全的自動化開發任務方法,簡化重複性工作並提升效率。
硬核問題:在購買前您應真正向加固鏡像供應商提出的問題 🛡️
Source: https://www.docker.com/blog/container-security-hardened-images-questions/
- 文章強調在評估加固鏡像供應商時,不應僅限於行銷術語,而需深入了解其流程、承諾及靈活性,以確保選擇的解決方案能真正提升安全性而非製造更多問題。
- 1. 更新與修補管理:
- CVE 回應速度與 SLA: 供應商對於新披露的關鍵及高危險 CVE 的更新速度和服務等級協議 (SLA) 是多少?
- 重建流程: 除了緊急修補,常規的重建流程是怎樣的?是否採用智慧、事件驅動的方式,避免不必要的日常重建?
- 通知與更新消費方式: 如何通知客戶更新? 是否提供 API、註冊表源或其他自動化方式來獲取更新?
- 2. 修改流程:
- 技術修改流程: 客戶如何精確地修改加固鏡像(例如 Dockerfile、專有工具、特定構建參數)?是否支援多階段構建?
- 修改不損害加固性: 如何確保客戶的修改不會無意中損害底層的加固性?是否有自動化檢查或驗證機制(例如安全掃描、策略執行、非 root 用戶強制執行)?
- 修改功能驗證: 提供哪些機制來驗證修改後的鏡像功能正常且未引入回歸(例如整合測試框架、預配置健康檢查)?
- 客製化請求周轉時間: 若供應商負責修改,其客製化修改請求或修補修改後鏡像的典型周轉時間是多久?
- 大規模修改管理: 對於需要大量獨特修改的大型組織,如何管理和擴展修改流程(版本控制、衝突解決、集中管理)?
- SBOM 生成與漏洞掃描: 修改是否允許輕鬆生成最終修改鏡像(包括客戶添加部分)的軟體物料清單 (SBOM) 和進行漏洞掃描?
- 3. 供應鏈安全與透明度:
- 鏡像出處與可驗證 SBOM: 鏡像的完整出處是什麼?是否提供包含所有依賴項(包括傳遞依賴項)的可驗證 SBOM?
- 供應鏈安全標準: 遵循哪些供應鏈安全標準(例如 SLSA、可重現構建)?如何證明?
- 第三方元件與開源許可證處理: 如何處理鏡像中的第三方元件和開源許可證?
- 不可利用漏洞與 VEX: 如何處理不可利用的漏洞並使用 VEX(可利用性說明)來澄清哪些漏洞是可觸達的?是否透明提供此資訊?
- 4. 支援、整合與生態系統兼容性:
- DevOps 工具與 CI/CD 平台整合: 如何與流行的 DevOps 工具和 CI/CD 平台(例如 Kubernetes、Jenkins、GitLab CI、Argo CD)整合?
- 支援範圍: 對於加固鏡像本身的問題與應用程式運行在其上產生的問題,支援的界限在哪裡?
- 安全團隊專屬支援: 是否提供專門的支援渠道或安全專家?
- 定價模式: 定價模式如何隨使用量和組織增長進行有效擴展,是否考慮潛在的客製化成本?
- 總結: 透過提出這些「硬核問題」,平台、DevOps 和 SecOps 團隊可以超越行銷口號,根據安全、敏捷軟體交付的實際需求來評估加固鏡像供應商。
IntelliJ IDEA 2025.2 發布!💡
Source: https://blog.jetbrains.com/idea/2025/08/intellij-idea-2025-2/
- IntelliJ IDEA 2025.2 版本帶來了強大的更新,旨在提高生產力、改善程式碼質量並支援最新的技術。
- 主要亮點速覽:
- 更智慧的 AI 輔助工作流程:
- AI Assistant: 全新功能、更高準確性,現已免費提供。
- Junie: 性能提升、支援 MCP 客戶端。
- IntelliJ IDEA 作為 MCP 伺服器: 為第三方 AI 代理提供支援。
- 資料庫工作流程: 更智慧、上下文感知輔助。
- 支援尖端技術:
- Java 25 Early Access
- Maven 4
- JSpecify
- Spring 開發者體驗大幅改善(Spring Debugger 外掛程式、Spring Modulith 支援)。
- 其他值得注意的更新:
- 虛擬執行緒調試 (Virtual thread debugging)
- 支援新的 Scala 功能
- 訂閱到期時的體驗改進
- 資料庫工作流程增強
- Web 開發更新
- 原生 Bazel 支援
- 更智慧的 AI 輔助工作流程:
- 新的更新分享方式:
- What's New 頁面: 精心策劃的最重要新功能和能力概覽。
- What's Fixed 部落格文章: 專注於品質改進、性能提升、UI 優化、錯誤修復和工作流程增強。
- 用戶可以從官網下載、IDE 內更新、使用 Toolbox App 或透過 Snap Packages 安裝。
JetBrains AI Assistant 更新:更佳上下文、更高離線靈活性、更深 IDE 整合 🧠
Source: https://blog.jetbrains.com/ai/2025/08/jetbrains-ai-assistant-2025-2/
- JetBrains AI Assistant 迎來重大升級,提供更智慧的程式碼補全、更佳的專案理解能力,以及對 AI 在 IDE 中運作方式的更多控制。
- 更智慧的程式碼補全:
- 透過 Mellum 模型改進和 RAG 技術實現更相關的補全結果,支援更多語言和文件類型,包括 SQL, YAML, JSON, Text, Markdown。
- 本地程式碼補全現提供 Java 和 C++ 的多行建議。
- 支援連接用戶偏好的本地模型(如 Qwen2.5-Coder, DeepSeek-Coder 1.3B, CodeStral, 開源 Mellum)實現靈活的離線工作流程。
- 專案規則 (Project Rules): 允許開發者為 AI 提供一致的、專案特定的上下文指令(例如程式碼風格、技術棧),這些規則儲存在專案中並可與團隊成員共享,確保一致的 AI 指導。
- 透過 OpenAI 兼容伺服器連接本地模型: 除了 Ollama 和 LM Studio,現在可以連接任何與 OpenAI API 兼容的本地模型伺服器(例如 llama.cpp, LiteLLM),實現免費且數據不離開本地機器的 AI 驅動功能。
- 支援在 AI 聊天中附加圖片: 使用 Anthropic 和 OpenAI 模型時,AI Assistant 現在支援圖片附件,使 AI 能夠分析圖片內容以協助錯誤修復、生成缺失的類或理解架構。
- AI 聊天模型選擇的更佳指導: 更新後的模型選擇器引入了聊天動作的自動模型選擇,以優化性能、準確性和成本。同時提供視覺指示器,顯示模型成本級別、推理能力及 Beta/實驗狀態。
- 所有 AI 功能均免費提供,包含無限程式碼補全、強大的本地工作流程和有限的雲端功能。
DataGrip 和資料庫工具 UX 調查 #2 結果 📊
Source: https://blog.jetbrains.com/datagrip/2025/08/04/datagrip-and-database-tools-ux-survey-2-results/
- 調查背景與目標: 第二次 UX 調查旨在評估上次調查後所做的改進是否符合用戶需求,並發現新的見解和優先級。
- 基於上次調查的改進:
- 透過導入內省級別和智慧刷新,加快了內省速度(適用於 Oracle, MySQL, PostgreSQL, Microsoft SQL Server, MariaDB)。
- SELECT 查詢(包含 JOIN)的結果可編輯。
- 非模態的創建和修改對話框。
- 新的快速入門指南和範例資料庫。
- 一系列新的 AI 驅動功能,包括雲端程式碼補全、解釋和修復 SQL 錯誤的工具、更好的上下文理解、將資料庫物件附加到 AI 聊天等。
- 本次調查更新: 擴大範圍以包含 Database Tools & SQL Plugin 用戶、收集 AI 工具使用情況和期望、探索團隊協作工作流程、評估對支援資料源和 SQL 方言的滿意度,並提高參與度。
- 用戶概況:
- 角色: 68% 為開發者/軟體工程師,其次為資料工程師、團隊負責人、架構師等。
- 經驗: 3-5 年經驗佔 38%,5 年以上經驗佔 20%。
- 使用模式: 55% 主要使用 DataGrip 作為獨立 IDE,40% 也使用 Database Tools & SQL Plugin(主要在 IntelliJ IDEA, PyCharm, WebStorm 中)。
- 技術棧: 最常用資料庫為 PostgreSQL (66%)、MySQL (50%)、Microsoft SQL Server (30%)。
- 日常任務: 編寫執行 SQL (97%)、瀏覽資料庫物件 (90%)、建立資料庫連接 (83%)、匯出數據 (76%)。
- 團隊協作: 64% 團隊規模為 2-10 人。最常分享 SQL 查詢 (92%)、查詢結果 (64%)、資料庫 Schema/物件 (50%)。
- AI 使用: 57% 已使用 JetBrains IDE 中的 AI 工具,最受歡迎的是 JetBrains AI Assistant (61%)、GitHub Copilot (50%)、JetBrains Junie (24%)。AI 主要用於編寫查詢 (75%)、查找和修復錯誤 (62%)、解釋程式碼和結果 (51%)、優化查詢性能 (47%)。
- 總體滿意度 (CSAT): 87.5% 的受訪者表示「滿意」或「非常滿意」,略低於去年的 90%,但考慮到參與人數更廣泛,仍屬良好。
- 各方面體驗滿意度:
- 品質與穩定性:91% CSAT (高)。
- 性能與響應速度:81% CSAT (略有提升,內省速度改進顯著)。
- 用戶介面:78% CSAT (有所提升,但仍是用戶抱怨較多的痛點,未來將有更大改進)。
- 功能完整性:81% CSAT (穩定,關注雲端和團隊協作功能)。
- 支援資料源和 SQL 方言範圍:90% CSAT (高,但仍有用戶指出 MongoDB, ClickHouse, Redis, Elasticsearch 需改進)。
- 官方文件:65% CSAT (有所提升,但需提高可見性)。
- 建議與回饋方式: 鼓勵用戶透過 YouTrack 提交問題或功能請求。
RubyMine 2025.2:Junie 和 AI Assistant 升級、更快的 Rails 專案啟動、增強的 Bundler 管理等 💎
- RubyMine 2025.2 版本已發布,帶來多項重要更新,提升開發效率和體驗。
- AI Assistant:
- ERB 程式碼補全: 雲端程式碼補全功能擴展至 ERB 標籤內,支援更好的字串處理、多行程式碼和避免重複閉合標籤。
- 更強的專案感知能力: AI Assistant 聊天功能利用 Search Everywhere 提升對類和符號的專案特定上下文理解,提供更準確的結果。
- 專案規則: 允許定義專案特定的指令(如程式碼風格、框架約束),確保團隊協作中的 AI 行為一致性。
- 更多連接本地模型的方式: 現可連接任何 OpenAI 兼容的本地模型伺服器(如 llama.cpp, LiteLLM),實現離線 AI 功能。
- 增強的程式碼建議: 提供更頻繁、上下文感知的程式碼建議,並改進多行輸出的格式。
- 圖片附件: 支援在聊天中附加圖片(使用 Anthropic 和 OpenAI 模型)。
- Junie (AI 編碼代理):
- 作為外掛程式在 RubyMine 2025.2 中提供,旨在簡化工作流程並提高生產力。
- 性能提升: Junie 速度提升高達 30%。
- MCP 支援: 支援 Model Context Protocol。
- 遠端開發功能: 增加對遠端開發的支援。
- Ruby:
- 程式碼檢查的更多控制: 可禁用特定類型簽名提供者,以避免衝突(例如 RBS 和 Sorbet)。
- Rails:
- 簡化專案啟動: 優化後台任務處理,非必要操作僅在需要時運行,加快專案啟動速度。
- 編輯遷移文件的更好性能: 解決在包含大量遷移文件的 Rails 專案中編輯時可能出現的卡頓和錯誤。
- RBS (Ruby Type Signature):
- RBS 懸停提示: 快速預覽類型定義和引用,無需離開當前文件。
- RBS Collection 整合預設啟用: 改善 Find Usages、Rename 重構和內嵌提示的準確性(需 RBS 3.2+)。
- Bundler:
- 簡化通知: 將跨模組的缺失 Gem 警報歸類為單一通知。
- 新的 Bundler 選項卡: 在 Settings | Tools 下提供新選項卡,允許自動安裝 Bundler 版本和定義所有 Bundler 命令的預設參數。
- 更智慧的 Gem 安裝: 依據模組安裝 Gem,避免衝突和不必要的重新安裝。
- 程式碼智慧 (Code Insight):
- 改進的異常常量補全: 在無前綴情況下觸發自動補全時,建議範圍更集中、精確。
- 調試器 (Debugger):
- 非模態安裝: 調試器 Gem 安裝現在是非模態的,進度直接顯示在終端視窗中,允許繼續工作。
- 回饋: 鼓勵用戶在評論區分享想法,並在 Issue Tracker 中建議和投票新功能。
WebStorm 2025.2:TypeScript-Go 語言伺服器支援、Baseline 支援、Bun 改進等 🌐
Source: https://blog.jetbrains.com/webstorm/2025/08/webstorm-2025-2/
- WebStorm 2025.2 發布,帶來多項新功能和改進,包括實驗性 TypeScript-Go 語言伺服器支援、Baseline 支援和 Bun 相關改進。
- 主要亮點:
- 實驗性 TypeScript-Go 語言伺服器支援: 兩種啟用方式:
- 首選:安裝官方
@typescript/native-preview
套件作為依賴項。 - 替代:本地克隆並構建 TypeScript-Go 儲存庫。
- 首選:安裝官方
- Baseline 支援: 在快速文件(quick documentation)中顯示 Web Platform Baseline 支援詳細資訊,基於
web.dev
的 Baseline 數據。 - Bun 改進:
- Bun 自動檢測: 專案中存在
bun.lockb
或bun.lock
文件時,WebStorm 會自動檢測並將 Bun 設為套件管理器,支援所有相關操作。 - Bun 作為解釋器: 自動為腳本創建 Bun 運行/調試配置。
- Bun 自動檢測: 專案中存在
- AI 功能:
- Junie 升級: 速度提升 30%,支援 MCP 和遠端開發。
- Junie GitHub 整合 [EAP]: 協助管理 Pull Request,無需打開 IDE。
- AI Assistant 改進: 更智慧的補全(支援 SQL, YAML, JSON, Markdown 等),專案規則,圖片附件支援,本地程式碼嵌入(JavaScript/TypeScript)。
- AI Assistant for VS Code [公開預覽]: 將 JetBrains AI 功能帶入 VS Code 工作流程,提供專案感知聊天、智慧程式碼補全、文件生成等,並引入 Agent 模式處理複雜多文件更改。
- 實驗性 TypeScript-Go 語言伺服器支援: 兩種啟用方式:
- 框架與技術:
- Angular: 支援在模板中使用
in
關鍵字(例如'key' in myObject
或@if (key in { foo: 'bar' })
)。
<div>{{ 'foo' in myObject }}</div>
@if (key in { foo: 'bar' }) {
has {{ key }}
} @else {
no {{ key }}
}- Prettier 存在時禁用內置格式化器: 自動禁用內置格式化器以避免衝突,確保格式化一致性。
- 更新 Prisma LSP: 與 Prisma 6.10.1 兼容,改善
.prisma
schema 文件的穩定性和行為。 - 重構 GraphQL 支援: 提高 JavaScript 和 TypeScript 文件中 GraphQL 語言注入的平滑度和可靠性。
- Angular: 支援在模板中使用
- UI/UX:
- 參數信息彈出視窗改進: 參數列表支援軟換行,使用與編輯器一致的語法高亮,自動滾動到活動簽名。
- 測試:
- Vitest 支援改進: 即使多個測試套件同名,測試樹也能正確顯示;
afterAll
鉤子中失敗的測試套件也能正確標記為失敗。 - Jest 支援改進: 使用
jest-circus
運行器且在 teardown 階段失敗的測試套件能正確報告為失敗;解決 Jest 測試被誤執行為 Playwright 測試的問題。
- Vitest 支援改進: 即使多個測試套件同名,測試樹也能正確顯示;
- 其他功能: 支援 Git fetch tags、GitHub Pull Request diff 導航評論、新的 Share Project on GitLab 選項、Kubernetes 支持非預設
values.yaml
文件等。
MPS 2025.2 Release Candidate 已就緒!🔧
Source: https://blog.jetbrains.com/mps/2025/08/the-mps-2025-2-rc-ready/
- JetBrains MPS 2025.2 的 Release Candidate (RC) 版本現已開放下載。
- 用戶可以查看先前 EAP 1 和 EAP 2 版本引入的更新內容。
- 完整的問題修復列表可在官方頁面找到。
開發人員為何應關注內部目錄安全性 🔒
Source: https://dzone.com/articles/why-developers-should-pay-attention-to-internal-di
- 文章指出,內部目錄(如 Active Directory 或 Azure AD)不僅僅是 IT 管理員的關注點,它們是任何組織的「神經系統」。
- 強調開發人員不應忽視內部目錄的安全性,因為這直接影響到整個組織的運營和安全穩定。
WebAssembly:從瀏覽器外掛到下一個通用運行時 ⚙️
Source: https://dzone.com/articles/webassembly-from-browser-plugin-to-the-next-univer
- 背景: 數位世界曾以瀏覽器為單一通用計算平台,但 JavaScript 作為解釋型語言存在性能瓶頸,難以處理計算密集型任務,也限制了 C++, C, Rust 等高性能語言的應用。
- WebAssembly (Wasm) 的崛起:
- Wasm 被視為繼 HTML, CSS, JavaScript 之後的第四個網路標準語言,但其目的並非取代 JavaScript,而是作為其強大補充。
- 它是一種低級別、類組合語言 的二進制指令格式,作為可移植的編譯目標。
- 開發者可以將用高性能語言編寫的現有程式碼編譯成緊湊的 Wasm 二進制文件,並以接近原生應用程式的速度直接在瀏覽器中運行。
- 影響: 這項突破開啟了以前在網路上不切實際的新型應用,例如複雜的瀏覽器內工具和全功能的 3D 遊戲引擎。
您的團隊是否已準備好迎接 AI?提升工程師技能的 5 項策略 🧑💻
Source: https://dzone.com/articles/ai-ready-5-strategies-to-upskill-your-engineers
- 文章指出,當前所有領導者都面臨著「我們的 AI 戰略是什麼?」的問題,但更核心的是「我的團隊是否已準備好迎接 AI?」這一挑戰。
- 強調購買新工具或啟動新服務是一回事,但轉變團隊技能和思維方式則完全不同。
- 大多數工程團隊並非天生就具備 AI 準備度,從傳統軟體團隊轉變為能自信構建、部署和管理 AI 驅動功能的團隊是一個漫長的過程。