Skip to content

Commit 92c7078

Browse files
authored
Initial commit
0 parents  commit 92c7078

8 files changed

Lines changed: 373 additions & 0 deletions

File tree

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
name: 伪开源事件报告 / Fake Open Source event report
2+
description: 报告一个伪开源事件 / Report a Fake Open Source event
3+
title: "替换为事件的一句话描述 / Replace with an one-sentence description of the event"
4+
labels:
5+
- event
6+
- documentation
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
## 免责声明 / Disclaimer
12+
13+
- **隐私政策 / Privacy Policy**:施害过程中施害人暴露的个人信息不属于隐私,除此之外所有人均应受隐私保护。/ Personal information exposed by the perpetrator during the harmful process is not protected by privacy laws. Beyond that, all individuals should be protected by privacy rights.
14+
15+
- **信息来源 / Information Source**:本平台仅提供基于 Git 的分布式信息存储,信息真实性由发布者负责,并由网友辨别、辟谣。/ This platform only provides decentralized information storage based on Git. The authenticity of information is the responsibility of the publisher, and is to be verified and fact-checked by the community.
16+
17+
- type: input
18+
id: tags
19+
attributes:
20+
label: 分类标签 / Category Tags
21+
description: 请用英文逗号或空格分隔多个标签 / Please use English comma or space to separate multiple tags
22+
placeholder: "用英文逗号或空格分隔,例如:malware, scam, plagiarism, trojan / Separated by comma or space, example: malware, scam, plagiarism, trojan"
23+
validations:
24+
required: true
25+
26+
- type: input
27+
id: start_time
28+
attributes:
29+
label: 发生时间 / Start Time
30+
description: 事件开始的具体时间 / The specific date and time when the event started
31+
placeholder: "例如:2024-01-15 / Example: 2024-01-15"
32+
validations:
33+
required: true
34+
35+
- type: input
36+
id: end_time
37+
attributes:
38+
label: 结束时间 / End Time
39+
description: 事件结束的具体时间(如果事件已结束) / The specific date and time when the event ended (if applicable)
40+
placeholder: "例如:2024-01-20 / Example: 2024-01-20"
41+
42+
- type: input
43+
id: location
44+
attributes:
45+
label: 发生地点 / Location
46+
description: 线下地址、线上网址、某群聊名称等 / Offline address, online URL, chat group name, etc.
47+
placeholder: "例如:某 GitHub 项目 | https://example.com | 某微信群 | 某 Discord 服务器 / Example: XYZ GitHub Project | https://example.com | WeChat Group XYZ | Discord Server XYZ"
48+
validations:
49+
required: true
50+
51+
- type: textarea
52+
id: hypocrite
53+
attributes:
54+
label: 伪开源人 / Hypocrite
55+
description: 列出 @GitHub 账号、社交媒体个人主页网址、网名、姓名等 / List @GitHub accounts, social media profile links, usernames, names, etc.
56+
placeholder: |
57+
- @GitHub 账号 或 GitHub 个人主页 / @GitHub username or GitHub profile link
58+
- 社交媒体账号或个人主页链接 / Social media account or personal profile link
59+
- 网名、姓名 / Username, name
60+
例如:
61+
- @user123
62+
- https://twitter.com/scammer
63+
- 网名:诈骗王 / Username: scammer_xyz
64+
validations:
65+
required: true
66+
67+
- type: textarea
68+
id: event_details
69+
attributes:
70+
label: 事件经过 / Event Details
71+
description: 用 Markdown 4 级及以上标题、项目列表等语法罗列,可贴网址、截图等证据 / Use Markdown level 4+ headings, bullet lists, etc. to describe the event. Include URLs, screenshots, and evidence.
72+
placeholder: |
73+
请使用 Markdown 格式(4 级及以上标题、项目列表等语法)详细描述事件经过,可贴网址、截图等证据 / Please use Markdown format (level 4+ headings, bullet lists, etc.) to describe the event in detail. You can include URLs, screenshots, and other evidence.
74+
75+
#### 事件时间线 / Timeline
76+
- 时间点1:发生了什么 / Time point 1: What happened
77+
- 时间点2:发生了什么 / Time point 2: What happened
78+
79+
#### 关键证据 / Key Evidence
80+
- [链接1](https://example.com)
81+
- [链接2](https://example.com)
82+
validations:
83+
required: true
84+
85+
- type: input
86+
id: money
87+
attributes:
88+
label: 涉及资金 / Currency & Amount
89+
description: 请直接填写类似“CNY ¥100”或“USD $200”的格式,用币种缩写+符号+数值 / Please enter in a format such as "CNY ¥100" or "USD $200", using currency abbreviation + symbol + value
90+
placeholder: "例如:CNY ¥100 或 USD $200 / Example: CNY ¥100 or USD $200"
91+
92+
- type: textarea
93+
id: assets
94+
attributes:
95+
label: 涉及财物 / Involved Assets
96+
description: 用 Markdown 4 级及以上标题、项目列表等语法罗列,可贴网址、截图等证据 / Use Markdown level 4+ headings, bullet lists, etc. to describe. Include URLs, screenshots, and evidence
97+
placeholder: |
98+
请使用 Markdown 格式(4 级及以上标题、项目列表等语法)详细描述,可贴网址、截图等证据 / Please use Markdown format (level 4+ headings, bullet lists, etc.) to describe in detail. Include URLs, screenshots, and other evidence.
99+
100+
#### 财物清单 / Assets List
101+
- 财物类型:描述 / Asset type: description
102+
- 财物类型:描述 / Asset type: description
103+
104+
#### 相关证据 / Related Evidence
105+
- [链接](https://example.com)
106+
107+
- type: checkboxes
108+
id: confirmation
109+
attributes:
110+
label: 我确认 / I Confirm
111+
options:
112+
- label: 我已阅读并同意隐私政策声明 / I have read and agree to the privacy policy statement
113+
required: true
114+
- label: 提供的信息真实准确 / The information provided is truthful and accurate
115+
required: true

.github/scripts/save-event.sh

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
yaml_escape() {
5+
printf '%s' "$1" | sed 's/\\/\\\\/g; s/"/\\"/g'
6+
}
7+
8+
append_yaml_split_array() {
9+
local file_path="$1"
10+
local key="$2"
11+
local value="$3"
12+
local has_items=0
13+
14+
printf ' %s:\n' "$key" >> "$file_path"
15+
16+
while IFS= read -r item; do
17+
if [ -n "$item" ]; then
18+
has_items=1
19+
printf ' - "%s"\n' "$(yaml_escape "$item")" >> "$file_path"
20+
fi
21+
done < <(printf '%s' "$value" | awk 'BEGIN{FS="[,,[:space:]]+"} {for (i=1; i<=NF; i++) if ($i != "") print $i}')
22+
23+
if [ "$has_items" -eq 0 ]; then
24+
printf ' []\n' >> "$file_path"
25+
fi
26+
}
27+
28+
START_TIME="${EVENT_START_TIME:-}"
29+
DATE_PART=$(echo "$START_TIME" | grep -oE '[0-9]{4}[-/][0-9]{2}[-/][0-9]{2}' | head -n1 | tr '/' '-')
30+
31+
if [ -z "$DATE_PART" ]; then
32+
echo "Unable to parse start_time: $START_TIME"
33+
exit 1
34+
fi
35+
36+
IFS='-' read -r YEAR MONTH DAY <<< "$DATE_PART"
37+
38+
SAFE_TITLE=$(echo "${ISSUE_TITLE:-}" | \
39+
sed 's#[\\/:*?"<>|]#-#g; s/[[:space:]]\+/-/g; s/--\+/-/g; s/^-//; s/-$//')
40+
41+
if [ -z "$SAFE_TITLE" ]; then
42+
SAFE_TITLE="issue-${ISSUE_NUMBER:-unknown}"
43+
fi
44+
45+
FILE_PATH="data/$YEAR/$MONTH/$DAY/$SAFE_TITLE.md"
46+
EVENTS_FILE="${EVENTS_FILE_PATH:-data/events.yml}"
47+
mkdir -p "$(dirname "$FILE_PATH")"
48+
{
49+
printf '# %s\n\n' "${ISSUE_TITLE:-}"
50+
printf '%s\n' "${ISSUE_BODY:-}"
51+
} > "$FILE_PATH"
52+
53+
{
54+
printf -- '- issue_link: "%s"\n' "$(yaml_escape "${ISSUE_LINK:-}")"
55+
printf ' file_path: "%s"\n' "$(yaml_escape "$FILE_PATH")"
56+
printf ' title: "%s"\n' "$(yaml_escape "${ISSUE_TITLE:-}")"
57+
printf ' start_time: "%s"\n' "$(yaml_escape "${EVENT_START_TIME:-}")"
58+
printf ' end_time: "%s"\n' "$(yaml_escape "${EVENT_END_TIME:-}")"
59+
printf ' location: "%s"\n' "$(yaml_escape "${EVENT_LOCATION:-}")"
60+
printf ' money: "%s"\n' "$(yaml_escape "${EVENT_MONEY:-}")"
61+
printf ' whistleblower: "%s"\n' "$(yaml_escape "${EVENT_WHISTLEBLOWER:-}")"
62+
} >> "$EVENTS_FILE"
63+
64+
append_yaml_split_array "$EVENTS_FILE" "hypocrite" "${EVENT_HYPOCRITE:-}"
65+
append_yaml_split_array "$EVENTS_FILE" "tags" "${EVENT_TAGS:-}"

.github/settings.yml

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# These settings are synced to GitHub by https://probot.github.io/apps/settings/
2+
3+
repository:
4+
allow_merge_commit: false
5+
6+
delete_branch_on_merge: true
7+
8+
enable_vulnerability_alerts: true
9+
10+
labels:
11+
- name: bug
12+
color: "#d73a4a"
13+
description: Something isn't working
14+
15+
- name: documentation
16+
color: "#0075ca"
17+
description: Improvements or additions to documentation
18+
19+
- name: duplicate
20+
color: "#cfd3d7"
21+
description: This issue or pull request already exists
22+
23+
- name: enhancement
24+
color: "#a2eeef"
25+
description: Some improvements
26+
27+
- name: feature
28+
color: "#16b33f"
29+
description: New feature or request
30+
31+
- name: good first issue
32+
color: "#7057ff"
33+
description: Good for newcomers
34+
35+
- name: help wanted
36+
color: "#008672"
37+
description: Extra attention is needed
38+
39+
- name: invalid
40+
color: "#e4e669"
41+
description: This doesn't seem right
42+
43+
- name: question
44+
color: "#d876e3"
45+
description: Further information is requested
46+
47+
- name: wontfix
48+
color: "#ffffff"
49+
description: This will not be worked on
50+
51+
- name: event
52+
color: "#0e8a16"
53+
description: Fake Open Source event
54+
55+
branches:
56+
- name: main
57+
# https://docs.github.com/en/rest/reference/repos#update-branch-protection
58+
protection:
59+
# Required. Require at least one approving review on a pull request, before merging. Set to null to disable.
60+
required_pull_request_reviews:
61+
# The number of approvals required. (1-6)
62+
required_approving_review_count: 1
63+
# Dismiss approved reviews automatically when a new commit is pushed.
64+
dismiss_stale_reviews: true
65+
# Blocks merge until code owners have reviewed.
66+
require_code_owner_reviews: true
67+
# Specify which users and teams can dismiss pull request reviews.
68+
# Pass an empty dismissal_restrictions object to disable.
69+
# User and team dismissal_restrictions are only available for organization-owned repositories.
70+
# Omit this parameter for personal repositories.
71+
dismissal_restrictions:
72+
# users: []
73+
# teams: []
74+
# Required. Require status checks to pass before merging. Set to null to disable
75+
required_status_checks:
76+
# Required. Require branches to be up to date before merging.
77+
strict: true
78+
# Required. The list of status checks to require in order to merge into this branch
79+
contexts: []
80+
# Required. Enforce all configured restrictions for administrators.
81+
# Set to true to enforce required status checks for repository administrators.
82+
# Set to null to disable.
83+
enforce_admins: true
84+
# Prevent merge commits from being pushed to matching branches
85+
required_linear_history: true
86+
# Required. Restrict who can push to this branch.
87+
# Team and user restrictions are only available for organization-owned repositories.
88+
# Set to null to disable.
89+
restrictions: null

.github/workflows/deploy-data.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Data deployment
2+
on:
3+
push:
4+
branches:
5+
- main
6+
jobs:
7+
Build-and-Deploy:
8+
runs-on: ubuntu-latest
9+
permissions:
10+
contents: write
11+
steps:
12+
- uses: actions/checkout@v6
13+
14+
- uses: actions/setup-node@v6
15+
16+
- name: YAML to JSON
17+
run: |
18+
find data/ -type f | grep -Ei .+\.yml | sed -E 's/(.+)\.yml/\1/' | xargs -I {} npx yaml-convert -j {}.yml -o {}.json
19+
20+
cp README.md data/index.md
21+
cd data/
22+
23+
echo -e "\n## 数据接口 / Data Interface\n" >> index.md
24+
echo $(
25+
ls -1 *.yml 2>/dev/null | \
26+
sed 's/\.yml$//' | nl | \
27+
sed 's/^[[:space:]]*\([0-9]*\)[[:space:]]*\(.*\)$/\1. [\2](https:\/\/biyuanshe.github.io\/Fake-Open-Source-wiki\/\2.json)/'
28+
) >> index.md
29+
cd -
30+
31+
- name: Deploy to GitHub pages
32+
uses: peaceiris/actions-gh-pages@v4
33+
with:
34+
publish_dir: ./data
35+
enable_jekyll: true
36+
personal_token: ${{ github.token }}
37+
force_orphan: true

.github/workflows/submit-event.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Fake Open Source event saving
2+
3+
on:
4+
issues:
5+
types:
6+
- opened
7+
8+
jobs:
9+
store:
10+
runs-on: ubuntu-latest
11+
if: "contains(github.event.issue.labels.*.name, 'event')"
12+
permissions:
13+
contents: write
14+
steps:
15+
- uses: actions/checkout@v6
16+
17+
- id: issue-parser
18+
uses: stefanbuck/github-issue-parser@v3
19+
with:
20+
template-path: ".github/ISSUE_TEMPLATE/Fake-Open-Source-event.yml"
21+
22+
- name: Save issue to Markdown & YAML
23+
env:
24+
ISSUE_NUMBER: ${{ github.event.issue.number }}
25+
ISSUE_LINK: ${{ github.event.issue.html_url }}
26+
ISSUE_TITLE: ${{ github.event.issue.title }}
27+
ISSUE_BODY: ${{ github.event.issue.body }}
28+
EVENT_TAGS: ${{ steps.issue-parser.outputs.issueparser_tags }}
29+
EVENT_START_TIME: ${{ steps.issue-parser.outputs.issueparser_start_time }}
30+
EVENT_END_TIME: ${{ steps.issue-parser.outputs.issueparser_end_time }}
31+
EVENT_LOCATION: ${{ steps.issue-parser.outputs.issueparser_location }}
32+
EVENT_WHISTLEBLOWER: ${{ github.event.issue.user.html_url }}
33+
EVENT_HYPOCRITE: ${{ steps.issue-parser.outputs.issueparser_hypocrite }}
34+
EVENT_MONEY: ${{ steps.issue-parser.outputs.issueparser_money }}
35+
run: |
36+
bash .github/scripts/save-event.sh
37+
38+
- uses: peter-evans/create-pull-request@v8
39+
with:
40+
title: "docs(event): add data of ${{ github.event.issue.title }}"
41+
body: "fix #${{ github.event.issue.number }}"

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
data/events.json

README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# 伪开源百科 / Fake Open Source wiki
2+
3+
一个揭露**虚假开源人事物**的公共档案库。/ A public archive repository to expose fake open source people, things, and events.
4+
5+
## 功能入口 / Features
6+
7+
- [提交事件 / Submit Event][1]
8+
- [审核列表 / Review List][2]
9+
- [JSON API][3]
10+
11+
## 免责声明 / Disclaimer
12+
13+
- **隐私政策 / Privacy Policy**:施害过程中施害人暴露的个人信息不属于隐私,除此之外所有人均应受隐私保护。/ Personal information exposed by the perpetrator during the harmful process is not protected by privacy laws. Beyond that, all individuals should be protected by privacy rights.
14+
15+
- **信息来源 / Information Source**:本平台仅提供基于 Git 的分布式信息存储,信息真实性由发布者负责,并由网友辨别、辟谣。/ This platform only provides decentralized information storage based on Git. The authenticity of information is the responsibility of the publisher, and is to be verified and fact-checked by the community.
16+
17+
## 灵感来源 / Inspiration
18+
19+
- [FFmpeg shame](https://ffmpeg.org/shame.html)
20+
- [996.icu](https://996.icu/)
21+
- [Hax vs 360](https://github.com/hax/heshijun_v_360)
22+
23+
[1]: https://github.com/BiYuanShe/Fake-Open-Source-wiki/issues/new?template=Fake-Open-Source-event.yml
24+
[2]: https://github.com/BiYuanShe/Fake-Open-Source-wiki/pulls
25+
[3]: https://biyuanshe.github.io/Fake-Open-Source-wiki/

data/events.yml

Whitespace-only changes.

0 commit comments

Comments
 (0)