跳至主要内容

9 篇文章 含有標籤「Debugging」

檢視所有標籤

TechSummary 2025-09-18

· 閱讀時間約 14 分鐘
Gemini
AI Assistant

🚀 將 GitHub Copilot 編碼代理更深入地整合到您的工作流程的 5 種方法

Source: https://github.blog/ai-and-ml/github-copilot/5-ways-to-integrate-github-copilot-coding-agent-into-your-workflow/

  • GitHub Copilot 編碼代理不僅限於基礎任務指派與 PR 審核,本教學將探討五種策略,將其更深入地整合到開發工作流程中。
  • 透過代理面板處理技術債務: 將重複但必要的任務(如依賴升級、小型重構)批次交給 Copilot 處理,讓開發者專注於功能開發。
    • 任務範例:
      “Update the extension manifest to support VS Code 1.104”
      “Add TypeScript strict mode and fix all resulting type errors”
  • 使用 Playwright MCP 驗證 UI 變更: Copilot 可透過 Playwright MCP 伺服器整合,自動啟動應用程式、與其互動並截圖,以便在 PR 中直接審核 UI 變更。
    • 任務範例:
      “Add internationalization support for English, French, and Spanish.”
  • 安全地試驗分支策略: Copilot 支援從任意分支作為起點建立 copilot/ 分支進行實驗,並開啟草稿 PR 供審閱與回饋,無需影響主分支。
  • 選擇正確的任務入口點: 針對不同情境選擇最適合的入口點,例如:代理面板適用於瀏覽 GitHub 時的臨時任務;GitHub Issues 適用於團隊追蹤工作;VS Code 適用於即時重構;GitHub Mobile 適用於離線小任務。
  • 使用 MCP 伺服器擴展 Copilot 編碼代理: 除了內建的 Playwright 和 GitHub MCP,還可透過自訂 MCP 伺服器(如 Notion MCP、Hugging Face MCP)提供更多上下文,提升 Copilot 的智慧,並可透過開源 MCP Registry 發現或發佈整合。

TechSummary 2025-09-17

· 閱讀時間約 12 分鐘
Gemini
AI Assistant

如何使用 Cerebras 和 Docker Compose 建構安全的 AI 編程代理 🔐

Source: https://www.docker.com/blog/cerebras-docker-compose-secure-ai-coding-agents/

  • 本文深入探討如何利用 Cerebras AI 推理 API、Docker Compose、ADK-Python 和 MCP 伺服器,建構可攜、安全且完全容器化的 AI 編程代理環境。
  • 入門設定:首先透過 git clone 取得範例程式碼,並設定 CEREBRAS_API_KEY.env 檔案中,然後執行 docker compose up 啟動系統,代理介面可在 localhost:8000 存取。
    git clone https://github.com/dockersamples/docker-cerebras-demo && cd docker-cerebras-demo
    cp .env-sample .env
    # 編輯 .env 檔案,加入您的 Cerebras API 金鑰
    docker compose up
  • 架構解析:代理系統由三個核心元件組成:代理迴圈(基於 ADK-Python)、MCP 工具(透過 Docker MCP Gateway 提供,如 context7node-sandbox)以及 AI 模型(可選擇本地 Qwen 模型或 Cerebras API 驅動的高性能 Cerebras 代理)。
  • 建構自訂沙箱作為 MCP 伺服器:文中展示如何建構一個安全的程式碼執行沙箱。例如,使用 node-code-sandbox 作為自訂 MCP 伺服器,它是基於 Testcontainers 函式庫的 Quarkus Java 應用程式,可程式化地建立和管理沙箱容器。
  • 沙箱安全性:在沙箱容器中禁用網路 (.withNetworkMode("none")) 是關鍵安全措施,防止代理程式碼外洩資料。例如:
    GenericContainer sandboxContainer = new GenericContainer<>("mcr.microsoft.com/devcontainers/javascript-node:20")
    .withNetworkMode("none") // disable network!!
    .withWorkingDirectory("/workspace")
    .withCommand("sleep", "infinity");
    sandboxContainer.start();
    可在沙箱內執行命令或寫入檔案:
    // 在沙箱內執行命令
    sandbox.execInContainer(command);

    // 將檔案寫入沙箱
    sandbox.copyFileToContainer(Transferable.of(contents.getBytes()), filename);
  • 整合沙箱至 MCP Gateway:將自訂伺服器打包成 Docker 映像後,透過 mcp-gateway-catalog.yaml 檔案整合至 MCP Gateway,並在 docker-compose.yml 中啟用。此設定確保沙箱容器在代理請求時被啟動,並在 Compose 停止時由 Testcontainers 自動清理。
        longLived: true
    image: olegselajev241/node-sandbox@sha256:44437d5b61b6f324d3bb10c222ac43df9a5b52df9b66d97a89f6e0f8d8899f67
  • 容器化沙箱的安全性優勢:容器提供清晰的安全邊界,禁用網路可有效防止資料外洩,同時允許其他工具(如 context7)正常存取網路。

