cofacts

Month: 2021-06

2021-06-01

booco1999 00:47:38
@booco1999 has joined the channel

2021-06-02

github 12:59:31
⚠️ *Action required - upgrade app for g0v* ⚠️
github 12:59:32

Comment on #257 Make most redis keys volatile

*Pull Request Test Coverage Report for <https://coveralls.io/builds/40227976|Build 1360>* • *1* of *5* *(20.0%)* changed or added relevant lines in *2* files are covered. • No unchanged relevant lines lost coverage. • Overall coverage decreased (*-0.3%*) to *86.691%* * * * * * * *:yellow_heart: - <https://coveralls.io|Coveralls>*

rebuild 兩次才成功 😾

```Pulling mongo-container (mongo:3.6)...

ERROR: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

Waiting for Redis ... Error: No such container: redis

Error: No such container: redis```
QQ
關於這個 PR
我想改成 mongodb
但那個檢查 context 還在不在的 webhook change 還是要進
Github action 放好了。
Travis 一直卡在 docker-compose up 所以我先關掉了,用 github action 取代~
所以下面這兩個 PR 可以 review 囉(其實也放了 2X 天了⋯⋯) - https://github.com/cofacts/rumors-line-bot/pull/253 - https://github.com/cofacts/rumors-deploy/pull/20
travis 裡面 docker-compose up 似乎特別容易遇到 `toomanyrequests`
其實我們應該用 travis 的 redis services 而不是自己寫 docker-compose script 自己拉 XD
mrorz 13:00:08
https://g0v.hackmd.io/@mrorz/cofacts-meeting-notes/%2FyCJkaJJiSQmApACcVWkVNg 今日會議記錄
請問一下,Cofacts的Open Data,什麼時候會更新一次呢?
時間不固定唷,不過確實有一陣子沒有更新了
請問一下最近有可能更新嗎?
@dz352 今天更新囉~時間應該是到 6/6 清晨定期備份時間
請再到 Cofacts 的 Dataset 資料夾(google drive)查看
這邊則是有用 Data set 做的一些基礎數字
可以看到 5/13 之後每天送進來的訊息數暴增
https://datastudio.google.com/u/0/reporting/18J8jZYumsoaCPBk9bdRd97GKvi_W5v-r/page/ckUQ
非常感謝!

2021-06-03

mrorz 20:01:41
Github action 放好了。
Travis 一直卡在 docker-compose up 所以我先關掉了,用 github action 取代~
所以下面這兩個 PR 可以 review 囉(其實也放了 2X 天了⋯⋯) - https://github.com/cofacts/rumors-line-bot/pull/253 - https://github.com/cofacts/rumors-deploy/pull/20

#20 Deploy LINE bot in docker-compose

2021-06-04

github 03:32:05
⚠️ *Action required - upgrade app for g0v* ⚠️
github 03:34:11

Comment on #253 Dockerize LINE bot

Just curious. Why do you pack graphql schema in the bundle pipeline, but not in the development? In my opinion, the schema is part of API structure code, which should be part of the codebase.

2021-06-05

github 03:33:03
⚠️ *Action required - upgrade app for g0v* ⚠️
github 03:33:04

Comment on #253 Dockerize LINE bot

&gt; Just curious. Why do you pack graphql schema in the bundle pipeline, but not in the development? In my opinion, the schema is part of API structure code, which should be part of the codebase. Good question. I was also thinking the same thing. Including the remote GraphQL schema in the codebase helps developer understand the *expected* API. It also helps keep track of the API change in LINE bot code base, after API server is changed. I should include the remote GraphQL schema directly in the codebase in future PRs.

github 03:34:27

Comment on #253 Dockerize LINE bot

Default branch changed back to `dev`.

2021-06-06

