Blog

GitHub Copilot新功能來了!將會告訴開發者其提供的建議,是否與公開儲存庫中的程式碼相符

Blog Image
GitHub Copilot新功能來了!將會告訴開發者其提供的建議,是否與公開儲存庫中的程式碼相符

August 4, 2023

GitHub Copilot已經改變了開發者編寫程式碼的方式。然而,當它產生的程式碼與另一個公開儲存庫中的程式碼相似時,也可能產生問題。2022年,GitHub推出了一個功能,允許用戶自動封鎖與公開程式碼相匹配的建議。根據一位GitHub的發言人表示,這個系統的觸發機率不到1%。但有時候,開發者可能想要查看這些程式碼片段是什麼—或是使用它們(在公司設定的授權限制內),或者可能使用這段片段所來自的整個程式庫。


 
因此,為了找到一個折衷方案,GitHub今天推出了一個GitHub Copilot的程式碼參考功能的私人測試版,這將給開發者這個選擇。開啟程式碼參考功能後,Copilot不會自動封鎖任何它產生的匹配程式碼,而是在側邊欄中顯示給開發者,讓他們決定如何處理。隨著時間的推移,這個功能也將推廣到Copilot Chat。
 

 
GitHub去年11月預覽了這個功能,但顯然花了一段時間才推出。
 
正如GitHub的CEO Thomas Dohmke告訴我,微軟、GitHub和大部分Copilot企業客戶都在使用原始的封鎖功能,但他也指出,這有點過於武斷。「它幾乎沒有讓你自己決定是否真的想使用該程式碼並將其歸因於開源許可證的控制權。它實際上不讓你發現可能有一個程式庫可以用來替代合成程式碼,」他告訴我。「它阻止你探索這些程式庫並提交請求。你可能在重複一些已經存在於某個開源儲存庫中的所有內容。」
 

 
Dohmke指出,這通常適用於常見的電腦演算法,例如排序,這在許多不同地方都存在。現在,開發者可以選擇拒絕程式碼、直接使用它(假設該程式庫允許)或讓Copilot重寫程式碼,使其不再與原始程式碼相匹配。
 
目前,無法僅查看與特定許可證匹配的結果,但團隊正在積極尋找反饋,看看這是否是用戶所要求的功能。
 
Dohmke說:「我們讓人們理解匹配,然後繼續探索或做出正確的決定。我認為它填補了原始解決方案的缺口。」
 
程式碼參考功能在Copilot無法從你正在工作的現有程式碼中看到很多上下文時,也往往更容易觸發。當Copilot能夠看到很多來自你正在處理的現有程式碼的上下文時,它不太可能產生與公開程式碼匹配的建議。但當你剛剛開始時,它更有可能產生匹配的程式碼。
 
在此核心是一個非常快速的搜索引擎(GitHub表示希望將延遲保持在10-20毫秒內),可以迅速找到匹配的程式碼及其許可證。目前,匹配的程式碼片段按照搜尋引擎找到它們的順序列出。在去年的原始公告中,GitHub表示開發者應該具有「按照存儲庫許可證、提交日期等對該存貨進行排序的能力」,所以預計其將在以後增加此功能。


新聞原址: https://techcrunch.com/2023/08/03/github-copilot-now-shows-developers-when-its-code-suggestions-match-code-in-a-public-repository/