ELI5 · GitHub

issue 的標籤是什麼?

彩色小貼紙。一張單子想貼幾張就貼幾張。

🏷️
就是貼紙
bug documentation good first issue

跟現實世界一樣:一份文件上可以同時貼「急件」和「財務部」。
數量不限,順序無所謂,沒有階層。

貼起來長這樣

#12
README 的安裝步驟少了一行
documentation good first issue help wanted

這張單子同時說了三件事:它跟文件有關、適合新手接、而且我們在找人幫忙。

新開 repo 就送你這十個

分成三群比較好記。
說這是什麼 · 說這張單子的下場 · 對外招募。

① 這是什麼
最常用的一群,說明這張單子的性質。
bug壞了,行為不對
documentation文件要改
enhancement想加新東西
question還需要更多資訊
accessibility對身障者造成阻礙
② 這張單子的下場
關單子的時候順手貼,說明為什麼不做。
duplicate跟別張重複了
invalid這看起來不對勁
wontfix決定不處理
③ 對外招募
開源專案用來吸引人來幫忙。
good first issue適合新手
help wanted需要幫手
顏色不是隨便配的,是存在 GitHub 上的資料。 每個標籤都有一個色碼(例如 bug#d73a4a), 字要用黑的還是白的,GitHub 會依底色亮度自己決定——上面那些膠囊就是照真實色碼畫的。

GitHub 有四種分類方式,別搞混

最快的分辨方法:問「一張單子能掛幾個」。

🏷️
label

這是什麼性質的事?

想貼幾個都行不限數量
🧩
sub-issue

這件大事由哪幾件小事組成?

只能有一個爸這是一棵樹
🚩
milestone

這批事要在什麼時候前做完?

只能屬於一個一張單子一個
📋
Projects

現在做到哪個階段了?

可以上好幾個看板還能跨 repo
所以上一題說的「一張單子同時屬於兩個大功能做不到」,解法就在這裡—— 父子關係做不到的事,換成標籤就行了,因為標籤數量不限。

自己加標籤的兩個常見用法

預設十個夠用就別亂加。標籤一多就沒人看了。

用法一:分領域
area: cpu area: ppu area: apu

主人之後做 NES 模擬器就會用到——單子一多,你會想只看「畫面那塊」的問題。 前綴加冒號有個好處:標籤清單是按字母排的,同前綴的會自動排在一起。

用法二:分優先順序
priority: high priority: low

回答「今天先做哪一張」。只設兩到三級就好——分五級的團隊, 最後每張單子都會變成「高」,等於沒分。

指令

貼之前先看一眼有哪些,這是最省事的習慣:

gh label list                                  # 看這個 repo 有哪些標籤
gh issue create --title "..." --label bug --label documentation
gh issue edit 12 --add-label "help wanted"     # 事後補貼
gh issue edit 12 --remove-label question       # 撕掉
gh issue list --label bug --state open         # 只看有 bug 標籤、還開著的
gh label create "area: cpu" --color 0e8a16 --description "6502 CPU 相關"

一個會讓指令失敗的雷

✗ 貼一個不存在的標籤,指令會直接失敗

GitHub 不會幫你自動建立那個標籤,它只會拒絕。 錯誤訊息的開頭是 could not add label:,後面接 GitHub 回的原因。
最常見的原因其實是打字good first issue 中間是空格不是連字號, 而且大小寫要完全一樣。所以貼之前先 gh label list 看一眼最保險。

想再深入一點