mrorz 01:22:25
等等 1:30AM 我要來重新啟動 production 的 docker engine 讓 cloud watch 的設定生效
希望 downtime 可以越短越好
mrorz 01:30:17
go
mrorz 01:32:38
mrorz 01:34:17
done
mrorz 01:38:16
Github action 前一個 step 用 curl 抓下來的檔案,在下一個 step 不會保留的樣子⋯⋯
`.env` 完全沒抓到 囧
image.png
沒設定 artifacts ?
確實沒設定 XD
但 ci.yml 裡 `npm ci` 之後,也沒針對 `node_modules` 設定 artifacts<
artifact 看起來是跨 job 用的,但我是同一個 job 下的不同 step。同一個 job 的 step 都會在同一台 runner 跑
我在想是不是更低級的錯誤,我打錯設錯之類的囧
重設 secret 就有抓到了
果然是低級錯誤囧
kiang 01:39:55
我的情況是排程 10 分鐘執行一次但實際上 30-60 分鐘才會跑一次,所以放棄了 XD
mrorz 01:43:49
為了 npm 7 使用 `node:16` 結果 pm2 好像會吐怪東西 囧
image.png
mrorz 13:31:32
@dz352 今天更新囉~時間應該是到 6/6 清晨定期備份時間
請再到 Cofacts 的 Dataset 資料夾(google drive)查看
🦒 1
github 17:01:16
⚠️ *Action required - upgrade app for g0v* ⚠️
github 17:01:18

#258 Fix env in docker

Previously, docker images built by Github actions are always in English. `console.log` in `babel.config.js` always detects `en_US` locale: <https://user-images.githubusercontent.com/108608/120918743-8ae66780-c6e8-11eb-80a3-b51a29b8cdf6.png|圖片> The root cause is that `actions/checkout@v2` action will remove `.env` file. This PR moves `.env` file download to after `actions/checkout@v2` and the build process can correctly pick up the env file: <https://user-images.githubusercontent.com/108608/120918792-cbde7c00-c6e8-11eb-992b-375cec4fe3ba.png|圖片>

github 18:20:07

#259 Fix server startup warning messages

When starting up the server under Node.js 16, it will emit the following warnings: &gt; PM2 error: TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received type number (18) This is fixed by <https://github.com/Unitech/pm2/issues/4685|Unitech/pm2#4685>. &gt; (node:29) Warning: Accessing non-existent property 'findOne' of module exports inside circular dependency This is fixed by <https://developer.mongodb.com/community/forums/t/warning-accessing-non-existent-property-count-of-module-exports-inside-circular-dependency/3183|https://developer.mongodb.com/community/forums/t/warning-accessing-non-existent-property-count-of-module-exports-inside-circular-dependency/3183> Also fixes npm audit warnings.

github 18:37:07

Comment on #259 Fix server startup warning messages

Deployed to staging, working fine. Will merge as there is no feature added.

mrorz 19:14:04
line-bot.cofacts.tw (on Linode)上線了。

預計凌晨來執行 LINE bot server 切換到 line-bot.cofacts.tw 的作業,切換 SOP: https://g0v.hackmd.io/8VGFKx-cR8yEdKlAQ3vv5A?view#Deploy-SOP

g0v.hackmd.io

20210526 會議記錄 - HackMD

目前進度:
> Update `master` to latest branch
撞到這個鳥 bug 所以 downtime 多了一點
https://github.com/go-redis/redis/issues/1343
現在要來切換 URL 了
切好了
設定通通完成。
就看這幾天 run 下去 load 是否撐得住,沒問題的話 heroku production 就可以關成 free dyno 囉~
搬家後目前還沒收到 `Messaging API: Your server did not return [200 OK]` 的信

凌晨有發生幾次 502,那是因為我當時在改 env var 後重開
LINE bot 的 resident memory 大概是 100 多 MB,比之前在 heroku 上觀測到得還少
今天一整天還是有幾次 request timeout 的狀況
目前 web concurrency (pm2 跑的 node.js 數量) 是 2
而我們機器是 6 core,要跑 API, elasticsearch, 網站
我來把 concurrency 調成 3,明天再來觀察
🦒 1
CC 23:01:07
@info.cchsu has joined the channel

2021-06-07

mrorz 01:06:47
發現這個怪 log
image.png
目前群組功能故障中 囧
在群組裡面發一次這個,就會觸發此 error
網路上都說這是因為 `.process` 定義了 named processor 但 add 的時候沒有附上 name 所致

但我們 `.process()` 也沒附上名字呀怪
啊我想我知道為啥了⋯⋯
https://github.com/cofacts/rumors-line-bot/blob/dev/src/webhook/handlers/groupHandler.js#L22
這裏 `process.env.JOBQUEUE_CONCURRENCY` 沒有轉數字,所以如果設定了 `JOBQUEUE_CONCURRENCY` ,`concurrency` 會變成字串。

