diff --git a/.github/workflows/auto-invite.yml b/.github/workflows/auto-invite.yml
new file mode 100644
index 0000000..9d8effb
--- /dev/null
+++ b/.github/workflows/auto-invite.yml
@@ -0,0 +1,39 @@
+name: Invite users to join our group
+on:
+ issue_comment:
+ types:
+ - created
+jobs:
+ issue_comment:
+ name: Invite users to join our group
+ if: ${{ github.event.comment.body == '/invite' || github.event.comment.body == '/close' || github.event.comment.body == '/comment' }}
+ runs-on: ubuntu-latest
+ permissions:
+ issues: write
+ steps:
+
+ - name: Invite user to join our group
+ uses: peter-evans/create-or-update-comment@v1
+ with:
+ token: ${{ secrets.BOT_GITHUB_TOKEN }}
+ issue-number: ${{ github.event.issue.number }}
+ body: |
+ We value close connections with our users, developers, and contributors here at Open-IM-Server. With a large community and maintainer team, we're always here to help and support you. Whether you're looking to join our community or have any questions or suggestions, we welcome you to get in touch with us.
+
+ Our most recommended way to get in touch is through [Slack](https://join.slack.com/t/openimsdk/shared_invite/zt-1tmoj26uf-_FDy3dowVHBiGvLk9e5Xkg). Even if you're in China, Slack is usually not blocked by firewalls, making it an easy way to connect with us. Our Slack community is the ideal place to discuss and share ideas and suggestions with other users and developers of Open-IM-Server. You can ask technical questions, seek help, or share your experiences with other users of Open-IM-Server.
+
+ In addition to Slack, we also offer the following ways to get in touch:
+
+ +
We also have Slack channels for you to communicate and discuss. To join, visit https://slack.com/ and join our [đ Open-IM-Server slack](https://join.slack.com/t/openimsdk/shared_invite/zt-1tmoj26uf-_FDy3dowVHBiGvLk9e5Xkg) team channel.
+ +
Get in touch with us on [Gmail](https://mail.google.com/mail/u/0/?fs=1&tf=cm&to=winxu81@gmail.com). If you have any questions or issues that need resolving, or any suggestions and feedback for our open source projects, please feel free to contact us via email.
+ +
Read our [blog](https://doc.rentsoft.cn/). Our blog is a great place to stay up-to-date with Open-IM-Server projects and trends. On the blog, we share our latest developments, tech trends, and other interesting information.
+ +
Add [Wechat](https://github.com/OpenIMSDK/OpenIM-Docs/blob/main/docs/images/WechatIMG20.jpeg) and indicate that you are a user or developer of Open-IM-Server. We will process your request as soon as possible.
+
+ - name: Close Issue
+ uses: peter-evans/close-issue@v3
+ with:
+ token: ${{ secrets.BOT_GITHUB_TOKEN }}
+ issue-number: ${{ github.event.issue.number }}
+ comment: đ¤ Auto-closing issue, if you still need help please reopen the issue or ask for help in the community above
+ labels: |
+ triage/accepted
\ No newline at end of file
diff --git a/.github/workflows/check-coverage.yml b/.github/workflows/check-coverage.yml
new file mode 100644
index 0000000..b4a6a69
--- /dev/null
+++ b/.github/workflows/check-coverage.yml
@@ -0,0 +1,46 @@
+# name: Check-Coverage
+
+
+# on:
+# workflow_dispatch:
+# push:
+# branches: [ "main" ]
+# paths-ignore:
+# - "docs/**"
+# - "**/*.md"
+# - "**/*.yaml"
+# - "CONTRIBUTORS"
+# - "CHANGELOG/**"
+# pull_request:
+# branches: [ "*" ]
+# paths-ignore:
+# - "docs/**"
+# - "**/*.md"
+# - "**/*.yaml"
+# - "CONTRIBUTORS"
+# - "CHANGELOG/**"
+# env:
+# # Common versions
+# GO_VERSION: "1.20"
+
+# jobs:
+# coverage:
+# runs-on: ubuntu-20.04
+# steps:
+# - name: Checkout
+# uses: actions/checkout@v3
+
+# - name: Setup Golang with cache
+# uses: magnetikonline/action-golang-cache@v3
+# with:
+# go-version: ${{ env.GO_VERSION }}
+# token: ${{ secrets.BOT_GITHUB_TOKEN }}
+
+# - name: Install Dependencies
+# run: sudo apt update && sudo apt install -y libgpgme-dev libbtrfs-dev libdevmapper-dev
+
+# - name: Run Cover
+# run: make cover
+
+# - name: Upload Coverage to Codecov
+# uses: codecov/codecov-action@v3
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
new file mode 100644
index 0000000..55cceff
--- /dev/null
+++ b/.github/workflows/codeql-analysis.yml
@@ -0,0 +1,72 @@
+# For most projects, this workflow file will not need changing; you simply need
+# to commit it to your repository.
+#
+# You may wish to alter this file to override the set of languages analyzed,
+# or to provide custom queries or build logic.
+#
+# ******** NOTE ********
+# We have attempted to detect the languages in your repository. Please check
+# the `language` matrix defined below to confirm you have the correct set of
+# supported CodeQL languages.
+#
+name: "CodeQL"
+
+on:
+ push:
+ branches: [ main ]
+ pull_request:
+ # The branches below must be a subset of the branches above
+ branches: "*"
+# schedule:
+# - cron: '23 2 * * 2'
+
+jobs:
+ analyze:
+ name: Analyze
+ runs-on: ubuntu-latest
+ permissions:
+ actions: read
+ contents: read
+ security-events: write
+
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [ 'go' ]
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
+ # Learn more:
+ # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ # Initializes the CodeQL tools for scanning.
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v1
+ with:
+ languages: ${{ matrix.language }}
+ token: ${{ secrets.BOT_GITHUB_TOKEN }}
+ # If you wish to specify custom queries, you can do so here or in a config file.
+ # By default, queries listed here will override any specified in a config file.
+ # Prefix the list here with "+" to use these queries and those in the config file.
+ # queries: ./path/to/local/query, your-org/your-repo/queries@main
+
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
+ # If this step fails, then you should remove it and run the build manually (see below)
+ - name: Autobuild
+ uses: github/codeql-action/autobuild@v1
+
+ # âšī¸ Command-line programs to run using the OS shell.
+ # đ https://git.io/JvXDl
+
+ # âī¸ If the Autobuild fails above, remove it and uncomment the following three lines
+ # and modify them (or add more) to build your code if your project
+ # uses a compiled language
+
+ #- run: |
+ # make bootstrap
+ # make release
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v1
diff --git a/.github/workflows/gosec.yml b/.github/workflows/gosec.yml
new file mode 100644
index 0000000..60f42ae
--- /dev/null
+++ b/.github/workflows/gosec.yml
@@ -0,0 +1,30 @@
+# name: Run gosec
+
+# # gosec is a source code security audit tool for the Go language. It performs a static
+# # analysis of the Go code, looking for potential security problems. The main functions of gosec are:
+# # 1. Find common security vulnerabilities, such as SQL injection, command injection, and cross-site scripting (XSS).
+# # 2. Audit codes according to common security standards and find non-standard codes.
+# # 3. Assist the Go language engineer to write safe and reliable code.
+
+# on:
+# push:
+# branches: "*"
+# pull_request:
+# branches: "*"
+# paths-ignore:
+# - '*.md'
+# - '*.yml'
+# - '.github'
+
+# jobs:
+# golang-security-action:
+# runs-on: ubuntu-latest
+# env:
+# GO111MODULE: on
+# steps:
+# - name: Check out code
+# uses: actions/checkout@v3
+# - name: Run Gosec Security Scanner
+# uses: securego/gosec@master
+# with:
+# args: ./...
\ No newline at end of file
diff --git a/.github/workflows/issue-robot.yml b/.github/workflows/issue-robot.yml
new file mode 100644
index 0000000..74927a0
--- /dev/null
+++ b/.github/workflows/issue-robot.yml
@@ -0,0 +1,17 @@
+name: 'issue translator'
+on:
+ issue_comment:
+ types: [created]
+ issues:
+ types: [opened]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: usthe/issues-translate-action@v2.7
+ with:
+ # it is not necessary to decide whether you need to modify the issue header content
+ IS_MODIFY_TITLE: true
+ BOT_GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }}
+ # Required, input your bot github token
\ No newline at end of file
diff --git a/.github/workflows/link-pr.yml b/.github/workflows/link-pr.yml
new file mode 100644
index 0000000..844dd5f
--- /dev/null
+++ b/.github/workflows/link-pr.yml
@@ -0,0 +1,47 @@
+# name: Github Rebot for Link check error
+
+# on:
+# pull_request:
+# branches: [ main ]
+# paths:
+# - '**.md'
+# - 'docs/**'
+# - '.lycheeignore'
+# push:
+# branches: [ main ]
+
+# schedule:
+# - cron: '0 11 * * *'
+
+# jobs:
+# linkChecker:
+# runs-on: ubuntu-latest
+# steps:
+# - uses: actions/checkout@v3
+
+# - name: Link Checker
+# id: lychee
+# uses: lycheeverse/lychee-action@v1.7.0
+# with:
+# # For parameter description, see https://github.com/lycheeverse/lychee#commandline-parameters
+# # Actions Link address -> https://github.com/lycheeverse/lychee-action
+# # -E, --exclude-all-private Exclude all private IPs from checking.
+# # -i, --insecure Proceed for server connections considered insecure (invalid TLS)
+# # -n, --no-progress Do not show progress bar.
+# # -t, --timeout Website timeout in seconds from connect to response finished [default:20]
+# # --max-concurrency Maximum number of concurrent network requests [default: 128]
+# # -a --accept Comma-separated list of accepted status codes for valid links
+# # docs/.vitepress/dist the site directory to check
+# # ./*.md all markdown files in the root directory
+# args: --verbose -E -i --no-progress --exclude-path './CHANGELOG' './**/*.md'
+# env:
+# GITHUB_TOKEN: ${{secrets.GH_PAT}}
+
+# - name: Create Issue From File
+# if: env.lychee_exit_code != 0
+# uses: peter-evans/create-issue-from-file@v4
+# with:
+# title: Bug reports for links in OpenIM docs
+# content-filepath: ./lychee/out.md
+# labels: kind/documentation, triage/unresolved, report
+# token: ${{ secrets.BOT_GITHUB_TOKEN }}
diff --git a/.github/workflows/opencommit.yml b/.github/workflows/opencommit.yml
new file mode 100644
index 0000000..d3d5250
--- /dev/null
+++ b/.github/workflows/opencommit.yml
@@ -0,0 +1,39 @@
+name: 'OpenCommit Action'
+
+on:
+ push:
+ # this list of branches is often enough,
+ # but you may still ignore other public branches
+ branches-ignore: [main master dev development release]
+
+jobs:
+ opencommit:
+ timeout-minutes: 10
+ name: OpenCommit
+ runs-on: ubuntu-latest
+ permissions: write-all
+ steps:
+ - name: Setup Node.js Environment
+ uses: actions/setup-node@v2
+ with:
+ node-version: '16'
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - uses: di-sukharev/opencommit@github-action-v1.0.4
+ with:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ env:
+ # set openAI api key in repo actions secrets,
+ # for openAI keys go to: https://platform.openai.com/account/api-keys
+ # for repo secret go to: https://github.com/kuebcub/settings/secrets/actions
+ OCO_OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
+
+ # customization
+ OCO_OPENAI_MAX_TOKENS: 500
+ OCO_OPENAI_BASE_PATH: ''
+ OCO_DESCRIPTION: false
+ OCO_EMOJI: false
+ OCO_MODEL: gpt-3.5-turbo
+ OCO_LANGUAGE: en
\ No newline at end of file
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
new file mode 100644
index 0000000..2cad62c
--- /dev/null
+++ b/.github/workflows/stale.yml
@@ -0,0 +1,34 @@
+# This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time.
+#
+# You can adjust the behavior by modifying this file.
+# For more information, see:
+# https://github.com/actions/stale
+name: Mark stale issues and pull requests
+
+on:
+ schedule:
+ - cron: '0 8 * * *'
+
+jobs:
+ stale:
+
+ runs-on: ubuntu-latest
+ permissions:
+ issues: write
+ pull-requests: write
+
+ steps:
+ - uses: actions/stale@v5
+ with:
+ repo-token: ${{ secrets.BOT_GITHUB_TOKEN }}
+ days-before-stale: 60
+ days-before-close: 7
+ stale-issue-message: 'This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.'
+ stale-pr-message: 'This issue is stale because it has been open 60 days with no activity.'
+ close-issue-message: 'This issue was closed because it has been stalled for 7 days with no activity.'
+ close-pr-message: 'This PR was closed because it has been stalled for 7 days with no activity. You can reopen it if you want.'
+ stale-pr-label: lifecycle/stale
+ stale-issue-label: lifecycle/stale
+ exempt-issue-labels: 'openim'
+ exempt-pr-labels: 'openim'
+ exempt-draft-pr: true