Add templates of issue and pull request (#505)

diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000..b7e00f3
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,111 @@
+name: Bug Report
+title: "[Bug] Please Describe the Bug"
+description: Create a report to help us identify any unintended flaws/errors/faults.
+labels: [ "type/bug" ]
+body:
+  - type: checkboxes
+    attributes:
+      label: Before Creating the Bug Report
+      options:
+        - label: >
+            I found a bug, not just asking a question, which should be created in [GitHub Discussions](https://github.com/apache/rocketmq-clients/discussions).
+          required: true
+        - label: >
+            I have searched the [GitHub Issues](https://github.com/apache/rocketmq-clients/issues) and [GitHub Discussions](https://github.com/apache/rocketmq-clients/discussions)  of this repository and believe that this is not a duplicate.
+          required: true
+        - label: >
+            I have confirmed that this bug belongs to the current repository, not other repositories of RocketMQ.
+          required: true
+
+  - type: dropdown
+    attributes:
+      label: Programming Language of the Client
+      options:
+        - Java
+        - C++
+        - C#
+        - Go
+        - Rust
+        - Python
+        - Node.js
+        - PHP
+        - Not related to the specified programming language
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: Runtime Platform Environment
+      description: Describe the runtime platform environment.
+      placeholder: >
+        OS: (e.g., "Ubuntu 20.04")
+        OS: (e.g., "Windows Server 2019")
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: RocketMQ Version of the Client/Server
+      description: Describe the RocketMQ version.
+      placeholder: >
+        version: (e.g. 5.1.0|5.0.4)
+        Git commit id: (e.g. c88b5cfa72e204962929eea105687647146112c6)
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: Run or Compiler Version
+      description: Run or Compiler version.
+      placeholder: >
+        Compiler: (e.g., "Oracle JDK 11.0.17")
+        OS: (e.g., "Ubuntu 20.04")
+        Runtime (if different from JDK above): (e.g., "Oracle JRE 8u251")
+        OS (if different from OS compiled on): (e.g., "Windows Server 2019")
+    validations:
+      required: false
+
+  - type: textarea
+    attributes:
+      label: Describe the Bug
+      description: Describe what happened.
+      placeholder: >
+        A clear and concise description of what the bug is.
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: Steps to Reproduce
+      description: Describe the steps to reproduce the bug here.
+      placeholder: >
+        If possible, provide a recipe for reproducing the error.
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: What Did You Expect to See?
+      description: You expect to see result.
+      placeholder: >
+        A clear and concise description of what you expected to see.
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: What Did You See Instead?
+      description: You instead to see result.
+      placeholder: >
+        A clear and concise description of what you saw instead.
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: Additional Context
+      description: Additional context.
+      placeholder: >
+        Add any other context about the problem here.
+    validations:
+      required: false
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000..8289bb7
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,5 @@
+blank_issues_enabled: false
+contact_links:
+  - name: Ask Question
+    url: https://github.com/apache/rocketmq-clients/discussions
+    about: Please go to GitHub Disccusions to ask questions.
diff --git a/.github/ISSUE_TEMPLATE/enhancement_request.yml b/.github/ISSUE_TEMPLATE/enhancement_request.yml
new file mode 100644
index 0000000..5ef5972
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/enhancement_request.yml
@@ -0,0 +1,73 @@
+name: Enhancement Request
+title: "[Enhancement] Please Describe the Enhancement"
+description: Suggest an enhancement for this project.
+labels: [ "type/enhancement" ]
+body:
+  - type: checkboxes
+    attributes:
+      label: Before Creating the Enhancement Request
+      description: >
+        Most of issues should be classified as bug or feature request. An issue should be considered as an enhancement when it proposes improvements to
+        existing functionality or user experience, without necessarily introducing new features or fixing existing bugs.
+      options:
+        - label: >
+            I have confirmed that this should be classified as an enhancement rather than a bug/feature.
+          required: true
+
+  - type: dropdown
+    attributes:
+      label: Programming Language of the Client
+      options:
+        - Java
+        - C++
+        - C#
+        - Go
+        - Rust
+        - Python
+        - Node.js
+        - PHP
+        - Not related to the specified programming language
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: Summary
+      placeholder: >
+        A clear and concise description of the enhancement you would like to see in the project.
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: Motivation
+      placeholder: >
+        Explain why you believe this enhancement is necessary, and how it benefits the project and community.
+        Include any specific use cases that you have in mind.
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: Describe the Solution You'd Like
+      placeholder: >
+        Describe the enhancement you propose, detailing the change and implementation steps involved.
+        If you have multiple solutions, please list them separately.
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: Describe Alternatives You've Considered
+      placeholder: >
+        List any alternative enhancements or implementations you have considered, and explain why they may not be as effective or appropriate.
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: Additional Context
+      placeholder: >
+        Add any relevant context, screenshots, prototypes, or other supplementary information to help illustrate the enhancement.
+    validations:
+      required: false
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 0000000..b3110eb
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,56 @@
+name: Feature Request
+title: "[Feature] Please Describe the Feature"
+description: Suggest an idea for this project.
+labels: [ "type/new feature" ]
+body:
+  - type: dropdown
+    attributes:
+      label: Programming Language of the Client
+      options:
+        - Java
+        - C++
+        - C#
+        - Go
+        - Rust
+        - Python
+        - Node.js
+        - PHP
+        - Not related to the specified programming language
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: Is Your Feature Request Related to a Problem?
+      description: Please Describe It.
+      placeholder: >
+        A clear and concise description of what the problem is.
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: Describe the Solution You'd Like
+      description: Describe how you solved it.
+      placeholder: >
+        A clear and concise description of what you want to happen.
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: Describe Alternatives You've Considered
+      description: Describe your solution
+      placeholder: >
+        A clear and concise description of any alternative solutions or features you've considered.
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: Additional Context
+      description: Additional context.
+      placeholder: >
+        Add any other context about the problem here.
+    validations:
+      required: false
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..0f50fc5
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,15 @@
+<!-- Please make sure the target branch is right. In most case, the target branch should be `master`. -->
+
+### Which Issue(s) This PR Fixes
+
+<!-- Please ensure that the related issue has already been created, and [link this pull request to that issue using keywords](<https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword>) to ensure automatic closure. -->
+
+Fixes #issue_id
+
+### Brief Description
+
+<!-- Write a brief description for your pull request to help the maintainer understand the reasons behind your changes. -->
+
+### How Did You Test This Change?
+
+<!-- In order to ensure the code quality of Apache RocketMQ, we expect every pull request to have undergone thorough testing. -->