所以 L27 的時候,bull 就會把那個字串 `concurrency` 當成 processor name 然後定義了一個 named processor⋯⋯
github 01:46:43

#260 "Missing process handler for job type __default__" when JOBQUEUE_CONCURRENCY is set

Currently when `JOBQUEUE_CONCURRENCY` env is explicitly set, group chat handler will not work. Every time a message is send to group, it emits errors as below: <https://user-images.githubusercontent.com/108608/120934669-d6713380-c731-11eb-9763-2249a453fe7c.png|image> The root cause is that when `JOBQUEUE_CONCURRENCY` env var is given, it will be a string , which will be interpreted as a <https://github.com/OptimalBits/bull/blob/develop/REFERENCE.md#queueprocess|processer name> in <https://github.com/cofacts/rumors-line-bot/blob/dev/src/webhook/handlers/groupHandler.js#L22|https://github.com/cofacts/rumors-line-bot/blob/dev/src/webhook/handlers/groupHandler.js#L22> . When the processor is registered as a named processor, calling `.add()` without "name" will <https://github.com/OptimalBits/bull/issues/1529#issuecomment-548402563|cause the "missing handler for *default*" error>. Current workaround: do not set `JOBQUEUE_CONCURRENCY` in env var.

mrorz 01:52:40
設定通通完成。
就看這幾天 run 下去 load 是否撐得住,沒問題的話 heroku production 就可以關成 free dyno 囉~
🙏 2

2021-06-08

JaneW 02:33:47
@jnes41023 has joined the channel

2021-06-09

Sephora Sephora 11:16:46
@kinkojiang has joined the channel
goodjack 小克 11:16:51
@goodjack has joined the channel
Gin Liu 14:26:14
@gingirlliu has joined the channel
Gin Liu 14:47:08
大家好,我是 Gin, 我們團隊正在開發一個在地社群的服務,裡面會有疫情相關的用戶發文、留言。由於 cdc 說建議我們最好可以針對用戶發布的內容做事實查核,因此我們有幾個問題想問:
1. 是否有 api 可以讓我們回傳用戶發布內容到 cofacts,然後根據 cofacts 回應的結果,決定是否移除內容
2. 如果上述成立,在資料互傳的時候,是否有需要注意的事項,比如待查證內容的篩選方式、品質、數量
3. 待查證的內容,通常需要多少時間才會完成查證?(可能影響我們是否需要增加其他把關方法)
希望能夠得到回覆!感謝各位大大!
想問一下這個「疫情相關的用戶發文、留言」具體是在什麼樣的情境發生的呢?Cofacts 資料庫這裡希望搜集的會是實際在社群網站流傳的可疑訊息唷,因為這樣才有後續查詢的效益,也比較不會浪費寶貴的編輯資源在未來不會有人再詢問的訊息上。

Cofacts 有 API 可以查詢已知的訊息。若有新的訊息想要回報,目前比較方便的作法可能是,人工確認這是「在網路上有在轉發的訊息」後,再手動傳進 LINE bot 傳進資料庫建檔。若查詢數累積了一定程度,也比較容易有編輯看到並且進行查證。

Cofacts 目前其實最缺的會是撰寫闢謠回應人手,所以我想「通常需要多少時間完成」這件事情無法給任何數字,而且也無法確定群眾的回應是不是符合你們的期待。

如果查證訊息的方面可以一起投入人力來做的話就更好了唷!闢謠教學: https://cofacts.tw/tutorial
「疫情相關的用戶發文、留言」這是用戶主動在我們的社群服務中發布的,有可能是用戶從其他地方分享過來的連結,也有可能是用戶自己撰寫的內容
目前爬了 cofacts 的紀錄,也有發現最缺的是一起撰寫闢謠回應的人手,真希望我們也有能力可以在這部分幫忙一些忙!!!
mrorz 16:37:08
@mrorz set the channel description: g0v Cofacts 真的假的專案討論區;開發訊息回報與訊息查證之 LINE 聊天機器人。
官網:https://cofacts.tw

Cofacts crowd-sourced fact-checking chatbot.

2021-06-10

github 03:33:47
⚠️ *Action required - upgrade app for g0v* ⚠️
github 03:33:49

#261 Change main branch to master

