:::

NetBeans整合GitHub Issues / Integrate GitHub Issues into NetBeans Tasks

3-NetBeans_GitHub_Issues_Integrate.png

大家晚安,我是電腦重灌後很多設定一天沒還原到位,就一天覺得渾身不對勁的布丁。今天要跟大家介紹的是NetBeans跟GitHub Issues的整合:GitHub Issues外掛。NetBeans可以透過安裝GitHub Issues外掛,再並加上一些設定,就能讓GitHub Issues問題回報系統整合到NetBeans之中。如果你使用NetBeans做開發、也用GitHub做版本控制的話,非常推薦你試試看這個功能。讓我們來看看怎麽做吧。


NetBeans整合開發環境 / NetBeans IDE

2019-0924-210841-About-QO-APACHE-NetBeans-NetBeans.png

NetBeans是比普通的文字編輯器還要強大的整合開發環境(Integrated Development Environment)。它提供了語法和語義上的程式碼標亮,讓開發者容易重構程式碼。同時它還擁有許多好用的工具,能夠用於開發Java、PHP、Node.js以及各種程式語言中。NetBeans可以安裝在各種支援Java的作業系統上,包括Linux、Windows、Mac OSX和BSD。

2019-0924-211749-Plugins-Gi-Avot-Ze-Dove-sled-rts.png

NetBeans是以模組化架構建構而成,所以可以輕易安裝各種外掛套件,並有統一的更新和管理外掛的功能。

雖然目前NetBeans已經轉移給Apache軟體基金會管理,最新版本為2019年7月發佈的11版功能更新。


Step 1. 下載與安裝外掛 / Plugin download and install

NetBeans外掛 / NetBeans Plugins

除了NetBeans在Plugins功能中提供的預設列表之外,我們還能從NetBeans Plugin Portal找到各種好用的外掛,其中一個外掛就是本文要講的GitHub Issues

GitHub Issues外掛是讓NetBeans能夠支援GitHub Issue Tracker的功能。Issues一般被翻譯做「待解決的問題」,有點類似系統的待辦事項的感覺。不過翻譯做「問題」好像很怪,一般大家還是會直接用issue稱呼它。

繼續回到GitHub Issues外掛上,它提供的功能包括了建立新的issue、編輯issue、建立條件搜尋、編輯和刪除issue的評論(comment)、建立標籤(label)里程碑(milestone)。這邊許多功能都是直接對應GitHub Issues的內建功能,如果你對這些功能不熟悉的話,那把GitHub Issues當作單純的待辦事項和討論區也是很好用的。

GitHub Issues外掛下載和安裝 / Download and install GitHub Issues plugin

2019-0924-205639-NetBeans-netseans-oe-NetBeans-Prato.png

首先我們先開啟GitHub Issues外掛的網頁,按下中間的「Download」下載外掛檔案nbm。它的檔案名稱可能會像是「1568024974_netbeans-github-issues-0.5.1.nbm」。

2019-0924-213357-File-Edit-View-Navigate-Source-Refactor.png

再來打開NetBeans,從工具列的「Tools」開啟「Plugins」。

2019-0924-213639.png

進入上面頁籤「Downloaded」,然後按下「Add Plugins...」。

2019-0924-213828-Lookin-lei-meimenl-Rice-Recent-Items.png

選擇剛剛下載的nbm檔案,開啟它。

2019-0924-213921-Plugins-ul-tins-ouch-fo-um-Ho-FETE.png

這時候會看到GitHub Issues外掛已經出現在列表中,預設會幫你打勾起來。請按下左下角的「Install」安裝。

2019-0924-214028-NetBeans-DE-Installer-Welcome-to.png

首先會列出你即將要安裝的外掛列表。請按下「Next」進入下一步。

2019-0924-214127-NetBeans-DE-Installer-License-Agreement.png

接著要確認授權條款。請勾選「I accept the terms in all of the license agreements.」,然後按下「Install」開始安裝。

2019-0924-214337-CO-Very-Certicate-Be-eg-Pgs-Signed.png

