Categories
程式開發

剛剛,GitHub重磅發布四大新功能


剛剛,GitHub重磅發布四大新功能 1

今天,GitHub 在線上舉辦了 Satellite 2020。每年的 Satellite 是 GitHub 年度最大型的國際產品和社區活動,由於受新型冠狀病毒肺炎疫情的影響,GitHub 今年將 Satellite 搬到線上。在 Satellite 2020 上,GitHub 一口氣發布了四款新品:CodespacesGitHub DiscussionsCode scanning 和 secret scanning 以及 GitHub Private Instances

新品介紹

Codespaces:一個雲上的瀏覽器 IDE

向社區貢獻代碼一般都很困難,這個難不在於社區對代碼的接納度,而在於社區內的每個不同的項目、庫都有自己各異的開發環境配置方法。因此,開發者在向社區貢獻代碼之前,通常需要經過一打步驟才能真正地開始寫有用的代碼。更悲劇的是,你時不時還會碰上兩個項目之間的配置環境衝突問題。

基於這樣的實際痛點,GitHub 在這次的會議上正式發布了 Codespaces,中文譯名代碼空間。 GitHub 的官方介紹裡表示:

Codespaces 為你提供了一個全功能、雲託管的開發環境,可以在 GitHub 中秒開,這樣開發者就可以很方便地為任意一個項目貢獻代碼。

剛剛,GitHub重磅發布四大新功能 2

依託於老大哥微軟的 Visual Studio 的技術支持,Codespaces 內置了一個基於瀏覽器的完整 VS 代碼編輯器版本,你可以很方便地在瀏覽器中實現代碼構建、測試、調試和部署。如果你更偏好桌面 IDE,也可以在 GitHub 中啟動 Codespaces 以連接桌面版本。

從該產品的命名上我們也能看出一些端倪,GitHub 沒有將其命名為CodeSpaces,而是直接寫作了Codespaces,這或許代表GitHub 希望開發者將關注的重點放在Code 上,而不是Code 與Spaces的並列關係。簡而言之,Codespaces 希望給開發者一種更好的 Coding 體驗,spaces 只是一個位置概念。

目前發布的 Codespaces 版本是 Beta 版,少數 GitHub 用戶有內測使用權限,隨著時間推移將逐漸擴大給更多用戶使用。 Beta 版本的 Codespaces 是免費的,正式版上線後,GitHub 預計將使用簡單的按需付費的計費方式。

GitHub Discussions

在 GitHub 看來,社區開發人員不僅僅一起寫代碼,他們還需要對話交流,集思廣益,並以最佳的方式協作。一直以來,GitHub 僅僅提供 issues 和 PR 作為開發人員對話的地方,但是它們各有不足,比如 issues 一般僅用來反饋 bug,提出新特性。

GitHub 表示,“開發者間的交流和對話需要有專屬場所,Discussions 正是為此而生。”

剛剛,GitHub重磅發布四大新功能 3

據悉,Disscussions 存在於開發人員的項目存儲庫中。它表現為線程形式,開發者可以很方便地提出問題、回復問題,並組織非結構化的對話。問題可以被標記為已回答,因此隨著時間發展,社區的知識基礎會不斷壯大。並且,開發人員之間的討論不會以 issues 的形式結束,因此它可以作為維護常見問題解答和其他協作文檔的地方。

Code scanning 和 secret scanning

近年來,GitHub 不斷致力於提高平台的安全能力。 2019 年,GitHub 收購代碼分析平台公司 Semmle,致力於查找零日漏洞及其變種。為進一步提高安全性,GitHub 如今推出 Code scanning 和 secret scanning。

開發者啟用 Code scanning 後,將對每個“git push”進行掃描來查找新的潛在的安全漏洞,並且結果直接顯示在你的 PR 裡。根據 GitHub 介紹,Code scanning 使用了世界上最先進的語義分析引擎——CodeQL,後者在排查漏洞方面具有無可匹敵的優勢。

剛剛,GitHub重磅發布四大新功能 4

Secret scanning 前身叫 token scanning,從 2018 年起,公共存儲庫可以使用該功能。現在,該功能對私有存儲庫開放。據 GitHub 介紹,它們和包括 AWS、Azure、谷歌云、npm、Stripe 和 Twilio 在內的合作夥伴一起,致力於擴大覆蓋範圍。

現在,Secret scanning 還能監視私有存儲庫中的已知 secret 格式,並在發現它們時立即通知開發人員。目前,GitHub 為所有公共存儲庫免費提供 Code scanning 和 Secret scanning 功能。

GitHub Private Instances

據 GitHub 介紹,GitHub Private Instances 是一項針對企業用戶全新、全託管的選項。 Private Instances 提供增強的安全性、合規性和(安全)策略功能,包括 BYOK 加密、備份歸檔以及對區域數據主權要求的合規性。 (該功能目前還未提供 Beta 版。)

砸錢的微軟,進擊的 GitHub

2018 年 6 月 4 日,微軟以 75 億美元的報價收購了 GitHub,當時的技術圈反饋用“如喪考妣”形容甚至都不為過。彼時的 GitHub 有近 3000 萬開發者,託管近 9000 萬個開源項目庫。不過卻一直沒有盈利,僅 2016 年前三季度就虧損 6600 萬美元。

鮑爾默時代的微軟,視開源為洪水猛獸。納德拉時代的微軟,卻待開源為蜜糖。

剛剛,GitHub重磅發布四大新功能 5

用納德拉的話講,微軟 +GitHub= 賦能開發者。

有了微軟財力支撐的 GitHub 在發展道路上越發沒有負擔,這兩年間不斷推出了普惠開發者的各類新功能:

  • GitHub Actions:內置 CI/CD,對所有開源項目免費使用;
  • GitHub Sponsors:用戶可以用每月付費的方式贊助開源項目;
  • GitHub Free:無限私有倉庫免費使用;
  • GitHub Mobile:移動版 GitHub App 正式上線;
  • GitHub Archive Program:保存代碼至少一千年;
  • 集成 npm:支持世界上最大的開發人員生態系統;
  • ……

GitHub 在開源世界攻城拔寨,對微軟有何意義?

我們可能需要釐清一個概念,這個世界上或許並不存在純粹的技術驅動型公司。納德拉時代的微軟,戰略目標是以雲為先,以 AI 為先。收購 GitHub 首先是符合微軟的戰略意圖,GitHub+Azure,帶給開發者的是一套完整的工具鏈,從代碼託管、開源協作到環境部署一應俱全。

從這個角度出發看,微軟從收購 GitHub 再到收購 npm,都是為了其戰略意圖先行。有人或許會擔心,微軟現在砸錢把用戶都聚攏了,後面是不是就要開始割韭菜了?這個問題可能略顯狹隘,對微軟而言,一個開放的生態、良性的社區才是最符合它的利益的。

開源與商業的衝突問題,這麼多年的發展過後已經形成了一個公理,單純的開源真的不賺錢。保持獨立運營的前提是,開源項目或企業有足夠的資金支持,當馬斯洛需求理論的麵包還沒滿足時,又如何去追求開源的美好與意義?

所以,微軟收購後的 GitHub,真香!