Currently, both staging LINE bot and production LINE bot are deployed using docker. • Staging: build &amp; push to `cofacts/rumors-line-bot:dev-tw` after `master` branch merge • Production: build &amp; push to `cofacts/rumors-line-bot:latest-tw` after `release/XXX` tag is pushed Therefore, we no longer need `dev` and `master` branch. We can just use `master` branch only. This PR: • replaces `dev` branch existence in code base • connects CI test to Coveralls

mrorz 03:34:10
To LINE bot developers:

我把 rumors-line-bot 的 main brain 從 dev 設回 master 囉!請見此 PR 的說明:
https://github.com/cofacts/rumors-line-bot/pull/261

#261 Change main branch to master

Currently, both staging LINE bot and production LINE bot are deployed using docker. • Staging: build &amp; push to `cofacts/rumors-line-bot:dev-tw` after `master` branch merge • Production: build &amp; push to `cofacts/rumors-line-bot:latest-tw` after `release/XXX` tag is pushed Therefore, we no longer need `dev` and `master` branch. We can just use `master` branch only. This PR: • replaces `dev` branch existence in code base • connects CI test to Coveralls

Ada 09:11:48
@slack1087 has joined the channel

2021-06-11

8loser 01:09:05
@8loser has joined the channel
Anges 11:39:03
@weidesign00 has joined the channel

2021-06-13

github 01:29:06
⚠️ *Action required - upgrade app for g0v* ⚠️
github 01:29:08

#262 Setup Storybook for LIFF components

As a prep work for <https://www.figma.com/file/DvmAQjMJCncuPORWKnljM1/Cofacts-website-MrOrz?node-id=3005%3A0|Article LIFF>, we are setting up storybook to demonstrate components. Built storybook: <https://cofacts.github.io/rumors-line-bot/|https://cofacts.github.io/rumors-line-bot/> <https://user-images.githubusercontent.com/108608/121784414-76bdd100-cbe6-11eb-85b4-fc453c684471.png|圖片> <https://user-images.githubusercontent.com/108608/121784477-b4baf500-cbe6-11eb-9d4c-ff71bbb70dd9.png|圖片>

mrorz 16:25:55
LIFF「看過的訊息」新外觀
使用之前 LIFF 的元素
字變大
image.png
1
github 18:18:43

#263 Include Cofacts API schema in repo

As discussed in <https://github.com/cofacts/rumors-line-bot/pull/253#issuecomment-854124426|previous code review comment>, we should consider Cofacts API graphql schema as part of the LINE bot code base.

github 18:33:17

Comment on #257 Make most redis keys volatile

As we move to larger redis instance, we no longer need this fix. 1. In the future we plan to pass context along with actions (only store full text in redis), which should further reduce access of redis keys. 2. As `lastScannedAt` should never expire, we should put it in mongodb instead of redis. Thus the solution proposed in this pull request is suboptimal, should be rejected.

github 18:42:04

Comment on #263 Include Cofacts API schema in repo

*Pull Request Test Coverage Report for <https://coveralls.io/builds/40539150|Build 933010003>* • *0* of *0* changed or added relevant lines in *0* files are covered. • No unchanged relevant lines lost coverage. • Overall coverage remained the same at *87.013%* * * * * * * *:yellow_heart: - <https://coveralls.io|Coveralls>*

github 18:47:34

Comment on #262 Setup Storybook for LIFF components

*Pull Request Test Coverage Report for <https://coveralls.io/builds/40539169|Build 933018419>* • *0* of *0* changed or added relevant lines in *0* files are covered. • No unchanged relevant lines lost coverage. • Overall coverage remained the same at *87.013%* * * * * * * *:yellow_heart: - <https://coveralls.io|Coveralls>*

github 21:24:46

#264 Upgrade to webpack 5

• new svelte-loader only works with Webpack 5: svelte-loader#178 • upgrades all loaders

github 21:27:49

Comment on #264 Upgrade to webpack 5

*Pull Request Test Coverage Report for <https://coveralls.io/builds/40539906|Build 933244265>* • *0* of *0* changed or added relevant lines in *0* files are covered. • No unchanged relevant lines lost coverage. • Overall coverage remained the same at *87.013%* * * * * * * *:yellow_heart: - <https://coveralls.io|Coveralls>*

2021-06-14

