莫老板 發表於 2023-7-3 21:55:00

Github-Readme-Stats 简明教程

<h2 id="1-更新-readme-文件">1. 更新 Readme 文件</h2>
<p>在你想要放置 Readme-WakaTime 的位置中放置以下注释,这将作为程序的入口</p>
<pre><code class="language-markdown">&lt;!--START_SECTION:waka--&gt;
&lt;!--END_SECTION:waka--&gt;
</code></pre>
<h2 id="2-注册-wakatime-账户">2. 注册 WakaTime 账户</h2>
<p>访问 WakaTime 官方网站注册并登录,你需要找到对应的 IDE/编辑器 插件,目前(2023.7.3)官方插件支持以下软件</p>

<p><img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703212542054-1393773464.png" alt="img" loading="lazy"></p>
<h2 id="3-在工作软件中安装-wakatime-插件">3. 在工作软件中安装 WakaTime 插件</h2>
<p><mark>本篇教程以 VS Code 为例</mark></p>
<ol>
<li>
<p>在 VS Code 主界面按下 <kbd>Ctrl+Shift+P</kbd> 调出命令面板,输入Install,选择Install Extension选项并回车<br>
<img src="https://wakatime.com/static/img/ScreenShots/vs-code-install-1.png" alt="" loading="lazy"></p>
</li>
<li>
<p>之后在扩展界面中输入 <code>WakaTime</code> 并安装该插件<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703212733286-1330278684.png" alt="img" loading="lazy"></p>
</li>
</ol>

<ol start="3">
<li>安装完成之后,再次按下 <kbd>Ctrl+Shift+P</kbd> 调出命令面板,输入 <code>WakaTime api</code> 并回车<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703212844990-2077575548.png" alt="img" loading="lazy"></li>
</ol>

<ol start="4">
<li>在浏览器中打开WakaTime的账户设置页面 Settings | Account - WakaTime,找到 <code>Secret API Key</code> 选项复制API<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703212949659-1429017742.png" alt="img" loading="lazy"></li>
</ol>

<ol start="5">
<li>复制的 API key 粘贴到 VS Code 里,按下回车完成设置<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703213039261-598934227.png" alt="img" loading="lazy"></li>
</ol>

<ol start="6">
<li>在 VS Code 中写入一些代码,观察插件是否能够正常工作。同时打开 Plugin Status - WakaTime 查看插件状态(图中的New Cli Version available是正常的,也代表插件正常工作,只是提醒你插件版本需要更新)<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703213111575-174232460.png" alt="img" loading="lazy"></li>
</ol>

<h2 id="4-配置-wakatime-api-key-和-github-访问令牌">4. 配置 WakaTime API Key 和 Github 访问令牌</h2>
<ol>
<li>在你的个人仓库中点击 Settings<span class="math inline">\(\rightarrow\)</span>Secretes and variables<span class="math inline">\(\rightarrow\)</span>New repository secret<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703213206939-336226539.png" alt="img" loading="lazy"></li>
</ol>

<ol start="2">
<li>填入 WakaTime 的 API Key,设置完成后点击 Add Secret,设置完成后如第二张图所示<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703213242235-1788933880.png" alt="img" loading="lazy"><br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703213308366-602650098.png" alt="img" loading="lazy"></li>
</ol>


<ol start="3">
<li>点击你的 Github头像 调出侧边栏<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703213340167-1662949657.png" alt="img" loading="lazy"></li>
</ol>

<ol start="4">
<li>点击 Settings<br><br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703213445243-1949131480.png" alt="img" loading="lazy"></li>
</ol>

<ol start="5">
<li>在页面中往下滑,找到 Developer Settings<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703213553794-97881438.png" alt="img" loading="lazy"></li>
</ol>

<ol start="6">
<li>在 Developer Settings 页面中找到 Persional access tokens<span class="math inline">\(\rightarrow\)</span>点击 Tokens(classic)<span class="math inline">\(\rightarrow\)</span>点击Generate a personal access token<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703213648572-422234460.png" alt="img" loading="lazy"></li>
</ol>

<ol start="7">
<li>简单填写一下相关信息,勾选权限 repo和user,并设置令牌过期时间(建议&gt;30天),设置好后就点击 Generate Token生成访问令牌<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703213723434-775878300.png" alt="img" loading="lazy"></li>
</ol>

<ol start="8">
<li>访问令牌已经生成好了,我们把它复制下来备用<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703213746038-257803781.png" alt="img" loading="lazy"></li>
</ol>

<ol start="9">
<li>之后再次回到个人主页的仓库设置,还是一样,新建一个仓库密钥<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703213806051-346904127.png" alt="img" loading="lazy"></li>
</ol>

