如何为需要客户端 key/secrets 的开源 API 集成构建自动化测试?

How to structure automated tests for open source API integration that requires client key/secrets?

我正在开发一个为 OAuth2 requests/protocols 提供库支持的开源项目。该项目包括有关如何使用各种 API 提供商(Google、LinkedIn、Instagram 等...)实施库的示例

目前这些示例作为独立的文本文件存在,其中包含客户端 ID 和 key/secret:

的变量声明
client_id = 'getThisFromOwnerOfApi'
client_secret = 'getThisFromOwnerOfApi'
...
# build request, send, read response etc...

这些是为了让用户通过他们的客户端手动更新文件 id/secret。然后 运行 将文件保存到本地以查看如何使用该库。

我想重组示例,使它们更实用、更易于维护、更易于使用。每个示例都会附带:

最终,我希望示例位于它们自己的目录中,并让项目管道 运行 针对每个示例(如测试文件)自动执行任务,以确保示例是 working/up-to-date .

我的问题是,如何处理 运行 自动化测试的 API 键?

在四处寻找之后,我发现 github 存储库有专门存储敏感数据的地方。可以找到此部分:

github.com/<user>/<repo>/settings/secrets/actions

以及此功能附带的文档:

https://docs.github.com/en/actions/security-guides/encrypted-secrets

就生成这些 id/secrets 而言,除非资源提供者具有允许 public 不受限制地访问某些测试帐户的测试功能,否则项目需要拥有自己的帐户提供商。