github 01:58:20
⚠️ *Action required - upgrade app for g0v* ⚠️
github 02:00:28

Comment on #264 Upgrade to webpack 5

Upgrading storybook's webpack to v5 is also having the following issues: • Storybook 6.2's webpack v5 is still rc version, not stable yet • After making storybook support webpack v5, stories will dissapeear, which requires <https://github.com/storybookjs/addon-svelte-csf/issues/23|more configuration> to fix I decided that we should wait until storybook officially support webpack v5 before we jump into webpack v5. We are upgrading svelte-loader to `master` branch's version to mitigate the <https://github.com/sveltejs/svelte-loader/issues/178|original issue>. Closing this PR.

chihao 17:23:06
有問題 ✋ 想請問 cofacts article 網頁上寫「Line 詢問 n 次」這是指什麼呢?例如這則的網頁上寫「Line 詢問 657 次」
使用 line 上的chatbot來查詢這篇可疑訊息的次數
lucien ++ `line 上的chatbot` 指的是 cofacts?還是還有別的 chatbot 😅
是cofacts
了解 👍 lucien ++
要注意 UI 上的數字只顯示最近 31 天ㄛ

2021-06-15

tinlans 02:50:11
@tinlans has joined the channel

2021-06-16

github 13:39:03
⚠️ *Action required - upgrade app for g0v* ⚠️
github 13:39:05

#265 Exclude replies with negative feedback when notifying users

Discussion: <https://g0v.hackmd.io/giYWfM8yRkKghtPOG1EBig#%E4%BA%82%E5%9B%9E%E8%88%87%E9%80%9A%E7%9F%A5|https://g0v.hackmd.io/giYWfM8yRkKghtPOG1EBig#%E4%BA%82%E5%9B%9E%E8%88%87%E9%80%9A%E7%9F%A5> We should not notify LINE user of replies with negative feedbacks. `getArticlesInBatch()` in `src/scripts/lib.js` should only yield articles when there are new replies having positive or zero feedbacks (positive - negative score &gt;= 0).

mrorz 13:56:24
今日會議記錄
https://g0v.hackmd.io/@mrorz/cofacts-meeting-notes/%2FMhHehw-oQ2OqTVWFUxNRfA
今日會議延到 10pm 開始唷
github 17:02:50

#266 Cannot read property split of undefined/null expression

View details in Rollbar: <https://rollbar.com/mrorz/rumors-line-bot/items/431/|https://rollbar.com/mrorz/rumors-line-bot/items/431/> ``` TypeError: Cannot read property 'split' of undefined File "/srv/www/build/webhook/handlers/utils.js", line 500, in createHighlightContents for (let highlightPair of text.split('&lt;/HIGHLIGHT&gt;')) { File "/srv/www/build/webhook/handlers/initState.js", line 166, in &lt;unknown&gt; contents: (0, _utils.createHighlightContents)(highlight, text), File "&lt;anonymous&gt;", line unknown, in Array.map File "/srv/www/build/webhook/handlers/initState.js", line 141, in initState const articleOptions = edgesSortedWithSimilarity.map(({ File "&lt;anonymous&gt;", line unknown, in runMicrotasks File "node:internal/process/task_queues", line 96, in processTicksAndRejections File "/srv/www/build/webhook/handleInput.js", line 117, in async handleInput params = await (0, _initState.default)(params); File "/srv/www/build/webhook/index.js", line 241, in async processText result = await (0, _handleInput.default)(context, { File "/srv/www/build/webhook/index.js", line 160, in async singleUserHandler result = await processText(context, type, input, otherFields, userId, req); ``` <https://user-images.githubusercontent.com/108608/122190796-ba555b00-cec4-11eb-9825-55f3131b53aa.png|image> Seems that `text` can be `undefined` and break code below. *Text* &gt; 陳培哲說這1年多來參加了約50多次疫情會議,如果篩檢出新冠肺炎的高齡患者、糖尿病、腎臟病等慢性病者,立刻打新冠單株抗體,可以減少5到6成死亡率。「這我很早就講過了,他們充耳不聞,那些生命是可以挽救的,你就知道我的挫折有多深。這代表這個指揮中心的科學判斷與能力不足。」 &gt; &gt; 陳培哲指出,另一個疫情中心不夠科學專業的地方是「核酸檢測方式」。美國食藥局(FDA)有一套檢測系統,但台灣的病管局(CDC)卻自己弄另外一套,沒自動化、量能少又不凖,專家建議應採FDA的系充,但指揮中心根本不聽。「這次中國廣州疫情爆發,1000多萬人1個禮拜做完採檢,用我們手動方式要做到哪一年?」 &gt; <https://www.storm.mg/new7/article/3740414?fbclid=IwAR3KtouSJVdWjFM0VVA3dj7J-0kWBxxObEw0jNjpy87LpQil0fmMYrm0OzE|https://www.storm.mg/new7/article/3740414?fbclid=IwAR3KtouSJVdWjFM0VVA3dj7J-0kWBxxObEw0jNjpy87LpQil0fmMYrm0OzE> *Output* <https://user-images.githubusercontent.com/108608/122191184-14562080-cec5-11eb-84a2-b897d91f51fa.png|image>

