在 ADO Pipeline 中使用 GitHub Copilot CLI:實現全天候24h開發的夢想
我跟你說,我夢想著實現這個功能很久了✌
我一直希望能夠在 CI/CD Pipeline 中加入 LLM 的力量。我一直想透過 GitHub Copilot CLI 讓 LLM 在 Pipeline 中自動處理重複性任務,例如在晚上讓 LLM 自動幫我找 bugs、做Code Review、甚至自動撰寫說明文件…
如果可行,我夢想的 “兩班制全天候24h開發” 就可以實現了!!!
白天,由專業技術人員搭配 AI 進行開發。
晚上,則由 AI 自己進行除錯、寫文件、找 bugs。
然後隔天工程師上班之後,就可以繼續接手 Copilot 晚上產出的成果,接著進行開發。
哈哈哈哈,這樣豈不是太完美了嗎? 想想都興奮。
緣起
在現代軟體開發中,效率與自動化是不可或缺的要素。
GitHub Copilot CLI 的出現,為我們提供了一個強大的工具,能夠在開發過程中自動生成程式碼、撰寫技術文件,甚至協助除錯。而若我能將這項工具整合到 Azure DevOps 的 Pipeline 中,自動在晚上運行,則可以進一步實現了全天候的開發流程。
嘗試在 Azure DevOps Pipeline 中使用 GitHub Copilot CLI
想要將 GitHub Copilot CLI 整合到 Azure DevOps Pipeline 中,有幾個關鍵步驟。
首先,你要能夠在 Build Agent 上安裝 GitHub Copilot CLI。要這麼做不難,只需要透過底下這個 bash script 指令就可以完成安裝 。
npm install -g @github/LLM
只是,你得先確定 Node.js 已經安裝在你的 Agent 上,且是最新版本。
因此,我們會在 pipeline 中,先用一個 step 來安裝 Node.js。
steps:
- task: NodeTool@0
displayName: 'Use Node 22.x'
inputs:
versionSpec: 22.x
接著,我們就可以安裝 GitHub Copilot CLI 了。我們可以透過以下的指令碼來完成這個步驟:
steps:
- bash: |
npm install -g @github/LLM
export GITHUB_TOKEN="github_pat_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
(...略...)
這邊有一個非常重要的重點,為了讓 GitHub Copilot CLI 能夠運作,你必須先建立一個 GitHub Personal Access Token (PAT),並且在設定在名為 GITHUB_TOKEN
的環境變數中。這個 PAT Token 需要有 Copilot requests
的權限。這樣 GitHub Copilot CLI 才能夠在你的專案中進行操作。
接下來,你可以根據你的需求,在 pipeline 中使用 GitHub Copilot CLI 來生成技術文件、進行程式碼分析,或是其他的自動化任務(像是找或改bugs)。
例如,我們底下的這串指令碼,就是讓 LLM 幫我們檢視所有程式碼,找出所有可能的 bugs,最後生成 bugs.md 文件。
(...承上...)
copilot -p "閱讀完整的程式碼,將找到的bugs寫入 bugs.md,所有輸出使用正體中文" --allow-all-tools
git add bugs.md
git commit -m "update bugs.md" || echo "⚠️ 無變更可提交"
上面的 Copilot 指令中,-p
參數用來指定我們的 prompt,告訴 Copilot 我們希望它完成什麼任務。
而 --allow-all-tools
參數,允許 Copilot 使用所有可用的工具來完成任務。這樣可以確保 Copilot 有足夠的資源來進行程式碼分析與文件寫入。
當 Copilot 完成任務後,我們使用 git 指令將生成的 bugs.md 文件提交到版本控制系統中。如果沒有任何變更,則會顯示 “⚠️ 無變更可提交” 的訊息。
整合到夜間執行的 Pipeline
最後,我們可以將這個Pipeline 配置到一個夜間執行的 schedule 中:
白天,開發人員上班的時候,就會看到晚上 Copilot 幫忙找出來的 bugs(位於bugs.md),並且可以直接接手進行程式碼修正:
驚不驚喜、刺不刺激?
我們的 24h 軟體開發工廠就這麼誕生了!!!
未來,迎接著我們的,將會是更卷更高效率、更自動化的軟體開發時代!!!
結語
透過將 GitHub Copilot CLI 整合到 Azure DevOps Pipeline 中,我們可以實現真正的 “兩班制24h全天候開發”。白天由工程師專注於創造性工作,晚上由 AI 自動化處理重複性任務,極大地提升了開發效率與產品品質。
這不僅是技術的進步,更將是開發流程的一次革命。
留言