java - 如何启用 github 操作以访问 secret 属性文件

标签 java android gradle github github-actions

我正在开发一个涉及很多敏感 api key 的 android 项目。这些 key 存储在一个特定的 gradle 属性文件中,git 会忽略该文件。

secret.properties
apikey="938484738288274932228"


问题是如何启用 github 操作来访问此属性文件及其中的值,而无需将文件推送到 git。

已经尝试过
- 制作具有空白值的后备属性文件(但将来的测试可能需要这些值)

最佳答案

所以这是我用来完成这项工作的方法。

  • 首先base64编码要隐藏的属性文件的文件内容。
  • 然后通过在 Github Web 客户端中设置
  • 将该 base64 字符串添加到 Github 密码中。
  • 然后在项目中设置 GitHub Action 并添加任务将解码后的内容写入来自 GH secret
  • 的文件中
    - name: Decode secrets.properties file
            env:
              SECRETS_PROPERTIES: ${{ secrets.SECRETS_PROPERTIES }}
            run: echo "$SECRETS_PROPERTIES" | base64 -d > ./secrets.properties
    
  • 在您的 build.gradle 文件(根目录或/app 目录中的那个)中,您需要放置以下代码,以便让 Gradle 从 secrets.properties 加载属性文件。
  • def secretsPropertiesFile = rootProject.file("./secrets.properties")
    def secretsProperties = new Properties()
    secretsProperties.load(new FileInputStream(secretsPropertiesFile))
    
  • 访问 gradle 中的值将是 secretsProperties['apikey']

  • 更多资源:
  • https://github.com/features/actions
  • https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets
  • 关于java - 如何启用 github 操作以访问 secret 属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60947729/

    相关文章:

    java - Jooq 无法找到 postgres 数据库的驱动程序

    gradle - Gradle中的多个sonarRunner任务

    amazon-web-services - 如何从具有必要策略的 S3 存储桶将 SSL 证书下载到在我的 FARGATE 容器上运行的 Gradle 应用程序

    java - 在复制构造函数中复制监听器/观察器

    java - 暂时提高多线程服务中的log4j2记录器级别

    java - 在真正的 Android 手机上运行时检索 GPS 坐标不起作用

    java - 对方法内部声明的方法进行单元测试

    java - 默认情况在进入 switch-case 之前就被执行

    android - 在全屏模式下平板电脑上的状态栏 (SYSTEM_UI_FLAG_LOW_PROFILE) 反复变暗?

    android - ScrollView 中的 ImageView (Android)