Github-Readme-Stats 簡明教學

2023-07-04 06:00:40

1. 更新 Readme 檔案

在你想要放置 Readme-WakaTime 的位置中放置以下注釋,這將作為程式的入口

<!--START_SECTION:waka-->
<!--END_SECTION:waka-->

2. 註冊 WakaTime 賬戶

存取 WakaTime 官方網站註冊並登入,你需要找到對應的 IDE/編輯器 外掛,目前(2023.7.3)官方外掛支援以下軟體

3. 在工作軟體中安裝 WakaTime 外掛

本篇教學以 VS Code 為例

  1. 在 VS Code 主介面按下 Ctrl+Shift+P 調出命令面板,輸入Install,選擇Install Extension選項並回車

  2. 之後在擴充套件介面中輸入 WakaTime 並安裝該外掛

  1. 安裝完成之後,再次按下 Ctrl+Shift+P 調出命令面板,輸入 WakaTime api 並回車
  1. 在瀏覽器中開啟WakaTime的賬戶設定頁面 Settings | Account - WakaTime,找到 Secret API Key 選項複製API
  1. 複製的 API key 貼上到 VS Code 裡,按下回車完成設定
  1. 在 VS Code 中寫入一些程式碼,觀察外掛是否能夠正常工作。同時開啟 Plugin Status - WakaTime 檢視外掛狀態(圖中的New Cli Version available是正常的,也代表外掛正常工作,只是提醒你外掛版本需要更新)

4. 設定 WakaTime API Key 和 Github 存取令牌

  1. 在你的個人倉庫中點選 Settings\(\rightarrow\)Secretes and variables\(\rightarrow\)New repository secret
  1. 填入 WakaTime 的 API Key,設定完成後點選 Add Secret,設定完成後如第二張圖所示

  1. 點選你的 Github頭像 調出側邊欄
  1. 點選 Settings

  1. 在頁面中往下滑,找到 Developer Settings
  1. 在 Developer Settings 頁面中找到 Persional access tokens\(\rightarrow\)點選 Tokens(classic)\(\rightarrow\)點選Generate a personal access token
  1. 簡單填寫一下相關資訊,勾選許可權 repo和user,並設定令牌過期時間(建議>30天),設定好後就點選 Generate Token生成存取令牌
  1. 存取令牌已經生成好了,我們把它複製下來備用
  1. 之後再次回到個人主頁的倉庫設定,還是一樣,新建一個倉庫金鑰
  1. 填入我們剛才申請的 Github 個人存取令牌,設定好後點選 Add Secret

設定好後這樣的,如圖所示

5. 設定 Actions

  1. 進入個人主頁倉庫,切換為英文鍵盤並按下英文輸入狀態下的句號,即可喚起Github遠端VS Code 工作流
  1. 如果存取成功,你會看到如下介面

  1. 在工作目錄下點選新建資料夾,建立一個 .github/workflows 結構的資料夾

  1. workflows 資料夾下新建一個yml檔案,注意不要建錯了,很多人都會建錯

  1. 將模板寫入檔案裡
name: Waka Readme

on:
  schedule:
    # Runs at 12am IST
    - cron: '30 18 * * *'
  workflow_dispatch:
jobs:
  update-readme:
    name: Update Readme with Metrics
    runs-on: ubuntu-latest
    steps:
      - uses: anmol098/waka-readme-stats@master
        with:
          WAKATIME_API_KEY: ${{ secrets.WAKATIME_API_KEY }}
          GH_TOKEN: ${{ secrets.GH_TOKEN }}

  1. 之後在 Git 中提交更改,點選 Commit&Push

如果出現該對話方塊,那麼請點選Pull後再次Commit&Push

  1. 之後到倉庫的 Actions 中檢視檔案的上傳結果,如圖所示,檔案成功上傳到倉庫中
  1. 之後我們需要在 workflow中 手動執行yml檔案,如圖所示。點選\(\rightarrow\)WakaReadme\(\rightarrow\)點選右側的Run workflow\(\rightarrow\)點選Run workflow
  1. 重新整理瀏覽器,執行完畢後會出現一個藍色的\(\checkmark\)

注:如果出現如下錯誤,那麼你需要檢查README.md檔案是否寫入了那兩行註釋,錯誤資訊如下

File "/waka-readme-stats/main.py", line 221, in <module>

[29](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:30) run(main())

[30](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:31) File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run

[31](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:32) return runner.run(main)

[32](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:33) ^^^^^^^^^^^^^^^^

[33](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:34) File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run

[34](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:35) return self._loop.run_until_complete(task)

[35](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:36) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

[36](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:37) File "/usr/local/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete

[37](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:38) return future.result()

[38](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:39) ^^^^^^^^^^^^^^^

[39](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:40) File "/waka-readme-stats/main.py", line 208, in main

[40](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:41) stats = await get_stats()

[41](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:42) ^^^^^^^^^^^^^^^^^

[42](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:43) File "/waka-readme-stats/main.py", line 163, in get_stats

[43](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:44) data = await DM.get_remote_json("waka_all")

[44](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:45) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

[45](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:46) File "/waka-readme-stats/manager_download.py", line 202, in get_remote_json

[46](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:47) return await DownloadManager._get_remote_resource(resource, None)

[47](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:48) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

[48](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:49) File "/waka-readme-stats/manager_download.py", line 193, in _get_remote_resource

[49](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:50) raise Exception(f"Query '{res.url}' failed to run by returning code of {res.status_code}: {res.json()}")

[50](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:51)Exception: Query '[https://wakatime.com/api/v1/users/current/all_time_since_today?api_key=***](https://wakatime.com/api/v1/users/current/all_time_since_today?api_key=***)' failed to run by returning code of 202: {'data': {'is_up_to_date': False, 'range': {'start': '2023-07-01T16:00:00Z', 'start_date': '2023-07-02', 'start_text': 'Yesterday', 'end': '2023-07-03T15:59:59Z', 'end_date': '2023-07-03', 'end_text': 'Today', 'timezone': 'Asia/Shanghai'}, 'timeout': 15, 'percent_calculated': 0, 'total_seconds': 0, 'text': '0 secs', 'decimal': '0.00', 'digital': '0:00'}, 'message': 'Calculating stats for this user. Check back later.'}

[51](https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:52)sys:1: RuntimeWarning: coroutine 'AsyncClient.get' was never awaited

解決方法:在README.md檔案中的合適位置寫入這兩行註釋

<!--START_SECTION:waka-->
<!--END_SECTION:waka-->

設定完成並執行成功後,回到你的個人倉庫主頁,你就會發現!我去,真甜蜜炫酷啊啊啊啊啊!!!!對不起,請允許我發電一下(深情~:D)

至此,所有的設定我們都做完了。如果你想對這些進行擴充套件,那麼你可以參考我翻譯的檔案,裡面記錄了各個標誌欄位的作用和顯示與否,也歡迎專業翻譯人員對檔案翻譯進行語言改進,非常感謝!

翻譯檔案地址

WakaTime Readme Stats-開源專案翻譯 - sarexpine - 部落格園 (cnblogs.com)