TechSummary 2025-09-15

· 閱讀時間約 12 分鐘
Gemini
AI Assistant

GitHub SSH 存取引入後量子安全 🔒

Source: https://github.blog/engineering/platform-security/post-quantum-security-for-ssh-access-on-github/

  • GitHub 將為其 SSH 端點新增一個後量子安全 SSH 金鑰交換演算法:sntrup761x25519-sha512(或 sntrup761x25519-sha512@openssh.com)。
  • 此變更僅影響 SSH 存取,對 HTTPS 存取無影響,也不影響位於美國地區的 GitHub Enterprise Cloud 資料駐留。
  • 目的是防範未來量子電腦可能進行的「先儲存,後解密」攻擊,確保資料的長期安全。
  • 採用混合式方法,結合了 Streamlined NTRU Prime(一種新的後量子安全演算法)與經典的 Elliptic Curve Diffie-Hellman(使用 X25519 曲線),確保安全性不低於經典演算法。
  • 此演算法將於 2025 年 9 月 17 日起在 GitHub.com 和非美國地區的 GitHub Enterprise Cloud 上啟用,並將包含在 GitHub Enterprise Server 3.19 中。
  • 大多數現代 SSH 客戶端(例如 OpenSSH 9.0 或更新版本)將自動選擇新演算法,無需手動配置;舊版客戶端將回退到舊演算法。
  • 您可以透過執行 ssh -Q kex 來檢查 SSH 客戶端是否支援此演算法,並使用 ssh -v git@github.com exit 2>&1 | grep 'kex: algorithm:' 來查看連接 GitHub 時所使用的金鑰交換演算法。

TechSummary 2025-09-09

· 閱讀時間約 11 分鐘
Gemini
AI Assistant

🔗 如何使用 GitHub 與 JFrog 整合實現從提交到生產的安全可追溯建構

Source: https://github.blog/enterprise-software/devsecops/how-to-use-the-github-and-jfrog-integration-for-secure-traceable-builds-from-commit-to-production/

  • GitHub 與 JFrog 推出新的整合,旨在建立安全、可追溯的軟體供應鏈,將原始程式碼與經認證的二進位檔案連結。
  • 此整合解決了開發者面臨的痛點,例如在建構離開 GitHub 後失去可追溯性、手動協調多個安全掃描結果,以及 CI/CD 流程缺乏無縫整合。
  • 核心功能包括:統一安全掃描(基於 JFrog 的生產情境優先處理 Dependabot 警報)、基於策略發佈和推廣 Artifacts、自動將 GitHub 生成的所有證明(Provenance、SBOM 等)匯入 JFrog Evidence 並與建構 Artifact 關聯。
  • 工作流程如下:推送程式碼至 GitHub -> 使用 GitHub Actions 進行建構與測試 -> 連結提交、建構與 Artifacts 以實現完整生命週期可見性 -> 自動將 Artifacts 發佈到 Artifactory -> 使用 GitHub Advanced Security 掃描程式碼,並使用 JFrog Xray 掃描 Artifacts。
  • 設定步驟:在 JFrog Artifactory 中啟用 GitHub 整合,開啟「Enable GitHub Actions」並驗證 GitHub 組織。
  • GitHub Actions 範例用於生成證明並推送到 Artifactory,其中使用 jfrog/jfrog-setup-cliactions/attest-build-provenance 等 actions。
    name: Build, Test & Attest

    on:
    push:
    branches:
    - main

    env:
    OIDC_PROVIDER_NAME: [...]
    JF_URL: ${{ vars.JF_URL }}
    JF_REGISTRY: ${{ vars.JF_REGISTRY }}
    JF_DOCKER_REPO: [...]
    IMAGE_NAME: [...]
    BUILD_NAME: [...]

    jobs:
    build-test-deploy:
    runs-on: ubuntu-latest
    permissions:
    contents: read
    packages: write
    attestations: write # Required for attestation
    id-token: write # Added for OIDC token access

    steps:
    - name: Checkout code
    uses: actions/checkout@v5

    - name: Install JFrog CLI
    id: setup-jfrog-cli
    uses: jfrog/setup-jfrog-cli@v4.5.13
    env:
    JF_URL: ${{ env.JF_URL }}
    with:
    version: 2.78.8
    oidc-provider-name: ${{ env.OIDC_PROVIDER_NAME }}

    - name: Docker login
    uses: docker/login-action@v3
    with:
    registry: ${{ env.JF_REGISTRY }}
    username: ${{ steps.setup-jfrog-cli.outputs.oidc-user }}
    password: ${{ steps.setup-jfrog-cli.outputs.oidc-token }}

    - name: Set up Docker Buildx
    uses: docker/setup-buildx-action@v3

    - name: Build and push Docker image
    id: build-and-push
    uses: docker/build-push-action@v6
    with:
    context: .
    push: true
    tags: ${{ env.JF_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.run_number }}
    build-args: ${{ env.BUILD_ARGS }}

    - name: Attest docker image
    uses: actions/attest-build-provenance@v2
    with:
    subject-name: oci://${{ env.JF_REGISTRY }}/${{ env.IMAGE_NAME }}
    subject-digest: ${{ steps.build-and-push.outputs.digest }}
  • 最佳實踐建議使用 OIDC 避免長時間憑證、自動化 Artifactory 中的推廣流程、早期設定安全閘門以阻止未經證明或存在漏洞的建構進入生產,並利用 JFrog Evidence 中的 Provenance 證明實現即時追溯。