<ol start="10">
<li>填入我们刚才申请的 Github 个人访问令牌,配置好后点击 Add Secret<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703213830715-1631265285.png" alt="img" loading="lazy"></li>
</ol>

<p>配置好后这样的,如图所示</p>
<p><img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703213906749-923972095.png" alt="img" loading="lazy"></p>

<h2 id="5-配置-actions">5. 配置 Actions</h2>
<ol>
<li>进入个人主页仓库,切换为英文键盘并按下英文输入状态下的句号,即可唤起Github远程VS Code 工作流<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703213938085-933314923.png" alt="img" loading="lazy"></li>
</ol>

<ol start="2">
<li>如果访问成功,你会看到如下界面<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703214011094-1150985851.png" alt="img" loading="lazy"></li>
</ol>

<p><img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703214053354-680629297.png" alt="img" loading="lazy"></p>

<ol start="3">
<li>在工作目录下点击新建文件夹,建立一个 <code>.github/workflows</code> 结构的文件夹<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703214141142-941673769.png" alt="img" loading="lazy"><br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703214157951-36388579.png" alt="img" loading="lazy"></li>
</ol>


<ol start="4">
<li>在 <code>workflows</code> 文件夹下新建一个yml文件,注意不要建错了,很多人都会建错<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703214219452-962751422.png" alt="img" loading="lazy"><br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703214232836-1800232118.png" alt="img" loading="lazy"></li>
</ol>


<ol start="5">
<li>将模板写入文件里</li>
</ol>
<pre><code class="language-yml">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 }}
</code></pre>
<p><img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703214420580-525950233.png" alt="img" loading="lazy"></p>

<ol start="6">
<li>之后在 Git 中提交更改,点击 Commit&amp;Push<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703214449665-972697568.png" alt="img" loading="lazy"></li>
</ol>

<blockquote>
<p>如果出现该对话框,那么<mark>请点击Pull后再次Commit&amp;Push</mark><br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703214554117-1005459171.png" alt="img" loading="lazy"></p>
</blockquote>

<ol start="7">
<li>之后到仓库的 Actions 中查看文件的上传结果,如图所示,文件成功上传到仓库中<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703214641806-1736523431.png" alt="img" loading="lazy"></li>
</ol>

<ol start="8">
<li>之后我们需要在 workflow中 手动运行yml文件,如图所示。点击<span class="math inline">\(\rightarrow\)</span>WakaReadme<span class="math inline">\(\rightarrow\)</span>点击右侧的Run workflow<span class="math inline">\(\rightarrow\)</span>点击Run workflow<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703214711421-517316326.png" alt="img" loading="lazy"></li>
</ol>

<ol start="9">
<li>刷新浏览器,执行完毕后会出现一个蓝色的<span class="math inline">\(\checkmark\)</span><br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703214735109-166537699.png" alt="img" loading="lazy"></li>
</ol>

<p>注:如果出现如下错误,那么你需要检查README.md文件是否写入了那两行注释,错误信息如下</p>
<pre><code class="language-markdown">File "/waka-readme-stats/main.py", line 221, in &lt;module&gt;

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

(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

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

(https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3: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

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

(https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3: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

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

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

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

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

(https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3: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

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

(https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3: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

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

(https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3: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

(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()}")

(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=***)' 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.'}

(https://github.com/MagicCD/MagicCD/actions/runs/5444806464/jobs/9903159455#step:3:52)sys:1: RuntimeWarning: coroutine 'AsyncClient.get' was never awaited
</code></pre>
<p>解决方法:在README.md文件中的合适位置写入这两行注释</p>
<pre><code class="language-markdown">&lt;!--START_SECTION:waka--&gt;
&lt;!--END_SECTION:waka--&gt;
</code></pre>
<p>设置完成并执行成功后,回到你的个人仓库主页,你就会发现!我去,真甜蜜炫酷啊啊啊啊啊!!!!对不起,请允许我发电一下(深情~:D)<br>
<img src="https://img2023.cnblogs.com/blog/3214061/202307/3214061-20230703214819315-291733054.png" alt="img" loading="lazy"></p>

<p>至此,所有的设置我们都做完了。如果你想对这些进行扩展,那么你可以参考我翻译的文档,里面记录了各个标志字段的作用和显示与否,也欢迎专业翻译人员对文档翻译进行语言改进,非常感谢!</p>
<h2 id="翻译文档地址">翻译文档地址</h2>
<p>WakaTime Readme Stats-开源项目翻译 - sarexpine - 博客园 (cnblogs.com)</p><br><br>
来源:https://www.cnblogs.com/sarexpine/p/17524245.html
頁: [1]
查看完整版本: Github-Readme-Stats 简明教程