菜单

贡献

相关源文件

本文档提供了对 Sherlock 项目进行贡献的指南,Sherlock 是一个通过用户名在社交网络上查找社交媒体账户的工具。无论您是添加新站点、改进核心引擎还是修复错误,本指南都将帮助您了解贡献流程。

有关项目结构的信息,请参阅项目结构

快速入门

要为 Sherlock 贡献,您需要

  1. 一个 GitHub 账户
  2. Sherlock 仓库的一个分叉
  3. 您分叉的本地克隆
  4. 安装了 Python 的开发环境

贡献工作流程

来源:.github/CODEOWNERS1-15

进行更改

贡献领域

对 Sherlock 的大部分贡献属于以下类别:

组件文件描述
站点配置sherlock/resources/data.json添加或更新站点配置
核心引擎sherlock/sherlock.py修改搜索功能
测试用例tests/*.py添加或改进测试
文档README.md, *.md改进文档

添加或更新站点配置

最常见的贡献是向 Sherlock 的数据库添加新站点。以下是 data.json 中的站点配置模式:

添加新站点时

  1. 分析站点如何处理现有和非现有用户名
  2. 确定合适的错误检测方法
  3. 使用多个用户名彻底测试您的配置
  4. 确保站点不使用会阻止 Sherlock 的反爬取措施

测试您的更改

在提交拉取请求之前,请确保您的更改通过所有测试

# Regular tests
pytest

# Tests requiring internet access
pytest -m online

测试配置在 pytest.ini1-5 中定义,它标记了需要互联网访问的测试。

用于跨多个 Python 版本进行测试

tox

来源:pytest.ini1-5

拉取请求流程

来源:.github/CODEOWNERS1-15

  1. 将更改推送到您的Fork
  2. 向 Sherlock 主仓库创建拉取请求
  3. 确保所有自动化测试通过
  4. 等待相应的代码所有者进行审查
  5. 解决审查期间收到的任何反馈
  6. 一旦获得批准,维护者将合并您的 PR

代码所有权

代码库的不同部分有指定的负责人,他们负责审查和批准更改

来源:.github/CODEOWNERS1-15 .github/FUNDING.yml1-2

对这些文件的更改将自动请求相应的代码所有者进行审查。.github/FUNDING.yml1-2 中的 GitHub 资金配置列出了可以获得资金支持的维护者。

错误报告

报告错误时,请包括:

  1. 清晰、描述性的标题
  2. 重现问题的步骤
  3. 预期行为
  4. 实际行为
  5. 您的环境详情(操作系统、Python 版本等)
  6. 任何相关的日志或截图

有关错误报告的更详细信息,请参阅错误报告

行为准则

Sherlock 遵循在 docs/CODE_OF_CONDUCT.md1-130 中定义的贡献者公约行为准则。主要原则包括:

  • 尊重的沟通
  • 包容的环境
  • 建设性反馈
  • 以社区为中心的发展

违反行为准则的行为可按照行为准则文件中的规定向项目维护者报告。

来源:docs/CODE_OF_CONDUCT.md1-130

代码风格指南

在贡献代码时

  1. 遵循 PEP 8 样式指南
  2. 为函数和类包含文档字符串
  3. 将行长度保持在合理限制内
  4. 编写清晰、可读且可维护的代码
  5. 为复杂逻辑添加注释

开发环境设置

为了获得最佳开发体验

  1. 使用虚拟环境(venvconda
  2. 以可编辑模式安装:pip install -e .
  3. 安装开发依赖:pip install -r requirements.txt
  4. 如果可用,设置 pre-commit 钩子