为 BetterAuth 做贡献
BetterAuth 贡献指南
感谢你对为 Better Auth 贡献代码的兴趣!本指南是为 Better Auth 贡献代码的简明指南。
入门
在开始之前,这里有一些重要资源:
开始开发前:
请确保你已安装 Node.JS,建议使用 LTS 版本。
2. 克隆你的 Fork
# 将 YOUR-USERNAME 替换为你的 GitHub 用户名
git clone https://github.com/YOUR-USERNAME/better-auth.git
cd better-auth进行更改
当你确定想要贡献的内容后,就可以开始更改了。以下是入门步骤:
1. 创建新分支
# 添加上游远程仓库(如果尚未添加)
git remote add upstream https://github.com/better-auth/better-auth.git
# 确保你在 main 分支
git checkout main
# 拉取最新更改
git pull upstream main
# 创建并切换到新分支
git checkout -b feature/your-feature-name问题与错误修复
- 查看我们的 GitHub 问题,寻找标记为
good first issue的问题 - 报告错误时,请包含重现步骤和预期行为
- 在你希望处理的问题上留言,以避免重复工作
欢迎为更多框架贡献支持:
-
尽可能关注框架无关的解决方案
-
保持集成方案简洁且易于维护
-
所有集成目前都在主包中
-
重点关注尽可能与框架无关的解决方案
-
保持集成简洁且易于维护
-
所有集成目前都位于主包中
社交提供商集成
在提议内置社交提供商或提供商辅助工具之前,请查看社交提供商贡献政策。
社区辅助工具可以使用 Generic OAuth 插件独立开发,并提交以列入其他社交提供商。
插件开发
- 修正拼写和错误
- 添加示例,澄清现有内容
- 确保文档与代码更改同步更新
文档编写
- 修正拼写和错误
- 添加示例并澄清现有内容
- 确保文档随着代码更改而更新
测试
我们使用 Vitest 作为测试工具。请将测试文件放置在对应的源代码文件旁边:
import { describe, it, expect } from "vitest";
import { getTestInstance } from "better-auth/test";
describe("Feature", () => {
it("should work as expected", async () => {
const { client } = await getTestInstance();
// 在这里编写测试代码
expect(result).toBeDefined();
});
});使用测试实例辅助工具
测试实例辅助工具现已支持改进的异步上下文管理以处理用户会话:
const { client, runWithUser, signInWithTestUser } = await getTestInstance();
// 以指定用户上下文运行测试
await runWithUser("[email protected]", "password", async (headers) => {
// 该代码块内所有客户端调用将使用该用户的会话
const response = await client.getSession();
// headers 会自动应用
});
// 或使用测试用户的异步上下文
const { runWithDefaultUser } = await signInWithTestUser();
await runWithDefaultUser(async (headers) => {
// 此处代码在测试用户会话上下文中运行
});测试最佳实践
- 编写清晰的提交信息
- 更新文档以反映你的更改
- 为新功能编写测试
- 遵循我们的编码标准
- 保持拉取请求专注于单一更改
需要帮助?
请随时寻求帮助!你可以:
感谢你为 Better Auth 贡献代码!