一夜之間,5.4萬(wàn) Star,全部清零。。
HTTPie 設(shè)計(jì)用于測(cè)試、調(diào)試以及通常與 API 和 HTTP 服務(wù)器交互。http&?https?命令允許創(chuàng)建和發(fā)送任意 HTTP 請(qǐng)求。它們使用簡(jiǎn)單自然的語(yǔ)法,并提供格式化和彩色輸出。

發(fā)生了什么?
Jakub 首先是承認(rèn)了此次事件是由自己的錯(cuò)誤操作導(dǎo)致的:
由于一連串不幸的事件,我不小心把項(xiàng)目的倉(cāng)庫(kù)設(shè)為了私有,這個(gè)操作讓 GitHub 連帶刪除了我們花了 10 年時(shí)間建立的社區(qū)。

為什么要設(shè)為私有
把倉(cāng)庫(kù)設(shè)為私有就會(huì)永久刪除所有 Watch 和 Star,這是 GitHub 的一個(gè)特性。我也知道這一點(diǎn),我顯然是無(wú)意將 HTTPie 設(shè)為私有。

之所以會(huì)導(dǎo)致這樣的結(jié)果,最直接的原因是 Jakub 以為自己在一個(gè)不同的倉(cāng)庫(kù)里面(該倉(cāng)庫(kù)沒(méi)有內(nèi)容也沒(méi)有 Star),這是他在一周前創(chuàng)建的,但之前一直沒(méi)有向里面填充內(nèi)容。
Jakub 在當(dāng)時(shí)并沒(méi)有意識(shí)到倉(cāng)庫(kù)在命名上存在不一致,HTTPie 項(xiàng)目的倉(cāng)庫(kù)為httpie/httpie,而Jakub 想要設(shè)置的倉(cāng)庫(kù)為?httpie/.github。
這就是為什么我在沒(méi)有意識(shí)到我的錯(cuò)誤時(shí),將?
httpie/httpie?設(shè)為私有,而不是?httpie/.github
當(dāng) Jakub 做完操作回到組織頁(yè)面后,他發(fā)現(xiàn)仍然可以看到空的倉(cāng)庫(kù),反而HTTPie 項(xiàng)目倉(cāng)庫(kù)消失不見(jiàn)時(shí),他才真正意識(shí)到發(fā)生了什么。
于是 Jakub 立刻回到設(shè)置頁(yè)面中想要重新將 HTTPie 設(shè)為公開(kāi)。
但 GitHub 在接下來(lái)的半個(gè)小時(shí)內(nèi)都不允許他這樣做,原因是 GitHub 正在 “幫助” 他刪除倉(cāng)庫(kù)的 Star 和 Watch,無(wú)法中途停止這個(gè)過(guò)程。
GitHub 拒絕恢復(fù)
為了盡可能避免損失,事后 Jakub 第一時(shí)間與 GitHub 取得聯(lián)系,希望 GitHub 能夠幫助他們恢復(fù)原本的數(shù)據(jù)。
畢竟 GitHub 團(tuán)隊(duì)自己就曾經(jīng)不小心把 GitHub Desktop 應(yīng)用的倉(cāng)庫(kù)設(shè)置為私有,并在幾個(gè)小時(shí)內(nèi)就為自己恢復(fù)了一切。

開(kāi)發(fā)人員今天早上錯(cuò)誤地將 GitHub Desktop 倉(cāng)庫(kù)設(shè)為私有,重新修改回來(lái)并不會(huì)恢復(fù)它的 Star 和其他一些東西,因此我們正在從數(shù)據(jù)庫(kù)備份中進(jìn)行恢復(fù)。
顯然 GitHub 對(duì)此是有相關(guān)備份的,并且能夠通過(guò)備份挽回因不小心將倉(cāng)庫(kù)設(shè)為私有而造成的損失。
但是在 HTTPie 項(xiàng)目的事件中,GitHub 卻拒絕這樣做,理由是會(huì)引發(fā)不良的副作用和浪費(fèi)資源成本。Jakub 甚至向 GitHub 提出經(jīng)濟(jì)補(bǔ)償,也同樣遭到了拒絕。
雖然這件事是由于 Jakub 自己錯(cuò)誤操作導(dǎo)致的,但他在博客中也提出了一些 GitHub 可以改善的地方,也希望其他項(xiàng)目作者能夠避免再犯同樣的錯(cuò)誤。
首先,他希望 GitHub 能夠以更加清晰、明確的方式向用戶(hù)告知操作的危害性,而不是一句放在任何地方都適用的 “警告:這是一個(gè)潛在的破壞性操作”;其次是改善數(shù)據(jù)庫(kù)的設(shè)計(jì),盡可能使用 “軟刪除”,并在一定時(shí)間范圍內(nèi)延遲 “硬刪除”。
通過(guò)這次事情呢,也提醒我們以后在操作自己的GitHub開(kāi)源項(xiàng)目時(shí),還是謹(jǐn)慎一些為好哇~~
推薦閱讀:
24 個(gè)常見(jiàn)的 Docker 疑難雜癥處理技巧
5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹(shù)莓派,等等。在公眾號(hào)內(nèi)回復(fù)「1024」,即可免費(fèi)獲取


