跳至主要内容

19 篇文章 含有標籤「Open Source」

檢視所有標籤

TechSummary 2025-10-14

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

💻 GitHub Copilot 與 AI 代理如何拯救傳統系統​

Source: https://github.blog/ai-and-ml/github-copilot/how-github-copilot-and-ai-agents-are-saving-legacy-systems/

  • 挑戰與機遇: 傳統 COBOL 系統(65年歷史,支援銀行、保險等關鍵業務)面臨開發者短缺問題。GitHub Copilot 及自主 AI 代理提供現代化解決方案,無需掌握 COBOL 即可進行系統更新。
  • 微軟 Julia Kordick 的三步驟框架:
    1. 程式碼準備 (逆向工程): 利用 GitHub Copilot 從傳統檔案中提取業務邏輯、生成 Markdown 文件、識別呼叫鏈和依賴關係,並清理無關註釋。
      # Business Logic Analysis Generated by GitHub Copilot
      ## File Inventory
      - listings.cobol: List management functionality (~100 lines)
      - mainframe-example.cobol: Full mainframe program (~10K lines, high complexity)

      ## Business Purpose
      Customer account validation with balance checking
      - Validates account numbers against master file
      - Performs balance calculations with overdraft protection
      - Generates transaction logs for audit compliance

      ## Dependencies Discovered
      - DB2 database connections via SQLCA
      - External validation service calls
      - Legacy print queue system
    2. 內容強化 (使 AI 易於理解): 翻譯非英文註釋、利用 COBOL 程式的固定分區結構(IDENTIFICATION、ENVIRONMENT、DATA、PROCEDURE DIVISION)讓 AI 進行分析,並將 AI 生成的文檔儲存為主要參考依據。
      "Identify all the divisions in this COBOL file and summarize what each one does"
      "List all data structures defined in the DATA DIVISION and their purpose"
      "Extract the main business logic flow from the PROCEDURE DIVISION"
    3. 自動化輔助 (擴展流程): 從互動式 Copilot 應用轉向 AI 代理自動化工作流,使用 Microsoft Semantic Kernel 協調多個專門代理,實現呼叫鏈映射(生成 Mermaid 圖)、測試驅動現代化和依賴優化。
  • 局限性與實際應用: AI 並非萬靈丹,人類專家仍需參與驗證。微軟開源了 Azure Samples 框架 (aka.ms/cobol),包含專門代理、成本追蹤及人工驗證點,幫助開發者快速啟動現代化進程。
    git clone https://github.com/Azure-Samples/Legacy-Modernization-Agents
    cd Legacy-Modernization-Agents
    ./doctor.sh setup
    ./doctor.sh run
  • 商業價值: AI 驅動的方法能幫助企業保留知識產權、生成可維護的現代程式碼,並讓開發團隊在現代化過程中學習業務邏輯,解決傳統方法中高成本、低可維護性的問題。

TechSummary 2025-10-09

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

Git Merge 2025 回顧:Git 二十年里程碑 🎉​

Source: https://github.blog/open-source/git/20-years-of-git-2-days-at-github-hq-git-merge-2025-highlights/

  • Git Merge 2025 在 GitHub 總部舉行,紀念 Git 誕生二十週年,匯集全球貢獻者共同展望其未來。
  • 第一天:提供多元化的技術演講,涵蓋 Git 內部機制、創新工作流程及未來發展,適合從初學者到維護者的各級參與者。
  • Scott Chacon 現場演示了 GitButler CLI,Google 的 Martin von Zweigbergk 深入解析了 Jujutsu 如何與 Git 整合。
  • Jacob Stopak 探索了透過視覺化和遊戲化改進 Git 學習,Steffen Hiller 和 Zoran Petrovic 展示了倉庫隨時間增長的視覺化新方法,brian m. carlson 則探討了 SHA-256 互操作性的下一步。
  • 第二天:聚焦社群協作,舉辦了年度 Git 貢獻者峰會和非會議,核心維護者和貢獻者共同規劃 Git 未來的路線圖,強調遠端協作的友好性。
  • 活動特別感謝所有演講者、貢獻者、志願者及參與者,以及贊助商 GitButler 和 Google。

TechSummary 2025-10-08

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

🚀 隨時隨地透過 GitHub Copilot 程式碼代理和行動裝置完成緊急修復​