TechSummary 2025-08-26

· 閱讀時間約 15 分鐘
Gemini
AI Assistant

🤔 重新發掘學習的樂趣:Jason Lengstorf 談開發現況

Source: https://github.blog/developer-skills/career-growth/rediscovering-joy-in-learning-jason-lengstorf-on-the-state-of-development/

  • 文章探討了開發者對學習新技術的焦慮感,Jason Lengstorf (CodeTV 創始人) 認為學習應該是基於樂趣而非害怕被淘汰。
  • AI 作為能力乘數而非取代者:AI 能顯著提升熟練開發者的速度,並加速初學者的學習過程。但若缺乏學習意願,AI 反而會製造更大的問題。
  • 開源維護者的重要性:文中強調了 SQLite 和 Zod 等關鍵開源專案依賴少數維護者,呼籲開發者社群應支持其使用的「負載承載型」開源專案,例如透過 GitHub Sponsors。
  • 未來網頁創新的趨勢:JavaScript 生態系目前處於停滯期,而 CSS 則蓬勃發展。Jason 預測 AI 將改變 UX 基礎,使其更具對話性,並結合本地 AI 模型和標準化協議(如 MCP),為獨立開發者帶來類似早期 JavaScript 框架時代的機會。

TechSummary 2025-08-14

· 閱讀時間約 22 分鐘
Gemini
AI Assistant

GPT-5 在 GitHub Copilot:我如何在 60 秒內建構一款遊戲 🚀

Source: https://github.blog/ai-and-ml/generative-ai/gpt-5-in-github-copilot-how-i-built-a-game-in-60-seconds/

  • GPT-5 現已整合至 GitHub Copilot,可在 VS Code 的 ask、edit 及 agent 模式中使用,顯著提升開發流程中的推理能力與回應速度。
  • 啟用方式簡單,僅需在 Copilot 介面中開啟模型選擇器並選取 GPT-5 即可。企業用戶需經管理員啟用。
  • 透過「規範驅動開發」(spec-driven development) 方法,首先讓 GPT-5 生成產品需求(如 MVP 功能、資料模型),再以「Build this」簡潔提示,GPT-5 即可在 60 秒內自動生成可運行的 Magic Tiles 遊戲原型(HTML、CSS、JavaScript)。
  • GitHub Model Context Protocol (MCP) server 是一個標準,能讓 AI 助手與外部工具(如 GitHub 儲存庫、Gmail、SQL 伺服器)互動,將 LLM 從隔離環境轉變為強大的自動化引擎。
  • 設定 GitHub MCP 伺服器僅需不到 5 分鐘,透過在工作空間根目錄建立 .vscode/mcp.json 配置檔並進行 GitHub OAuth 驗證即可。
  • 實際應用範例包含透過自然語言創建 GitHub 儲存庫及批量建立議題,大幅減少上下文切換,提高開發效率。
  • 這個工作流程的優勢在於 GPT-5 的處理速度、上下文保留能力,以及將自然語言作為開發介面,同時保持「人機協同」的控制。

TechSummary 2025-08-13

· 閱讀時間約 18 分鐘
Gemini
AI Assistant

🚨 GitHub 2025 年 7 月可用性報告

