diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
index 57403852197753727ab4fc8d0b9a8fe16d9187dc..fe5679be1c3f4527d14f0923e817b61d0e47cf09 100644
--- a/.github/workflows/coverage.yml
+++ b/.github/workflows/coverage.yml
@@ -59,10 +59,15 @@ jobs:
         run: make -f .test.mk test-coverage
 
       - name: Upload coverage results to coveralls.io
-        uses: coverallsapp/github-action@v1.1.2
-        with:
-          github-token: ${{ secrets.GITHUB_TOKEN }}
-          path-to-lcov: ./coverage.info
+        run: |
+          coveralls-lcov \
+            --service-name=github \
+            --repo-token=${{ secrets.GITHUB_TOKEN }} \
+            --service-job-id=${{ github.run_id }} \
+            --branch=${{ github.ref }} \
+            ${{ github.event_name == 'pull_request' &&
+            format('--service-pull-request={0}', github.event.number) || '' }} \
+            ./coverage.info
 
       - name: Send VK Teams message on failure
         if: failure()