github 19:02:19

Comment on #266 Cannot read property split of undefined/null expression

Same as <https://github.com/cofacts/rumors-line-bot/issues/220|#220> ?

github 20:12:01

Comment on #266 Cannot read property split of undefined/null expression

You are right. let's just use <https://github.com/cofacts/rumors-line-bot/issues/220|#220>.

mrorz 20:12:14
今日會議延到 10pm 開始唷

2021-06-17

github 08:54:35
GitHub app is successfully upgraded in your workspace 🎉
To receive notifications in your private channels, you need to invite the GitHub app `/invite @GitHub`

2021-06-18

mrorz 02:29:09
週三開會覺得系統穩定
結果凌晨:
image.png
nginx access log 與 error log 相對應的時間也都沒有 502 log
🤔 1

2021-06-19

mrorz 01:13:08
使用者一多,計算上次 notification 送到哪的 lastScannedAt 就被洗掉 囧
image.png
北農的其中一個版本也害 #220 error 一天內噴了400 多次..

看起來真的該修了⋯⋯
@acerxp511 最近有空嗎 QQ
我可以先讓 linebot 不壞掉
針對 `lastScannedAt` 一直被刪掉
我做了個爛招
就是加一筆 cronjob 每一小時去讀一次 `lastScannedAt`
希望這樣他就不會被 LRU 掃到⋯⋯囧

2021-06-20

github2 02:32:47
[cofacts/rumors-line-bot] Pull request opened by MrOrz

<https://github.com/cofacts/rumors-line-bot/pull/267|#267 [WIP] Common components in LIFF>

• Remove global material design styles, which is not currently in use • Add Cofacts palette as CSS custom properties • Implement `Button` and `TextArea` • Add SVG Icons

:white_check_mark: No checks have passed

github2 02:34:46
[cofacts/rumors-line-bot] Pull request opened by MrOrz

<https://github.com/cofacts/rumors-line-bot/pull/268|#268 [WIP] Remove svelte-material-ui>

• Reduces bundle size from XXX to OOO • Apply common style to match <https://www.figma.com/file/DvmAQjMJCncuPORWKnljM1/Cofacts-website-MrOrz?node-id=3005%3A0|new article page>

:white_check_mark: No checks have passed

github2 23:52:04
[cofacts/rumors-line-bot] Comment on #267

<https://github.com/cofacts/rumors-line-bot/pull/267#issuecomment-864574279|Comment on #267 [WIP] Common components in LIFF>

*Pull Request Test Coverage Report for <https://coveralls.io/builds/40725306|Build 954714778>* • *0* of *0* changed or added relevant lines in *0* files are covered. • No unchanged relevant lines lost coverage. • Overall coverage remained the same at *87.013%* * * * * * * *:yellow_heart: - <https://coveralls.io|Coveralls>*

2021-06-21

github2 01:22:45
[cofacts/rumors-line-bot] Comment on #268

<https://github.com/cofacts/rumors-line-bot/pull/268#issuecomment-864586092|Comment on #268 [WIP] Remove svelte-material-ui>

*Pull Request Test Coverage Report for <https://coveralls.io/builds/40725634|Build 954836834>* • *0* of *0* changed or added relevant lines in *0* files are covered. • No unchanged relevant lines lost coverage. • Overall coverage remained the same at *87.013%* * * * * * * *:yellow_heart: - <https://coveralls.io|Coveralls>*