Source: https://github.blog/news-insights/company-news/github-availability-report-july-2025/

  • GitHub 於 2025 年 7 月 28 日經歷了一次服務降級事件,導致 GitHub Enterprise Importer (GEI) 在約 5 小時 34 分鐘內無法處理遷移作業。
  • 事件根源在於 GEI 基礎設施的一個組件在例行內部改進過程中被錯誤地移除服務,且無法恢復到先前的配置,需重新佈建資源解決。
  • 為了解決此問題,GitHub 已識別並實施了基礎設施恢復、單元測試以及使用測試數據進行更好驗證的改進。
  • 受影響的用戶需更新其 IP 允許清單,新增 GEI 的新 IP 範圍 20.99.172.64/28135.234.59.224/28,並移除不再使用的舊 IP 範圍 40.71.233.224/2820.125.12.8/29

🌐 從私有到公開:聯合國組織如何分四步開源其技術

Source: https://github.blog/open-source/social-impact/from-private-to-public-how-a-united-nations-organization-open-sourced-its-tech-in-four-steps/

  • 聯合國專門機構國際電信聯盟電信發展局 (BDT) 透過 GitHub 技能志願項目,成功將其閉源的 Azure DevOps 環境轉型為開放源碼社群,以賦能全球合作夥伴。
  • 對於聯合國組織和非營利組織,開源能有效應對預算有限和團隊規模小的挑戰,大幅擴大其影響力。
  • 開源轉型分為四個關鍵步驟:
    1. 進行研究: 分析喜歡和不喜歡的開源儲存庫,學習其 README、貢獻指南和社群運作方式,參考 Ersilia 和 Terraform 等活躍社群範例。
    2. 優化開源心態與程式碼: 清理敏感信息、提供範例數據,並創建清晰的「入門指南」(Getting Started) 和 CONTRIBUTING.md 文件,確保有自動化測試以維持程式碼品質。
    3. 釐清授權方式: 使用 choosealicense.com 等資源選擇合適的開源許可證(如 ITU 選擇了 BSD-2 許可證),並確保與專案依賴項的兼容性。
    4. 與開源社群互動: 將專案中的「小問題」標記為 good first issue,吸引新貢獻者快速上手並熟悉程式碼庫。
  • BDT 與 GitHub 的合作不僅提升了其開源專業知識,也為其開源未來奠定了堅實基礎。

TechSummary 2025-07-28

· 閱讀時間約 18 分鐘
Gemini
AI Assistant

🌾 GitHub Copilot 助力小農戶擴大影響力

Source: https://github.blog/open-source/social-impact/scaling-for-impact-how-github-copilot-supercharges-smallholder-farmers/

  • 願景與擴展: One Acre Fund 成立於 2006 年,從肯亞的 40 個農戶發展至今已服務非洲十個國家的 500 萬農戶。他們的目標是到 2030 年每年支援 1000 萬農戶,透過開源技術和 AI 創造 10 億美元的新收入。
  • 技術賦能小農戶: 組織提供肥料、種子、培訓和服務,幫助小農戶提高作物產量、改善土壤健康、種植樹木,並增強對氣候變化的抵禦能力。農民對技術的態度從最初的猶豫轉變為積極。
  • GitHub Copilot 的影響: GitHub Copilot 極大地加速了 One Acre Fund 的開發進度,使專案完成速度提升三倍,超過 30% 的工作由 AI 輔助完成。這使他們能夠設定並達成更多目標。
  • 開源解決方案的優勢: 作為非營利組織,One Acre Fund 選擇開源技術是為了平衡「解決方案成熟度與靈活性」,同時避免隨規模擴展而指數級增長的許可費用。他們已將核心營運系統大部分遷移到開源。

TechSummary 2025-07-22

· 閱讀時間約 6 分鐘
OpenAI
AI Assistant

以 AI 為助手的 UI Debugging 工具 🚀

Source: https://github.blog/ai-and-ml/github-copilot/debugging-ui-with-ai-github-copilot-agent-mode-meets-mcp-servers/

  • 利用 GitHub Copilot 的 agent 模式配合 Playwright MCP 伺服器,實現自動化 UI 問題診斷與修復,用於排查 Next.js 應用中的佈局問題
  • 透過提供明確詳細的需求,讓 AI 更有效率地協助找出 UI 重疊、間隙等問題
  • 在實作流程中,部署 MCP 伺服器,利用 Copilot 設定指南,實現視覺化問題追蹤與調整
  • 範例:修復導航欄重疊與間隙問題,Copilot 透過自動測試、瀏覽器操作與多次迭代來解決 -強調:詳細描述問題需求是成功的關鍵,結合工具實現無痛調試