diff --git a/.github/pr_autorename.py b/.github/pr_autorename.py
new file mode 100755
index 0000000..1ae811a
--- /dev/null
+++ b/.github/pr_autorename.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python3
+"""Update the name of PR.
+"""
+import sys
+def check(title:str):
+ """Check and update the name of PR.
+
+ Args:
+ title (str): _description_
+
+ Returns:
+ _type_: _description_
+ """
+
+ title = title.strip().replace("【", "[")
+ if(not title.startswith("[Pull Request]")):
+ temp = title.replace("(", "").replace("{", "").replace("[", "") \
+ .replace(")", "").replace("}", "").replace("]", "") \
+ .replace(" ", "").replace("_", "").replace("-", "") \
+ .lower().replace("ull", "").replace("equest", "")
+ if(temp.startswith("pr")):
+ temp = title.lower().replace("(", "[").replace("{", "[").replace(")", "]").replace("}", "]").replace("-", "_").replace(" ", "_")
+ content = ""
+ # 1. '[pull_request]:
'
+ if(temp.startswith("[pull_request]:")):
+ content = title[len("[pull_request]:"):].strip()
+ # 2. '[pull request] '
+ elif(temp.startswith("[pull_request]")):
+ content = title[len("[pull_request]"):].strip()
+
+ # 3. '[pr]: '
+ elif(temp.startswith("[pr]:")):
+ content = title[len("[pr]:"):].strip()
+ # 4. '[pr] '
+ elif(temp.startswith("[pr]")):
+ content = title[len("[pr]"):].strip()
+
+ # 5. 'pull request: '
+ elif(temp.startswith("pull_request:")):
+ content = title[len("pull_request:"):].strip()
+ # 5. 'pr: '
+ elif(temp.startswith("pr:")):
+ content = title[len("pr:"):].strip()
+ else:
+ content = title
+ title = "[Pull Request] " + content
+ else:
+ title = "[Pull Request] " + title
+ return title
+
+print(check(sys.argv[1]))
diff --git a/.github/workflows/pr-autorename.yml b/.github/workflows/pr-autorename.yml
new file mode 100644
index 0000000..682387f
--- /dev/null
+++ b/.github/workflows/pr-autorename.yml
@@ -0,0 +1,40 @@
+name: Check Pull Request Title
+
+on:
+ pull_request:
+ types:
+ - opened
+
+jobs:
+ check_title:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Comment on Pull Request
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ pull_request_number=${{ github.event.pull_request.number }}
+ current_title="${{ github.event.pull_request.title }}"
+ message_body="The origin title of this PR is: '$current_title'. GitHub Action is checking it..."
+ curl -H "Authorization: Bearer ${GITHUB_TOKEN}" \
+ -H "Content-Type: application/json" \
+ -X POST \
+ -d '{"body":"'"$message_body"'"}' \
+ "https://api.github.com/repos/${{ github.repository }}/issues/$pull_request_number/comments"
+
+ - name: Update Pull Request title
+ run: |
+ pull_request_number=${{ github.event.pull_request.number }}
+ current_title="${{ github.event.pull_request.title }}"
+
+ updated_title=$(python3 "./.github/pr_autorename.py" "$current_title")
+ token=${{ secrets.GITHUB_TOKEN }}
+ curl -X PATCH \
+ -H "Authorization: Bearer $token" \
+ -H "Accept: application/vnd.github.v3+json" \
+ "https://api.github.com/repos/${{ github.repository }}/pulls/$pull_request_number" \
+ -d '{ "title": "'"$updated_title"'" }'