剛剛,GitHub重磅發(fā)布四大新功能!
今天,GitHub 在線上舉辦了 Satellite 2020。每年的 Satellite 是 GitHub 年度最大型的國際產(chǎn)品和社區(qū)活動,由于受新型冠狀病毒肺炎疫情的影響,GitHub 今年將 Satellite 搬到線上。在 Satellite 2020 上,GitHub 一口氣發(fā)布了四款新品:Codespaces、GitHub Discussions、Code scanning 和 secret scanning 以及 GitHub Private Instances。
1、新品介紹
Codespaces:一個云上的瀏覽器 IDE
向社區(qū)貢獻(xiàn)代碼一般都很困難,這個難不在于社區(qū)對代碼的接納度,而在于社區(qū)內(nèi)的每個不同的項目、庫都有自己各異的開發(fā)環(huán)境配置方法。因此,開發(fā)者在向社區(qū)貢獻(xiàn)代碼之前,通常需要經(jīng)過一打步驟才能真正地開始寫有用的代碼。更悲劇的是,你時不時還會碰上兩個項目之間的配置環(huán)境沖突問題。
基于這樣的實際痛點,GitHub 在這次的會議上正式發(fā)布了 Codespaces,中文譯名代碼空間。GitHub 的官方介紹里表示:
Codespaces 為你提供了一個全功能、云托管的開發(fā)環(huán)境,可以在 GitHub 中秒開,這樣開發(fā)者就可以很方便地為任意一個項目貢獻(xiàn)代碼。
依托于老大哥微軟的 Visual Studio 的技術(shù)支持,Codespaces 內(nèi)置了一個基于瀏覽器的完整 VS 代碼編輯器版本,你可以很方便地在瀏覽器中實現(xiàn)代碼構(gòu)建、測試、調(diào)試和部署。如果你更偏好桌面 IDE,也可以在 GitHub 中啟動 Codespaces 以連接桌面版本。
從該產(chǎn)品的命名上我們也能看出一些端倪,GitHub 沒有將其命名為 CodeSpaces,而是直接寫作了 Codespaces,這或許代表 GitHub 希望開發(fā)者將關(guān)注的重點放在 Code 上,而不是 Code 與 Spaces 的并列關(guān)系。簡而言之,Codespaces 希望給開發(fā)者一種更好的 Coding 體驗,spaces 只是一個位置概念。
目前發(fā)布的 Codespaces 版本是 Beta 版,少數(shù) GitHub 用戶有內(nèi)測使用權(quán)限,隨著時間推移將逐漸擴(kuò)大給更多用戶使用。Beta 版本的 Codespaces 是免費的,正式版上線后,GitHub 預(yù)計將使用簡單的按需付費的計費方式。
GitHub Discussions
在 GitHub 看來,社區(qū)開發(fā)人員不僅僅一起寫代碼,他們還需要對話交流,集思廣益,并以最佳的方式協(xié)作。一直以來,GitHub 僅僅提供 issues 和 PR 作為開發(fā)人員對話的地方,但是它們各有不足,比如 issues 一般僅用來反饋 bug,提出新特性。
GitHub 表示,“開發(fā)者間的交流和對話需要有專屬場所,Discussions 正是為此而生。”
據(jù)悉,Disscussions 存在于開發(fā)人員的項目存儲庫中。它表現(xiàn)為線程形式,開發(fā)者可以很方便地提出問題、回復(fù)問題,并組織非結(jié)構(gòu)化的對話。問題可以被標(biāo)記為已回答,因此隨著時間發(fā)展,社區(qū)的知識基礎(chǔ)會不斷壯大。并且,開發(fā)人員之間的討論不會以 issues 的形式結(jié)束,因此它可以作為維護(hù)常見問題解答和其他協(xié)作文檔的地方。
Code scanning 和 secret scanning
近年來,GitHub 不斷致力于提高平臺的安全能力。2019 年,GitHub 收購代碼分析平臺公司 Semmle,致力于查找零日漏洞及其變種。為進(jìn)一步提高安全性,GitHub 如今推出 Code scanning 和 secret scanning。
開發(fā)者啟用 Code scanning 后,將對每個“git push”進(jìn)行掃描來查找新的潛在的安全漏洞,并且結(jié)果直接顯示在你的 PR 里。根據(jù) GitHub 介紹,Code scanning 使用了世界上最先進(jìn)的語義分析引擎——CodeQL,后者在排查漏洞方面具有無可匹敵的優(yōu)勢。
Secret scanning 前身叫 token scanning,從 2018 年起,公共存儲庫可以使用該功能。現(xiàn)在,該功能對私有存儲庫開放。據(jù) GitHub 介紹,它們和包括 AWS、Azure、谷歌云、npm、Stripe 和 Twilio 在內(nèi)的合作伙伴一起,致力于擴(kuò)大覆蓋范圍。
現(xiàn)在,Secret scanning 還能監(jiān)視私有存儲庫中的已知 secret 格式,并在發(fā)現(xiàn)它們時立即通知開發(fā)人員。目前,GitHub 為所有公共存儲庫免費提供 Code scanning 和 Secret scanning 功能。
GitHub Private Instances
據(jù) GitHub 介紹,GitHub Private Instances 是一項針對企業(yè)用戶全新、全托管的選項。Private Instances 提供增強的安全性、合規(guī)性和(安全)策略功能,包括 BYOK 加密、備份歸檔以及對區(qū)域數(shù)據(jù)主權(quán)要求的合規(guī)性。(該功能目前還未提供 Beta 版。)
2. 砸錢的微軟,進(jìn)擊的 GitHub
2018 年 6 月 4 日,微軟以 75 億美元的報價收購了 GitHub,當(dāng)時的技術(shù)圈反饋用“如喪考妣”形容甚至都不為過。彼時的 GitHub 有近 3000 萬開發(fā)者,托管近 9000 萬個開源項目庫。不過卻一直沒有盈利,僅 2016 年前三季度就虧損 6600 萬美元。
鮑爾默時代的微軟,視開源為洪水猛獸。納德拉時代的微軟,卻待開源為蜜糖。
用納德拉的話講,微軟 +GitHub= 賦能開發(fā)者。
有了微軟財力支撐的 GitHub 在發(fā)展道路上越發(fā)沒有負(fù)擔(dān),這兩年間不斷推出了普惠開發(fā)者的各類新功能:
- GitHub Actions:內(nèi)置 CI/CD,對所有開源項目免費使用;
- GitHub Sponsors:用戶可以用每月付費的方式贊助開源項目;
- GitHub Free:無限私有倉庫免費使用;
- GitHub Mobile:移動版 GitHub App 正式上線;
- GitHub Archive Program:保存代碼至少一千年;
- 集成 npm:支持世界上最大的開發(fā)人員生態(tài)系統(tǒng);
- ……
GitHub 在開源世界攻城拔寨,對微軟有何意義?
我們可能需要厘清一個概念,這個世界上或許并不存在純粹的技術(shù)驅(qū)動型公司。納德拉時代的微軟,戰(zhàn)略目標(biāo)是以云為先,以 AI 為先。收購 GitHub 首先是符合微軟的戰(zhàn)略意圖,GitHub+Azure,帶給開發(fā)者的是一套完整的工具鏈,從代碼托管、開源協(xié)作到環(huán)境部署一應(yīng)俱全。
從這個角度出發(fā)看,微軟從收購 GitHub 再到收購 npm,都是為了其戰(zhàn)略意圖先行。有人或許會擔(dān)心,微軟現(xiàn)在砸錢把用戶都聚攏了,后面是不是就要開始割韭菜了?這個問題可能略顯狹隘,對微軟而言,一個開放的生態(tài)、良性的社區(qū)才是最符合它的利益的。
開源與商業(yè)的沖突問題,這么多年的發(fā)展過后已經(jīng)形成了一個公理,單純的開源真的不賺錢。保持獨立運營的前提是,開源項目或企業(yè)有足夠的資金支持,當(dāng)馬斯洛需求理論的面包還沒滿足時,又如何去追求開源的美好與意義?
所以,微軟收購后的 GitHub,真香!