開始安裝之前會先請你確認憑證(certificate)。因為GitHub Issues是自己簽署自己的憑證,沒有第三方公正機構能夠保證它的安全性。如果你不是很介意這件事情的話,按下「Continue」繼續即可。

2019-0924-214553-Installation-completed-successfully.png

很快的外掛就安裝完成了,按下「Finish」吧。

2019-0924-214713-Fie-Edit-View-Navigate-Source-Refactor.png

為了要能夠讓安裝的外掛生效,我們需要重新啟動NetBeans。至此GitHub Issues外掛的下載和安裝就完成了。


Step 2. 取得GitHub的個人存取令牌 / Generate GitHub's personal access token

2019-0924-221036-Pull-requests-Issues-Marketplace.png

為了能夠讓NetBeans能夠控制GitHub Issues,我們必須要在GitHub上產生一個獨一無二的密碼令牌,供NetBeans使用。

首先讓我們開啟GitHub產生個人存取令牌(personal access tokens)功能的網址,按下「Generate new token」。

2019-0924-221620-Pull-requests-Issues-Marketplace.png

接下來會出現「New personal access token」設定新的個人存取令牌的頁面。請在Note處加入說明,例如「NetBeans GitHub Issues」。然後在下面的「Select scopes」裡面,勾選「repo」。

2019-0924-221808-wuhux-Read-all-user-profile-data.png

然後再將網頁往下捲,按下「Generate token」的按鈕。

2019-0924-222007-Pull-requests-Issues-Marketplace.png

接著會回到個人存取令牌的頁面,列表最上方出現了我們剛剛新增的令牌。令牌是以一連串英文與數字所組成的字串,每次產生的令牌都不一樣。舉例來說,我這串令牌的部分文字是「46ab......ee88」。

請按下剪貼簿按鈕複製這串令牌,並好好保存在其他地方。必須注意的是,這個令牌只會在此處顯示一次,如果你忘記或弄丟的話,就要重新產生令牌,而NetBeans也就要重新設定令牌。因為不能再次取得同樣的令牌字串,請務必好好將它保存在其他地方。

到這邊為止,我們成功取得GitHub個人存取令牌了,讓我們進入下一步吧。


Step 3. 連結GitHub Issues / Connect GitHub Issues

2019-0924-222757-LU-blogger-editor-Apache-NetBeans.png

回到NetBeans上,我們要來開啟Tasks任務面板。請在上方工具列的「Window」中開啟「Tasks」。

2019-0924-222838-LJ-blogger-editor-Apache-NetBeans.png

然後在Tasks任務面板中找到「Repositories」,按下右邊的「Add Repository」新增儲存庫的圖示。

2019-0924-223051-wmm-Gen-User-Name-must-be-set-or.png

開啟「Create Task Repository」對話視窗,請在「Connector」裡面選擇「GitHub Issues」,然後在OAuth Token裡面貼上前面所取得的令牌。

2019-0924-223227-hass-mi-ougd-ue-smsssssssd-El-tre.png

然後按下「Add Repository」。

2019-0924-223318-Repositories-EE-SE-em.png

接下來NetBeans會跳出一個下拉式選單,請你選擇要連結的GitHub儲存庫。這邊我以Electron Sticky Notes便利貼儲存庫為例。選好之後按下「OK」。

2019-0924-223550.png

接著NetBeans會幫你把下面的空格填好對應的資訊。然後我們還要按下「Connect」按鈕,確認是否能夠順利存取。

2019-0924-223739-QJ-Create-Task-Repository-Comestor.png

連結成功。請按下「OK」確定。

2019-0924-223838-ComwTakhweaey-Conmeotor-CGD-oes.png

設定完成。請按下「OK」離開。

2019-0924-223942-LJ-blogger-editor-Apache-NetBeans.png

這時候NetBeans的Tasks任務面板就會顯示已經連結的GitHub儲存庫的Issues,這邊列出了Electron Sticky Notes還有六個issues。

2019-0924-224043-Pull-requests-Issues-Marketplace.png

對照到Electron Sticky Notes的Issues,兩者都能列出一樣的issues。

到這邊為止,我們成功讓NetBeans整合了GitHub Issues的功能囉。


