Skip to content

Latest commit

 

History

History
375 lines (280 loc) · 6.87 KB

File metadata and controls

375 lines (280 loc) · 6.87 KB

贡献指南

感谢你有兴趣为 XHSecTeam 资产安全测绘平台做出贡献!🎉


📋 目录


行为准则

参与本项目即表示你同意遵守我们的行为准则:

  • ✅ 尊重所有贡献者
  • ✅ 接受建设性批评
  • ✅ 专注于对项目最有利的事情
  • ✅ 对社区其他成员表现出同理心
  • ❌ 不使用性化的语言或图像
  • ❌ 不进行人身攻击或政治攻击
  • ❌ 不骚扰他人

如何贡献

🐛 报告 Bug

如果你发现了 Bug,请:

  1. 检查 Issues 确认是否已被报告
  2. 如果没有,创建新 Issue 并包含:
    • 清晰的标题
    • 详细的描述
    • 重现步骤
    • 预期行为 vs 实际行为
    • 环境信息(操作系统、浏览器等)
    • 截图(如果适用)

💡 建议新功能

我们欢迎新功能建议!请:

  1. 检查是否已有类似建议
  2. 创建 Issue 并使用 enhancement 标签
  3. 详细描述:
    • 功能描述
    • 使用场景
    • 实现思路(可选)
    • 相关参考(可选)

📝 改进文档

文档改进同样重要:

  • 修正错别字
  • 补充使用示例
  • 改进说明清晰度
  • 翻译文档(英文版)

提交 Issue

Issue 模板

Bug 报告

### Bug 描述
简要描述遇到的问题

### 重现步骤
1. 进入 '...'
2. 点击 '...'
3. 滚动到 '...'
4. 看到错误

### 预期行为
描述应该发生什么

### 实际行为
描述实际发生了什么

### 环境信息
- OS: [例如 Windows 11]
- 浏览器: [例如 Chrome 120]
- 版本: [例如 1.0.0]

### 截图
如果适用,添加截图帮助解释问题

### 额外信息
添加其他相关信息

功能请求

### 功能描述
清晰简洁地描述你想要的功能

### 问题背景
这个功能解决什么问题?

### 建议方案
描述你期望的解决方案

### 替代方案
描述你考虑过的替代方案

### 额外信息
添加其他相关信息、截图或参考

提交 Pull Request

前置步骤

  1. Fork 项目

    # 在 GitHub 上点击 Fork 按钮
  2. 克隆到本地

    git clone https://github.com/YOUR_USERNAME/XHSecTeam-Platform.git
    cd XHSecTeam-Platform
  3. 添加上游仓库

    git remote add upstream https://github.com/HackByteSec/XHSecTeam-Platform.git
  4. 创建特性分支

    git checkout -b feature/your-feature-name
    #
    git checkout -b fix/your-bug-fix

开发流程

  1. 编写代码

    • 遵循代码规范
    • 添加必要的注释
    • 保持提交简洁清晰
  2. 测试更改

    # 运行测试(如果有)
    python -m pytest tests/
    
    # 手动测试
    # 确保所有功能正常工作
  3. 提交更改

    git add .
    git commit -m "Add: 你的功能描述"

    提交信息规范

    • Add: - 新增功能
    • Fix: - Bug 修复
    • Update: - 更新现有功能
    • Refactor: - 代码重构
    • Docs: - 文档更新
    • Style: - 代码格式调整
    • Test: - 测试相关
    • Chore: - 构建/工具相关
  4. 同步上游

    git fetch upstream
    git rebase upstream/main
  5. 推送到 Fork

    git push origin feature/your-feature-name
  6. 创建 Pull Request

    • 在 GitHub 上点击 "New Pull Request"
    • 填写 PR 描述模板
    • 等待代码审查

PR 描述模板

### 变更类型
- [ ] Bug 修复
- [ ] 新功能
- [ ] 文档更新
- [ ] 代码重构
- [ ] 性能优化

### 变更说明
简要描述这个 PR 做了什么

### 相关 Issue
关闭 #issue_number

### 测试
- [ ] 已在本地测试
- [ ] 已添加单元测试
- [ ] 所有现有测试通过

### 截图(如果适用)
添加截图展示变更效果

### Checklist
- [ ] 代码遵循项目规范
- [ ] 已添加必要的注释
- [ ] 已更新相关文档
- [ ] 没有引入新的警告
- [ ] 已同步最新主分支

代码规范

Python 代码

遵循 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
  • 添加类型提示和文档字符串

JavaScript 代码

// 好的示例
/**
 * 执行 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+ 语法

CSS 规范

/* 好的示例 */
.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 (最新版)

联系我们

问题咨询

实时沟通

加入我们的开发者群组:

  • Discord 频道(开发中)
  • Telegram 群组(开发中)

认可贡献者

所有贡献者都会在以下位置被认可:

  • README.md 的贡献者列表
  • 项目发布说明
  • 社区荣誉榜

许可证

提交代码即表示你同意你的贡献将按照项目的 MIT License 进行许可。


再次感谢你的贡献! 🙏

让我们一起打造更好的安全工具!💪