diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 36dc431f63..0ecdb0bae3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -45,6 +45,7 @@ auto_update:
     - apk add git
     - git config user.name 'GitLab CI'
     - git config user.email 'noreply@firefish.dev'
+    - git remote set-url origin "https://${CI_REGISTRY_USER}:${API_TOKEN}@${CI_REPOSITORY_URL#*@}"
     # update pnpm lockfile
     - pnpm install
     # commit
@@ -52,7 +53,7 @@ auto_update:
       if [ `git status -s | wc -l` -gt 0 ]; then
         git add .
         git commit --message 'chore: update lockfile'
-        git push --push-option=ci.skip "https://gitlab-ci-token:${CI_JOB_TOKEN}@firefish.dev/${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH}" "HEAD:${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
+        git push --push-option=ci.skip origin "${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
       fi
     # run format
     - pnpm run format
@@ -61,7 +62,7 @@ auto_update:
       if [ `git status -s | wc -l` -gt 0 ]; then
         git add .
         git commit --message 'chore: format'
-        git push --push-option=ci.skip "https://gitlab-ci-token:${CI_JOB_TOKEN}@firefish.dev/${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH}" "HEAD:${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
+        git push --push-option=ci.skip origin "${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
       fi
     # update packages/backend-rs/src/model/entity
     - apk install pkgconfig openssl openssl-dev libssl3
@@ -94,7 +95,7 @@ auto_update:
       if [ `git status -s | wc -l` -gt 0 ]; then
         git add .
         git commit --message 'chore (backend-rs): regenerate entity'
-        git push --push-option=ci.skip "https://gitlab-ci-token:${CI_JOB_TOKEN}@firefish.dev/${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH}" "HEAD:${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
+        git push --push-option=ci.skip origin "${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
       fi
     # update packages/backend-rs/index.{js,d.ts}
     - pnpm run build:debug
@@ -105,5 +106,5 @@ auto_update:
       if [ `git status -s | wc -l` -gt 0 ]; then
         git add .
         git commit --message 'chore (backend-rs): regenerate index'
-        git push --push-option=ci.skip "https://gitlab-ci-token:${CI_JOB_TOKEN}@firefish.dev/${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH}" "HEAD:${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
+        git push --push-option=ci.skip origin "${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
       fi