Source: https://github.blog/developer-skills/github/completing-urgent-fixes-anywhere-with-github-copilot-coding-agent-and-mobile/

  • 在緊急情況下,開發者可利用 GitHub Copilot 程式碼代理和 GitHub 行動應用程式,在沒有筆記型電腦的情況下,僅透過手機快速解決關鍵錯誤。
  • 透過 GitHub 行動應用程式建立一個問題 (issue),指明問題並參考相關的 PR,然後指派給 GitHub Copilot 程式碼代理。Copilot 會在數分鐘內生成一個修復的 PR,可直接在手機上審查、測試並批准部署。
  • 關鍵要點 1:利用指示文件 (.github/copilot-instructions.md)。這些文件提供 Copilot 關於專案目的、技術棧、架構限制、程式碼標準等背景資訊,顯著提升建議的品質和相關性。
    # Copilot Instructions

    - Use Next.js App Router with React and TypeScript across the project.
    - Use pnpm for all package management commands (not npm or yarn).
    - Use Tailwind CSS v4 with a mobile-first approach; enhance with sm:/md:/lg:/xl: as needed.
    - Prefer server components by default; add "use client" only when needed (event handlers, browser APIs).
  • 關鍵要點 2:熟悉 Copilot 程式碼代理。將 Copilot 視為團隊成員,指派問題、審查其創建的 PR,並追蹤其工作會話,了解其能力。建立問題時,請務必提供清晰、具體且定義明確的上下文指示。
  • 關鍵要點 3:建立最佳實踐和自動化流程。利用 IssueOps 將 GitHub Issues 轉化為自動化的指令介面,並結合 GitHub Actions 觸發工作流程。透過預設的 Issue 模板可以節省時間並確保提供 Copilot 所需的詳細資訊。
    name: "Bug (Copilot Coding Agent-ready)"
    description: "Report a bug with details so Copilot can propose a fix via PR."
    title: "[Bug]: <short summary>"
    labels: ["bug", "triage", "copilot-coding-agent"]
    projects:
    - "my-org/1234"
    assignees: []
    body:
    - type: markdown
    attributes:
    value: |
    Thanks for reporting a bug! This template collects the details Copilot’s coding agent needs to propose a fix.
  • 結合這些 GitHub 功能,能大幅提升開發效率,讓團隊無論身在何處都能應對挑戰。

TechSummary 2025-10-2

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

如何利用 GitHub Copilot 在五小時內自動化實現無障礙合規性 🧑‍💻​

Source: https://github.blog/ai-and-ml/github-copilot/how-we-automated-accessibility-compliance-in-five-hours-with-github-copilot/

  • GitHub 過去的無障礙合規修復流程是手動且效率低下,導致反應時間慢、追蹤不一,且無法規模化。
  • 透過 GitHub Copilot,團隊在約五到六小時內,將此流程轉變為自動化、可審計的循環,包括自動建立 GitHub Issues、更新現有問題、交叉引用 CRM 追蹤、自動關閉已解決的問題、同步指派者及提及相關利害關係人。
  • Copilot 透過快速原型設計和測試,讓領域專家直接構建自動化解決方案,大幅減少傳統開發所需的數週時間,將工程師從基礎骨架工作解放,專注於安全、規模化與生產強化。
  • 建構流程輕量化,包括:用簡潔語言定義規則、請 Copilot 調整程式碼而非從零開始、使用小型合成數據測試邏輯、審查輸出並優化提示、添加防護措施(如冪等性、減震機制)、記錄決策並重新運行測試以確保無回歸。
  • 自動化成果包括:修復問題迅速出現、所有權和狀態集中化、減少重複或過時的溝通、治理工作轉向高價值分析。Copilot 的賦能讓領域專家能夠直接構建原型,降低了未來合規工具的開發門檻。

TechSummary 2025-09-23

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

🚀 使用 GitHub Copilot 代理模式現代化 Java 專案的逐步指南​

Source: https://github.blog/ai-and-ml/github-copilot/a-step-by-step-guide-to-modernizing-java-projects-with-github-copilot-agent-mode/

  • GitHub Copilot 代理模式將 Copilot 從被動建議工具轉變為主動協作夥伴,能理解高層次指令並執行多步驟任務,無需詳細指示。
  • 搭配 GitHub Copilot 應用現代化 VS Code 擴充功能,此工具組提供互動式、逐步指引,幫助開發者更快、更少錯誤地升級和遷移 Java 專案。
  • 現代化流程包括:分析專案、生成升級計畫、自動應用變更、修復建構問題、驗證測試、檢測並修復 CVEs,並提供完整的摘要報告。
  • 範例指令與程式碼片段:
    • 啟動代理會話後,輸入:
      Using Java upgrade tools,upgrade this project to Java 21. Analyze deprecated APIs, update Gradle dependencies, and propose a safe, testable migration plan.
    • 程式碼升級前後對比:
      // Before (deprecated constructor)
      View view = this.resolver.resolveViewName("intro", new Locale("EN"));

      // After Java 21 upgrade
      View view = this.resolver.resolveViewName("intro", Locale.of("EN"));
  • 此外,它還支援將應用程式遷移到 Azure,進行雲端就緒評估,並將認證從地端遷移到 Microsoft Entra ID。
  • 自動化 CVE 掃描是其關鍵安全功能,可智慧地提出安全版本替換或推薦替代函式庫,以維持安全合規。

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-16

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

🚀 GitHub MCP 註冊中心:加速發現 MCP 伺服器​

