感谢你有兴趣为 XHSecTeam 资产安全测绘平台做出贡献!🎉
参与本项目即表示你同意遵守我们的行为准则:
- ✅ 尊重所有贡献者
- ✅ 接受建设性批评
- ✅ 专注于对项目最有利的事情
- ✅ 对社区其他成员表现出同理心
- ❌ 不使用性化的语言或图像
- ❌ 不进行人身攻击或政治攻击
- ❌ 不骚扰他人
如果你发现了 Bug,请:
- 检查 Issues 确认是否已被报告
- 如果没有,创建新 Issue 并包含:
- 清晰的标题
- 详细的描述
- 重现步骤
- 预期行为 vs 实际行为
- 环境信息(操作系统、浏览器等)
- 截图(如果适用)
我们欢迎新功能建议!请:
- 检查是否已有类似建议
- 创建 Issue 并使用
enhancement标签 - 详细描述:
- 功能描述
- 使用场景
- 实现思路(可选)
- 相关参考(可选)
文档改进同样重要:
- 修正错别字
- 补充使用示例
- 改进说明清晰度
- 翻译文档(英文版)
### Bug 描述
简要描述遇到的问题
### 重现步骤
1. 进入 '...'
2. 点击 '...'
3. 滚动到 '...'
4. 看到错误
### 预期行为
描述应该发生什么
### 实际行为
描述实际发生了什么
### 环境信息
- OS: [例如 Windows 11]
- 浏览器: [例如 Chrome 120]
- 版本: [例如 1.0.0]
### 截图
如果适用,添加截图帮助解释问题
### 额外信息
添加其他相关信息### 功能描述
清晰简洁地描述你想要的功能
### 问题背景
这个功能解决什么问题?
### 建议方案
描述你期望的解决方案
### 替代方案
描述你考虑过的替代方案
### 额外信息
添加其他相关信息、截图或参考-
Fork 项目
# 在 GitHub 上点击 Fork 按钮 -
克隆到本地
git clone https://github.com/YOUR_USERNAME/XHSecTeam-Platform.git cd XHSecTeam-Platform -
添加上游仓库
git remote add upstream https://github.com/HackByteSec/XHSecTeam-Platform.git
-
创建特性分支
git checkout -b feature/your-feature-name # 或 git checkout -b fix/your-bug-fix
-
编写代码
- 遵循代码规范
- 添加必要的注释
- 保持提交简洁清晰
-
测试更改
# 运行测试(如果有) python -m pytest tests/ # 手动测试 # 确保所有功能正常工作
-
提交更改
git add . git commit -m "Add: 你的功能描述"
提交信息规范:
Add:- 新增功能Fix:- Bug 修复Update:- 更新现有功能Refactor:- 代码重构Docs:- 文档更新Style:- 代码格式调整Test:- 测试相关Chore:- 构建/工具相关
-
同步上游
git fetch upstream git rebase upstream/main
-
推送到 Fork
git push origin feature/your-feature-name
-
创建 Pull Request
- 在 GitHub 上点击 "New Pull Request"
- 填写 PR 描述模板
- 等待代码审查
### 变更类型
- [ ] Bug 修复
- [ ] 新功能
- [ ] 文档更新
- [ ] 代码重构
- [ ] 性能优化
### 变更说明
简要描述这个 PR 做了什么
### 相关 Issue
关闭 #issue_number
### 测试
- [ ] 已在本地测试
- [ ] 已添加单元测试
- [ ] 所有现有测试通过
### 截图(如果适用)
添加截图展示变更效果
### Checklist
- [ ] 代码遵循项目规范
- [ ] 已添加必要的注释
- [ ] 已更新相关文档
- [ ] 没有引入新的警告
- [ ] 已同步最新主分支遵循 PEP 8 规范:
# 好的示例
def scan_target(target: str, options: dict) -> dict:
"""
扫描目标并返回结果
Args:
target: 目标 URL 或 IP
options: 扫描选项
Returns:
dict: 扫描结果
"""
results = {}
# 扫描逻辑
return results要点:
- 使用 4 个空格缩进
- 类名使用大驼峰:
ScanEngine - 函数名使用下划线:
scan_target - 常量使用大写:
MAX_THREADS - 添加类型提示和文档字符串
// 好的示例
/**
* 执行 FOFA 搜索
* @param {string} query - 查询语句
* @param {object} options - 查询选项
* @returns {Promise<object>} - 查询结果
*/
async function searchFofa(query, options = {}) {
const params = {
qbase64: btoa(query),
...options
};
const response = await fetch(buildUrl(params));
return response.json();
}要点:
- 使用 2 个空格缩进
- 使用驼峰命名
- 添加 JSDoc 注释
- 使用 ES6+ 语法
/* 好的示例 */
.search-container {
display: flex;
flex-direction: column;
gap: 16px;
padding: 20px;
}
.search-input {
border: 1px solid var(--border-color);
border-radius: 8px;
transition: border-color 0.2s ease;
}
.search-input:focus {
border-color: var(--accent-green);
outline: none;
}要点:
- 使用短横线命名
- 合理使用 CSS 变量
- 添加必要的注释
- 代码可以正常运行
- 没有控制台错误
- 功能按预期工作
- 在多个浏览器测试(如适用)
- 响应式设计正常
- 没有破坏现有功能
请确保在以下浏览器测试:
- ✅ Chrome (最新版)
- ✅ Firefox (最新版)
- ✅ Safari (最新版)
- ✅ Edge (最新版)
- 📧 技术支持:support@hackbyte.io
- 💬 社区讨论:黑客字节社区
- 🐛 Bug 报告:GitHub Issues
加入我们的开发者群组:
- Discord 频道(开发中)
- Telegram 群组(开发中)
所有贡献者都会在以下位置被认可:
- README.md 的贡献者列表
- 项目发布说明
- 社区荣誉榜
提交代码即表示你同意你的贡献将按照项目的 MIT License 进行许可。
再次感谢你的贡献! 🙏
让我们一起打造更好的安全工具!💪