{"id":32388527,"url":"https://github.com/toolsetlink/upgradelink-action","last_synced_at":"2026-07-06T23:31:12.945Z","repository":{"id":296709106,"uuid":"994225361","full_name":"toolsetlink/upgradelink-action","owner":"toolsetlink","description":"upgradelink-action","archived":false,"fork":false,"pushed_at":"2025-06-09T09:51:49.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-09T10:28:47.040Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/toolsetlink.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-01T13:46:39.000Z","updated_at":"2025-06-09T09:51:38.000Z","dependencies_parsed_at":"2025-06-01T22:51:58.279Z","dependency_job_id":"f228506a-c04e-4314-8d4a-c1204d637bba","html_url":"https://github.com/toolsetlink/upgradelink-action","commit_stats":null,"previous_names":["toolsetlink/upgradelink-action"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/toolsetlink/upgradelink-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolsetlink%2Fupgradelink-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolsetlink%2Fupgradelink-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolsetlink%2Fupgradelink-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolsetlink%2Fupgradelink-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/toolsetlink","download_url":"https://codeload.github.com/toolsetlink/upgradelink-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolsetlink%2Fupgradelink-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280901462,"owners_count":26410586,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-25T02:00:06.499Z","response_time":81,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-25T03:50:29.368Z","updated_at":"2026-07-06T23:31:12.934Z","avatar_url":"https://github.com/toolsetlink.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UpgradeLink Action\n\n**UpgradeLink** - [全端支持，一站式应用升级分发平台及解决方案](http://upgrade.toolsetlink.com/)\n\n## 项目简介\n此项目为开源的 Tauri 项目，用于快速接入 UpgradeLink 服务。通过在 GitHub Action 中引入此模块，可自动将生成的版本文件和升级任务配置到 UpgradeLink 系统，无需额外手动操作。\n\n## 功能特性\n\n- 自动上传 Tauri 应用的版本信息到 UpgradeLink 平台\n- 支持通过 GitHub Action 工作流集成\n- 安全的密钥管理（通过 GitHub Secrets）\n- 简化应用升级配置流程\n- 支持多种应用类型：Tauri、文件、APK\n\n## 快速开始\n\n### 1. 准备工作\n\n在开始之前，您需要：\n\n1. 在 [UpgradeLink](http://upgrade.toolsetlink.com/) 平台注册并创建应用\n2. 获取应用的 `ACCESS_KEY` 和 `ACCESS_SECRET`\n3. 获取应用的 `APP_KEY`（即应用在 UpgradeLink 平台的应用唯一标识）\n4. 确保您的项目已配置自动生成版本信息文件（如 Tauri 应用的 `latest.json`）\n\n### 2. 配置 GitHub Secrets\n\n在您的 GitHub 仓库中，前往 **Settings \u003e Secrets and variables \u003e Actions**，添加以下密钥：\n\n| 密钥名称 | 描述 | 获取方式 |\n|---------|------|--------|\n| `UPGRADE_LINK_ACCESS_KEY` | UpgradeLink 平台的访问密钥 | 在 UpgradeLink 平台创建应用后获取 |\n| `UPGRADE_LINK_ACCESS_SECRET` | UpgradeLink 平台的访问密钥 | 在 UpgradeLink 平台创建应用后获取 |\n| `UPGRADE_LINK_APP_KEY` | 应用在 UpgradeLink 平台的唯一标识 | 在 UpgradeLink 平台创建应用后获取 |\n\n### 3. 配置 GitHub Action 工作流\n\n在您的项目中创建或修改 `.github/workflows` 目录下的工作流文件，例如 `.github/workflows/release.yml`：\n\n```yaml\n  upgradeLink-upload:\n    needs: publish-tauri  # 依赖于 上游 作业完成，可进行调整\n    permissions:\n      contents: write \n    runs-on: ubuntu-latest\n    steps:\n      - name: Send a request to UpgradeLink\n        uses: toolsetlink/upgradelink-action@3.0.2\n        with:\n          # protocol: 'HTTPS'     # 此字段为可选，默认值为 HTTPS\n          # endpoint: 'api.upgrade.toolsetlink.com'  # 此字段为可选，默认值为 api.upgrade.toolsetlink.com\n          access_key: ${{ secrets.UPGRADE_LINK_ACCESS_KEY }}\n          access_secret: ${{ secrets.UPGRADE_LINK_ACCESS_SECRET }}\n          config: |\n            {\n              \"app_type\": \"tauri\",\n              \"request\": {\n                \"app_key\": \"${{ secrets.UPGRADE_LINK_APP_KEY }}\",\n                \"latest_json_url\": \"https://github.com/YOUR_USERNAME/YOUR_REPO/releases/download/${{ github.ref_name }}/latest.json\"\n              }\n            }\n```\n\n## 配置说明\n\n### 必需参数\n\n| 参数 | 描述 | 示例值 |\n|------|------|--------|\n| `access_key` | 在 UpgradeLink 平台创建应用后生成的访问密钥 | `your-access-key-here` |\n| `access_secret` | 在 UpgradeLink 平台创建应用后生成的访问密钥 | `your-access-secret-here` |\n| `config` | 包含应用配置的 JSON 字符串，必须包含 `appType` 字段和 `request` 对象 | `{\"appType\": \"tauri\", \"request\": {\"app_key\": \"your-app-key\", \"latest_json_url\": \"https://github.com/your-username/your-repo/releases/download/v1.0.0/latest.json\"}}` |\n\n### 可选参数\n\n| 参数 | 描述 | 默认值 |\n|------|------|--------|\n| `protocol` | API 调用协议 | `HTTPS` |\n| `endpoint` | API 端点地址 | `api.upgrade.toolsetlink.com` |\n\n## config 字段详细说明\n\n### 基本结构\n\n```json\n{\n  \"app_type\": \"tauri\",  // 必选值：tauri、file、apk\n  \"request\": {\n    \"app_key\": \"YOUR_APP_KEY\",\n    // 其他请求参数，根据 app_type 不同而不同\n  }\n}\n```\n\n### 字段说明\n\n| 字段 | 描述 | 可选值 | 是否必填 |\n|------|------|--------|----------|\n| `app_type` | 应用类型，用于决定调用哪个接口 | tauri、file、apk | 是 |\n| `request.app_key` | 应用在 UpgradeLink 平台的唯一标识 | - | 是 |\n\n### 不同 app_type 对应的请求参数\n\n#### 1. app_type: \"tauri\"\n\n```json\n{\n  \"app_type\": \"tauri\",\n  \"request\": {\n    \"app_key\": \"YOUR_APP_KEY\",\n    \"latest_json_url\": \"YOUR_LATEST_JSON_URL\"\n  }\n}\n```\n\n| 字段 | 描述 | 示例值 |\n|------|------|--------|\n| `request.latest_json_url` | Tauri 应用版本信息的 JSON 文件 URL（通常为 Tauri 打包生成的 `latest.json`） | `https://github.com/your-username/your-repo/releases/download/v1.0.0/latest.json` |\n\n#### 2. app_type: \"file\"\n\n```json\n{\n  \"app_type\": \"file\",\n  \"request\": {\n    \"app_key\": \"YOUR_APP_KEY\",\n    \"version\": \"YOUR_VERSION\",\n    \"url\": \"YOUR_FILE_URL\",\n    \"prompt_upgrade_content\": \"YOUR_PROMPT_UPGRADE_CONTENT\"\n  }\n}\n```\n\n| 字段 | 描述 | 示例值 |\n|------|------|--------|\n| `request.version` | 文件版本号 | `1.0.0` |\n| `request.url` | 文件下载 URL | `https://github.com/your-username/your-repo/releases/download/v1.0.0/app.zip` |\n| `request.prompt_upgrade_content` | 升级提示内容 | `新版本已发布，包含重要功能更新和 bug 修复` |\n\n#### 3. app_type: \"apk\"\n\n```json\n{\n  \"app_type\": \"apk\",\n  \"request\": {\n    \"app_key\": \"YOUR_APP_KEY\",\n    \"version\": \"YOUR_VERSION\",\n    \"url\": \"YOUR_APK_URL\",\n    \"prompt_upgrade_content\": \"YOUR_PROMPT_UPGRADE_CONTENT\"\n  }\n}\n```\n\n| 字段 | 描述 | 示例值 |\n|------|------|--------|\n| `request.version` | APK 版本号 | `1.0.0` |\n| `request.url` | APK 文件下载 URL | `https://github.com/your-username/your-repo/releases/download/v1.0.0/app.apk` |\n| `request.prompt_upgrade_content` | 升级提示内容 | `新版本已发布，包含重要功能更新和 bug 修复` |\n\n## 完整使用示例\n\n### 示例 1：基本配置（Tauri 应用）\n\n以下是一个基本的 GitHub Action 工作流配置示例，用于 Tauri 应用：\n\n```yaml\n- name: Configure UpgradeLink\n  uses: toolsetlink/upgradelink-action@3.0.2\n  with:\n    access_key: ${{ secrets.UPGRADE_LINK_ACCESS_KEY }}\n    access_secret: ${{ secrets.UPGRADE_LINK_ACCESS_SECRET }}\n    config: |\n      {\n        \"app_type\": \"tauri\",\n        \"request\": {\n           \"app_key\": \"${{ secrets.UPGRADE_LINK_APP_KEY }}\",\n          \"latest_json_url\": \"https://github.com/YOUR_USERNAME/YOUR_REPO/releases/download/app-v${{ github.sha }}/latest.json\"\n        }\n      }\n```\n\n### 示例 2：文件应用（app_type: \"file\"）\n\n以下是一个用于文件应用的配置示例：\n\n```yaml\n- name: Configure UpgradeLink for File app\n  uses: toolsetlink/upgradelink-action@3.0.2\n  with:\n    access_key: ${{ secrets.UPGRADE_LINK_ACCESS_KEY }}\n    access_secret: ${{ secrets.UPGRADE_LINK_ACCESS_SECRET }}\n    config: |\n      {\n        \"app_type\": \"file\",\n        \"request\": {\n          \"app_key\": \"${{ secrets.UPGRADE_LINK_APP_KEY }}\",\n          \"version\": \"1.0.0\",\n          \"url\": \"https://github.com/YOUR_USERNAME/YOUR_REPO/releases/download/v1.0.0/app.zip\",\n          \"prompt_upgrade_content\": \"新版本已发布，包含重要功能更新和 bug 修复\"\n        }\n      }\n```\n\n### 示例 3：APK 应用（app_type: \"apk\"）\n\n以下是一个用于 APK 应用的配置示例：\n\n```yaml\n- name: Configure UpgradeLink for APK app\n  uses: toolsetlink/upgradelink-action@3.0.2\n  with:\n    protocol: 'HTTPS'\n    endpoint: 'api.upgrade.toolsetlink.com'\n    access_key: ${{ secrets.UPGRADE_LINK_ACCESS_KEY }}\n    access_secret: ${{ secrets.UPGRADE_LINK_ACCESS_SECRET }}\n    config: |\n      {\n        \"app_type\": \"apk\",\n        \"request\": {\n          \"app_key\": \"${{ secrets.UPGRADE_LINK_APP_KEY }}\",\n          \"version\": \"1.0.0\",\n          \"url\": \"https://github.com/YOUR_USERNAME/YOUR_REPO/releases/download/v1.0.0/app.apk\",\n          \"prompt_upgrade_content\": \"新版本已发布，包含重要功能更新和 bug 修复\"\n        }\n      }\n```\n\n### 示例 4：自定义 API 端点\n\n如果您需要使用自定义的 API 端点，可以修改 `protocol` 和 `endpoint` 参数：\n\n```yaml\n- name: Configure UpgradeLink with custom endpoint\n  uses: toolsetlink/upgradelink-action@3.0.2\n  with:\n    protocol: 'HTTPS'\n    endpoint: 'custom-api.example.com'\n    access_key: ${{ secrets.UPGRADE_LINK_ACCESS_KEY }}\n    access_secret: ${{ secrets.UPGRADE_LINK_ACCESS_SECRET }}\n    config: |\n      {\n        \"app_type\": \"tauri\",\n        \"request\": {\n          \"app_key\": \"${{ secrets.UPGRADE_LINK_APP_KEY }}\",\n          \"latest_json_url\": \"https://github.com/YOUR_USERNAME/YOUR_REPO/releases/download/v1.0.0/latest.json\"\n        }\n      }\n```\n\n## 常见问题与解决方案\n\n### 1. `latest.json` 文件不存在\n\n**问题**：Action 执行失败，提示找不到 `latest.json` 文件。\n\n**解决方案**：\n- 验证发布的资产中是否包含 `latest.json` 文件\n\n### 2. API 调用失败\n\n**问题**：Action 执行失败，提示 API 调用失败。\n\n**解决方案**：\n- 检查 `UPGRADE_LINK_ACCESS_KEY`、`UPGRADE_LINK_ACCESS_SECRET` 和 `UPGRADE_LINK_APP_KEY` 是否正确配置\n- 确保网络连接正常，GitHub Actions 能够访问 UpgradeLink API\n\n### 3. 密钥配置错误\n\n**问题**：Action 执行失败，提示密钥错误。\n\n**解决方案**：\n- 确认在 GitHub Secrets 中正确配置了所有必需的密钥\n- 检查密钥名称是否与工作流文件中引用的名称一致\n- 验证密钥值是否正确，没有多余的空格或特殊字符\n\n### 4. config JSON 格式错误\n\n**问题**：Action 执行失败，提示无法解析 config JSON。\n\n**解决方案**：\n- 确保 config 字段是有效的 JSON 字符串\n- 检查 JSON 格式是否正确，包括引号、逗号等\n- 确保 JSON 字符串在 YAML 文件中正确转义\n\n### 5. app_type 字段错误\n\n**问题**：Action 执行失败，提示 app_type 错误。\n\n**解决方案**：\n- 确保在 config 中包含 app_type 字段\n- 验证 app_type 值是否为有效的选项之一：tauri、file、apk\n\n## 最佳实践\n\n1. **使用版本标签**：建议使用语义化版本号（如 `v1.0.0`）作为标签，便于管理和追踪版本\n\n2. **配置依赖关系**：确保 `upgradeLink-upload` 作业依赖于构建/发布作业完成，避免在构建完成前尝试上传\n\n3. **使用环境变量**：对于不同环境（如开发、测试、生产），可以配置不同的密钥和参数\n\n4. **添加错误处理**：在工作流中添加适当的错误处理，确保即使上传失败也能通知相关人员\n\n5. **定期更新**：定期更新 Action 版本，以获取最新功能和安全修复\n\n## 故障排除\n\n如果您遇到问题，可以通过以下步骤进行排查：\n\n1. **查看 Action 日志**：在 GitHub 仓库的 **Actions** 标签页中查看详细的执行日志\n\n2. **验证参数配置**：检查所有参数是否正确配置，特别是 `config` 字段的 JSON 格式是否正确\n\n3. **测试 API 连接**：手动测试 UpgradeLink API 是否可以正常访问\n\n4. **检查 UpgradeLink 平台**：登录 UpgradeLink 平台，查看应用状态和日志\n\n## 示例项目\n\n- [tauri-demo](http://upgrade.toolsetlink.com/) - 官方示例项目，展示完整的集成配置\n\n## 支持与反馈\n\n如果您在使用过程中遇到问题或有任何建议，欢迎通过以下方式联系我们：\n\n- [GitHub Issues](https://github.com/toolsetlink/upgradelink-action/issues)\n- [UpgradeLink 官方网站](http://upgrade.toolsetlink.com/)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoolsetlink%2Fupgradelink-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftoolsetlink%2Fupgradelink-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoolsetlink%2Fupgradelink-action/lists"}