Source: https://github.blog/ai-and-ml/github-copilot/meet-the-github-mcp-registry-the-fastest-way-to-discover-mcp-servers/

  • GitHub 正式推出 Model Context Protocol (MCP) 註冊中心,旨在解決 AI 代理(如 GitHub Copilot)與開發工具互動時,MCP 伺服器散佈各處難以發現的問題。
  • MCP 註冊中心作為集中平台,簡化了 MCP 伺服器的探索、瀏覽和使用,促進更開放、互通的 AI 生態系統。
  • 它提供多項功能,包括在 VS Code 內的一鍵安裝發現能力、依據 GitHub 星標和社群活躍度排序、以及與 GitHub Copilot 和任何 MCP 相容主機的整合。
  • 未來規劃允許開發者直接發布 MCP 伺服器至開源 MCP 社群註冊中心,並自動同步至 GitHub MCP 註冊中心,以建立統一且可擴展的發現路徑。

TechSummary 2025-09-12

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

🛠️ 以開源和 AI 構建個人應用程式​

Source: https://github.blog/open-source/maintainers/building-personal-apps-with-open-source-and-ai/

  • 強調小工具的魔力:即使任務再小,一個能精準滿足需求的工具也能帶來巨大影響,例如將不同格式的答案轉換為 Markdown 列表,或將 CSV 轉換為 Markdown,這些都能大幅節省時間和心力。
  • 開源作為實驗場:GitHub 等開源平台是尋找、修改和分享個人工具的絕佳場所。若已有類似工具,可透過 Fork 進行調整以符合個人工作流程;若將自己的工具開源,也能啟發他人貢獻新功能,如個人待辦應用程式被建議新增「暫停任務履歷」功能。
  • AI 作為倍增器:AI 技術如 GitHub Copilot 大幅加速個人軟體開發。過去需耗時處理的框架、錯誤,現在 AI 能協助專案建構、故障排除,甚至解釋複雜程式碼,降低了開發門檻。
  • 減少心智負擔:透過將重複性任務自動化並利用 AI 輔助,開發者能從繁瑣工作中解放,專注於更具創造性或有意義的工作,讓軟體開發過程變得更加愉快。
  • 分享與成長:當工具開源並有其他人使用時,安全性與可維護性變得重要。社群的參與能協助發現問題、提出改進,甚至帶領專案走向新方向,透過協作共同成長。

TechSummary 2025-08-28

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

🤖 GitHub Models 如何幫助開源維護者專注於核心工作​

Source: https://github.blog/open-source/maintainers/how-github-models-can-help-open-source-maintainers-focus-on-what-matters/

  • 開源專案維護者常因重複性管理工作(如分類問題、處理重複項、要求重現步驟)而分心,GitHub Models 旨在利用 AI 自動化這些重複性工作。
  • 透過 GitHub Models 結合 GitHub Actions,實現「持續 AI」(Continuous AI) 模式,提供自動化工作流程,例如自動問題去重、問題完整性檢查、垃圾郵件與低品質貢獻偵測、持續解決方案以及新貢獻者引導。
  • 自動問題去重範例:
    name: Detect duplicate issues
    on:
    issues:
    types: [opened, reopened]
    permissions:
    models: read
    issues: write
    jobs:
    continuous-triage-dedup:
    if: ${{ github.event.issue.user.type != 'Bot' }}
    runs-on: ubuntu-latest
    steps:
    - uses: pelikhan/action-genai-issue-dedup@v0
    with:
    github_token: ${{ secrets.GITHUB_TOKEN }}
    # Optional tuning:
    # labels: "auto" # compare within matching labels, or "bug,api"
    # count: "20" # how many recent issues to check
    # since: "90d" # look back window, supports d/w/m
  • 問題完整性檢查範例:
    name: Issue Completeness Check
    on:
    issues:
    types: [opened]
    permissions:
    issues: write
    models: read
    jobs:
    check-completeness:
    runs-on: ubuntu-latest
    steps:
    - name: Check issue completeness
    uses: actions/ai-inference@v1
    id: ai
    with:
    prompt: |
    Analyze this GitHub issue for completeness. If missing reproduction steps, version info, or expected/actual behavior, respond with a friendly request for the missing info. If complete, say so.

    Title: ${{ github.event.issue.title }}
    Body: ${{ github.event.issue.body }}
    system-prompt: You are a helpful assistant that helps analyze GitHub issues for completeness.
    model: openai/gpt-4o-mini
    temperature: 0.2
    - name: Comment on issue
    if: steps.ai.outputs.response != ''
    uses: actions/github-script@v7
    with:
    script: |
    github.rest.issues.createComment({
    owner: context.repo.owner,
    repo: context.repo.repo,
    issue_number: ${{ github.event.issue.number }},
    body: `${{ steps.ai.outputs.response }}`
    })
  • 建議維護者從一個工作流程開始,逐步擴展,並監控結果、根據專案語氣調整 AI 提示。

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 框架時代的機會。