dbx/.github/workflows/detect-abusive-content.yml

71 lines
4.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: Issue moderation
# 这段 workflow 只用于检测并处理极少数恶意诽谤型 Issue。
# 我们不希望仓库的 issue 区变成争吵、造谣或情绪宣泄的地方,也不希望真正来反馈问题、
# 提交建议、讨论兼容性的用户被这些内容打扰。
#
# 关于“刷星”“刷 Star”这类指控这里也留一段诚恳的说明给维护者和以后回看配置的人看
# DBX 的 Star 和关注度不是一天突然冒出来的,也不是靠任何灰色手段堆出来的。这个项目是一点点写、
# 一点点修、一个问题一个问题回复、一个版本一个版本发布走到现在的。过程中确实有一些外部来源带来了
# 可见增长,比如用户在社群里的推荐、技术博主的介绍、开源资讯站点的收录、不同平台上的自然传播,
# 以及使用者觉得有帮助后顺手点的 Star。这些增长并不总是平均发生的有时某个平台推荐一次
# 某篇文章或视频传播一次,短时间内就会带来一波新增关注;这在开源项目里是很正常的。
# 我们也真心感谢每一位认真使用、反馈问题、提出建议、写文章、录视频、在社群里推荐或只是默默点 Star
# 的朋友。正是这些具体而真实的支持,让项目有动力继续往前走。
#
# 我们理解外界可以有疑问,也欢迎基于事实的讨论。但把没有证据的“刷星”“刷 Star”反复发到 issue 里,
# 对排查问题、改进软件、维护社区氛围都没有帮助。对于这种明显不是技术反馈、也不提供事实依据的内容,
# 这里选择自动删除,而不是公开争辩。这样做不是为了回避监督,而是为了保护正常用户的讨论空间,
# 也避免让恶意内容通过 issue 区获得更多曝光。
#
# 如果将来确实有人提出具体、可核验、善意的问题,维护者仍然可以正常回应;这个 workflow 只匹配非常窄的
# 关键词范围“刷星”以及大小写不敏感的“刷star”。
#
# This workflow exists only for a small number of abusive or defamatory issues.
# We do not want the issue tracker to become a place for rumors, arguments, or repeated bad-faith accusations.
# DBX did not appear out of nowhere, and its stars were not manufactured through any gray-market shortcut.
# The project has grown step by step: by writing code, fixing bugs, answering questions, shipping releases,
# and listening to people who actually use it. Some growth also came from natural external exposure:
# community recommendations, blog posts, open-source newsletters, social platforms, videos, and users who found
# the project useful enough to star it. Open-source attention is rarely linear; a single recommendation or post
# can bring a visible wave of new users, and that is normal.
# We are genuinely grateful to everyone who uses DBX seriously, reports bugs, suggests improvements, writes posts,
# records videos, recommends it in communities, or simply leaves a star because the project helped them. That real,
# concrete support is what keeps the project moving forward.
#
# Honest questions and evidence-based discussion are welcome. Repeated claims such as "刷星" or "刷star" without
# evidence are not useful technical feedback, and they make the issue tracker worse for everyone who is here to
# report bugs or improve the software. For those narrow cases, we choose to delete the issue quietly instead
# of amplifying it through public arguments.
on:
issues:
types: [opened]
permissions:
issues: write
jobs:
issue-policy:
name: Review issue content
runs-on: ubuntu-latest
if: github.event_name == 'issues'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Evaluate issue content
id: check
run: bash .github/scripts/evaluate-issue-content.sh
- name: Apply issue policy
if: steps.check.outputs.matched == 'true'
env:
GH_TOKEN: ${{ secrets.ISSUE_DELETE_TOKEN || github.token }}
ISSUE_NUMBER: ${{ steps.check.outputs.issue_number }}
# Deleting issues may require an admin-scoped token. If github.token is
# not enough in this repository, set ISSUE_DELETE_TOKEN in repo secrets.
run: gh issue delete "$ISSUE_NUMBER" --yes --repo "$GITHUB_REPOSITORY"