使用GitHub Issues外掛 / Instruction of GitHub Issues plugin

2019-0924-224808-ai-oy-SEES-Sehedul-This-Week-tot.png

NetBeans的GitHub Issues外掛要如何使用呢?我覺得最好用的功能,就是列出目前還沒解決的issue的編號。有了這個編號,例如我們要處理編號23的issue,我們就能在Git遞交(commit)的時候加上「#23」,表示這次遞交是跟編號23 issue相關。如果遞交訊息寫的是「close #23」,那麼在推送(push)到GitHub的時候,編號23 issue就會被設為已完成(closed)。

2019-0924-225157-es-pullpulchen-opened-this-sue-days.png

這是我其中一個已經完成的issue,你可以看到裡面有幾次遞交都跟這個issue相關,最後我在19天前的某次遞交中將該issue設為完成。

2019-0924-225454-Features-Project-Management-Code.png

(網頁截圖:GitHub Features: Project management)

這個小技巧能夠大幅度加速專案開發的效率。如果你也跟我一樣,用GitHub Issues作為專案管理工具的話,請務必學習在Git遞交時加上「#id」吧。

很難用的外掛 / GitHub Issues plugin: unfriendly UI

2019-0924-225743-Lamawhagawiu-Fil-Edit-View-Navigate.png

至於GitHub Issues外掛的其他功能嘛,我只能說是堪用。原本在GitHub Issues網頁上的功能,在外掛中大致上都有對應的功能。但GitHub Issues網頁寫得實在是太好了,這個用Java寫成的外掛,就相對覺得難用,不如直接開網頁來操作。

不過裡面還是有幾個功能,是我覺得在NetBeans中操作會比在GitHub上操作還要快的功能。

2019-0924-230047-Osuadamemsosbuo-pw-sMidaaamy-OT.png

第一個是「Create new task」,就是開一個新的issue。很多時候我們會在開發過程中又遇到新的問題,這時候可以直接在這裡開一個新的issue,簡單用文字敘述一下即可。

不過,如果要上傳圖片,用圖片來說明問題發生的地方的話,那就得要用GitHub Issues網頁版了。

2019-0924-230424-Tak-EE-Report-New-Task-Oreste-Crea.png

另一個功能,就是「Show in browser」,開啟網頁版的GitHub Issues。說真的,與其用難用的GitHub Issues外掛,還不如直接用網頁版開啟比較簡單。


結語 / In closing

其實我在2018年的時候就已經在NetBeans上使用GitHub Issues外掛。我本來在那時候有想過要寫一篇文章來介紹如何使用。畢竟你看,上面這一串下來,其實在NetBeans上安裝GitHub Issues外掛是有點複雜的。此外掛的作者junichi11有在GitHub儲存庫上介紹如何安裝,不過寫得也是挺簡單的,要架起來可還是要摸索好一陣子。

但是這外掛用一陣子之後,有感於它的介面實在是比不上網頁版,後來我就打消了為它寫個介紹的念頭。直到最近我又在開發各種專案,時常頻繁使用GitHub Issues的功能,才想要把它裝回NetBeans使用。

總之,雖然我抱怨了這麼多,但NetBeans跟GitHub的整合還是很方便的。希望有志於開發複雜系統的同道們,不妨也來試試看NetBeans吧。


那麼這次在NetBeans中整合GitHub Issues的教學就到這裡了。寫到最後,我有些問題想問問大家:

  • 你用過issues tracker 問題追蹤器嗎?你是用那一種問題追蹤器呢?
  • 你用過GitHub Issues嗎?你都是怎麽用它的呢?
  • GitHub Issues支援標籤(labels)和里程碑(milestone),相當適合作為專案管理工具。你看過那個專案是用GitHub Issues作為專案管理的嗎?

歡迎在下面的留言處跟我們分享你的想法。大家的意見是我繼續分享的動力喔!如果你覺得我這篇教學實用的話,請幫我在AddThis分享工具按讚、將這篇分享到Facebook等社群媒體吧!

感謝你的耐心閱讀,我是布丁,讓我們下一篇見。