mirror of
https://github.com/astral-sh/setup-uv.git
synced 2026-06-09 11:30:42 +00:00
Compare commits
44 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e06108dd0a | ||
|
|
0f6ec07aaf | ||
|
|
821e5c9815 | ||
|
|
6ee6290f1c | ||
|
|
9f332a133a | ||
|
|
0acf9708ce | ||
|
|
fe3617d6e9 | ||
|
|
2ff70eebcc | ||
|
|
5ba8a7e5d0 | ||
|
|
4bc8fabc0c | ||
|
|
950b623541 | ||
|
|
09ff6fe0ae | ||
|
|
bd870193dd | ||
|
|
f8858e6756 | ||
|
|
5a095e7a20 | ||
|
|
b12532f27f | ||
|
|
0098a7571c | ||
|
|
2e7ed0e2bb | ||
|
|
04224aa8ca | ||
|
|
2bc602ff89 | ||
|
|
dd9d748439 | ||
|
|
14eede1834 | ||
|
|
c452423b2c | ||
|
|
eac588ad8d | ||
|
|
a97c6cbe9c | ||
|
|
02182fa02a | ||
|
|
a3b3eaea92 | ||
|
|
78cebeceac | ||
|
|
b6b8e2cd6a | ||
|
|
e31bec8546 | ||
|
|
db2b65ebae | ||
|
|
3511ff7054 | ||
|
|
99b0f0474b | ||
|
|
db4d6bf3d6 | ||
|
|
98e1309028 | ||
|
|
5ed2ede620 | ||
|
|
5fca386933 | ||
|
|
803947b9bd | ||
|
|
24553ac46d | ||
|
|
085087a5d3 | ||
|
|
9cfd029643 | ||
|
|
dd9d55bc18 | ||
|
|
8512ad0289 | ||
|
|
cc5581700e |
48
.agents/skills/dependabot-pr-rollup/SKILL.md
Normal file
48
.agents/skills/dependabot-pr-rollup/SKILL.md
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
---
|
||||||
|
name: dependabot-pr-rollup
|
||||||
|
description: Find open Dependabot PRs for the current GitHub repo, compare each PR head to its base branch, replay only the net dependency changes in a fresh worktree and branch, run npm validation, and optionally commit, push, and open a PR. Use when you want to batch or manually replicate active Dependabot updates.
|
||||||
|
license: MIT
|
||||||
|
compatibility: Requires git, git worktree, gh CLI auth, npm, and a GitHub repo with an origin remote.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Dependabot PR Rollup
|
||||||
|
|
||||||
|
## When to use
|
||||||
|
|
||||||
|
Use this skill when the user wants to:
|
||||||
|
- find all open Dependabot PRs in the current repo
|
||||||
|
- reproduce their net effect in one local branch
|
||||||
|
- validate the result with the repo's standard npm checks
|
||||||
|
- optionally commit, push, and open a PR
|
||||||
|
|
||||||
|
## Workflow
|
||||||
|
|
||||||
|
1. Inspect the current checkout state, but do not reuse a dirty worktree.
|
||||||
|
2. List open Dependabot PRs with `gh pr list --state open --author app/dependabot`.
|
||||||
|
3. For each PR, collect the title, base branch, head branch, changed files, and relevant diffs.
|
||||||
|
4. Compare each PR head against `origin/<base>` instead of trusting the PR title. Dependabot PRs can already be partially merged, superseded by newer versions, or have no remaining net effect.
|
||||||
|
5. Create a new worktree and branch from `origin/<base>`.
|
||||||
|
6. Reproduce only the remaining dependency changes in the new worktree.
|
||||||
|
- Inspect `package.json` before editing.
|
||||||
|
- Run `npm ci --ignore-scripts` before applying updates.
|
||||||
|
- Use `npm install ... --ignore-scripts` for direct dependency changes so `package-lock.json` stays in sync.
|
||||||
|
7. Run `npm run all`.
|
||||||
|
8. If requested, commit the changed source, lockfile, and generated artifacts, then push and open a PR.
|
||||||
|
|
||||||
|
## Repo-specific notes
|
||||||
|
|
||||||
|
- Use `gh` for GitHub operations.
|
||||||
|
- Keep the user's original checkout untouched by working in a separate worktree.
|
||||||
|
- In this repo, `npm run all` is the safest validation command because it runs build, check, package, and test.
|
||||||
|
- If dependency changes affect bundled output, include the regenerated `dist/` files.
|
||||||
|
|
||||||
|
## Report back
|
||||||
|
|
||||||
|
Always report:
|
||||||
|
- open Dependabot PRs found
|
||||||
|
- which PRs required no net changes
|
||||||
|
- new branch name
|
||||||
|
- new worktree path
|
||||||
|
- files changed
|
||||||
|
- `npm run all` result
|
||||||
|
- if applicable, commit SHA and PR URL
|
||||||
263
.github/copilot-instructions.md
vendored
263
.github/copilot-instructions.md
vendored
@@ -1,263 +0,0 @@
|
|||||||
# Copilot Instructions for setup-uv
|
|
||||||
|
|
||||||
This document provides essential information for GitHub Copilot coding agents working on the `astral-sh/setup-uv` repository.
|
|
||||||
|
|
||||||
## Repository Overview
|
|
||||||
|
|
||||||
**setup-uv** is a GitHub Action that sets up the [uv](https://docs.astral.sh/uv/)
|
|
||||||
Python package installer in GitHub Actions workflows.
|
|
||||||
It's a TypeScript-based action that downloads uv binaries, manages caching, handles version resolution,
|
|
||||||
and configures the environment for subsequent workflow steps.
|
|
||||||
|
|
||||||
### Key Features
|
|
||||||
|
|
||||||
- Downloads and installs specific uv versions from GitHub releases
|
|
||||||
- Supports version resolution from config files (pyproject.toml, uv.toml, .tool-versions)
|
|
||||||
- Implements intelligent caching for both uv cache and Python installations
|
|
||||||
- Provides cross-platform support (Linux, macOS, Windows, including ARM architectures)
|
|
||||||
- Includes problem matchers for Python error reporting
|
|
||||||
- Supports environment activation and custom tool directories
|
|
||||||
|
|
||||||
## Repository Structure
|
|
||||||
|
|
||||||
**Size**: Small-medium repository (~50 source files, ~400 total files including dependencies)
|
|
||||||
**Languages**: TypeScript (primary), JavaScript (compiled output), JSON (configuration)
|
|
||||||
**Runtime**: Node.js 24 (GitHub Actions runtime)
|
|
||||||
**Key Dependencies**: @actions/core, @actions/cache, @actions/tool-cache, @octokit/core
|
|
||||||
|
|
||||||
### Core Architecture
|
|
||||||
|
|
||||||
```
|
|
||||||
src/
|
|
||||||
├── setup-uv.ts # Main entry point and orchestration
|
|
||||||
├── save-cache.ts # Post-action cache saving logic
|
|
||||||
├── update-known-versions.ts # Maintenance script for version updates
|
|
||||||
├── cache/ # Cache management functionality
|
|
||||||
├── download/ # Version resolution and binary downloading
|
|
||||||
├── utils/ # Input parsing, platform detection, configuration
|
|
||||||
└── version/ # Version resolution from various file formats
|
|
||||||
```
|
|
||||||
|
|
||||||
### Key Files and Locations
|
|
||||||
|
|
||||||
- **Action Definition**: `action.yml` - Defines all inputs/outputs and entry points
|
|
||||||
- **Main Source**: `src/setup-uv.ts` - Primary action logic
|
|
||||||
- **Configuration**: `biome.json` (linting), `tsconfig.json` (TypeScript), `jest.config.js` (testing)
|
|
||||||
- **Compiled Output**: `dist/` - Contains compiled Node.js bundles (auto-generated, committed)
|
|
||||||
- **Test Fixtures**: `__tests__/fixtures/` - Sample projects for different configuration scenarios
|
|
||||||
- **Workflows**: `.github/workflows/test.yml` - Comprehensive CI/CD pipeline
|
|
||||||
|
|
||||||
## Build and Development Process
|
|
||||||
|
|
||||||
### Prerequisites
|
|
||||||
|
|
||||||
- Node.js 24+ (matches GitHub Actions runtime)
|
|
||||||
- npm (included with Node.js)
|
|
||||||
|
|
||||||
### Essential Commands (ALWAYS run in this order)
|
|
||||||
|
|
||||||
#### 1. Install Dependencies
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm ci --ignore-scripts
|
|
||||||
```
|
|
||||||
|
|
||||||
**Timing**: ~20-30 seconds
|
|
||||||
**Note**: Always run this first after cloning or when package.json changes
|
|
||||||
|
|
||||||
#### 2. Build TypeScript
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run build
|
|
||||||
```
|
|
||||||
|
|
||||||
**Timing**: ~5-10 seconds
|
|
||||||
**Purpose**: Compiles TypeScript source to JavaScript in `lib/` directory
|
|
||||||
|
|
||||||
#### 3. Lint and Format Code
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run check
|
|
||||||
```
|
|
||||||
|
|
||||||
**Timing**: ~2-5 seconds
|
|
||||||
**Tool**: Biome (replaces ESLint/Prettier)
|
|
||||||
**Auto-fixes**: Formatting, import organization, basic linting issues
|
|
||||||
|
|
||||||
#### 4. Package for Distribution
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run package
|
|
||||||
```
|
|
||||||
|
|
||||||
**Timing**: ~20-30 seconds
|
|
||||||
**Purpose**: Creates bundled distributions in `dist/` using @vercel/ncc
|
|
||||||
**Critical**: This step MUST be run before committing - the `dist/` files are used by GitHub Actions
|
|
||||||
|
|
||||||
#### 5. Run Tests
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm test
|
|
||||||
```
|
|
||||||
|
|
||||||
**Timing**: ~10-15 seconds
|
|
||||||
**Framework**: Jest with TypeScript support
|
|
||||||
**Coverage**: Unit tests for version resolution, input parsing, checksum validation
|
|
||||||
|
|
||||||
#### 6. Complete Validation (Recommended)
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run all
|
|
||||||
```
|
|
||||||
|
|
||||||
**Timing**: ~60-90 seconds
|
|
||||||
**Purpose**: Runs build → check → package → test in sequence
|
|
||||||
**Use**: Before making pull requests or when unsure about build state
|
|
||||||
|
|
||||||
### Important Build Notes
|
|
||||||
|
|
||||||
**CRITICAL**: Always run `npm run package` after making code changes. The `dist/` directory contains the compiled bundles that GitHub Actions actually executes. Forgetting this step will cause your changes to have no effect.
|
|
||||||
|
|
||||||
**TypeScript Warnings**: You may see ts-jest warnings about "isolatedModules" - these are harmless and don't affect functionality.
|
|
||||||
|
|
||||||
**Biome**: This project uses Biome instead of ESLint/Prettier. Run `npm run check` to fix formatting and linting issues automatically.
|
|
||||||
|
|
||||||
## Testing Strategy
|
|
||||||
|
|
||||||
### Unit Tests
|
|
||||||
|
|
||||||
- **Location**: `__tests__/` directory
|
|
||||||
- **Framework**: Jest with ts-jest transformer
|
|
||||||
- **Coverage**: Version resolution, input parsing, checksum validation, utility functions
|
|
||||||
|
|
||||||
### Integration Tests
|
|
||||||
|
|
||||||
- **Location**: `.github/workflows/test.yml`
|
|
||||||
- **Scope**: Full end-to-end testing across multiple platforms and scenarios
|
|
||||||
- **Key Test Categories**:
|
|
||||||
- Version installation (specific, latest, semver ranges)
|
|
||||||
- Cache behavior (setup, restore, invalidation)
|
|
||||||
- Cross-platform compatibility (Ubuntu, macOS, Windows, ARM)
|
|
||||||
- Configuration file parsing (pyproject.toml, uv.toml, requirements.txt)
|
|
||||||
- Error handling and edge cases
|
|
||||||
|
|
||||||
### Test Fixtures
|
|
||||||
|
|
||||||
Located in `__tests__/fixtures/`, these provide sample projects with different configurations:
|
|
||||||
- `pyproject-toml-project/` - Standard Python project with uv version specification
|
|
||||||
- `uv-toml-project/` - Project using uv.toml configuration
|
|
||||||
- `requirements-txt-project/` - Legacy requirements.txt format
|
|
||||||
- `cache-dir-defined-project/` - Custom cache directory configuration
|
|
||||||
|
|
||||||
## Continuous Integration
|
|
||||||
|
|
||||||
### GitHub Workflows
|
|
||||||
|
|
||||||
#### Primary Test Suite (`.github/workflows/test.yml`)
|
|
||||||
|
|
||||||
- **Triggers**: PRs, pushes to main, manual dispatch
|
|
||||||
- **Matrix**: Multiple OS (Ubuntu, macOS, Windows), architecture (x64, ARM), and configuration combinations
|
|
||||||
- **Duration**: ~5 minutes for full matrix
|
|
||||||
- **Key Validations**:
|
|
||||||
- Cross-platform installation and functionality
|
|
||||||
- Cache behavior and performance
|
|
||||||
- Version resolution from various sources
|
|
||||||
- Tool directory configurations
|
|
||||||
- Problem matcher functionality
|
|
||||||
|
|
||||||
#### Maintenance Workflows
|
|
||||||
|
|
||||||
- **CodeQL Analysis**: Security scanning on pushes/PRs
|
|
||||||
- **Update Known Versions**: Daily job to sync with latest uv releases
|
|
||||||
- **Dependabot**: Automated dependency updates
|
|
||||||
|
|
||||||
### Pre-commit Validation
|
|
||||||
|
|
||||||
The CI runs these checks that you should run locally:
|
|
||||||
1. `npm run all` - Complete build and test suite
|
|
||||||
2. ActionLint - GitHub Actions workflow validation
|
|
||||||
3. Change detection - Ensures no uncommitted build artifacts
|
|
||||||
|
|
||||||
## Key Configuration Files
|
|
||||||
|
|
||||||
### Action Configuration (`action.yml`)
|
|
||||||
|
|
||||||
Defines 20+ inputs including version specifications,
|
|
||||||
cache settings, tool directories, and environment options.
|
|
||||||
This file is the authoritative source for understanding available action parameters.
|
|
||||||
|
|
||||||
### TypeScript Configuration (`tsconfig.json`)
|
|
||||||
|
|
||||||
- Target: ES2024
|
|
||||||
- Module: nodenext (Node.js modules)
|
|
||||||
- Strict mode enabled
|
|
||||||
- Output directory: `lib/`
|
|
||||||
|
|
||||||
### Linting Configuration (`biome.json`)
|
|
||||||
|
|
||||||
- Formatter and linter combined
|
|
||||||
- Enforces consistent code style
|
|
||||||
- Automatically organizes imports and sorts object keys
|
|
||||||
|
|
||||||
## Common Development Patterns
|
|
||||||
|
|
||||||
### Making Code Changes
|
|
||||||
|
|
||||||
1. Edit TypeScript source files in `src/`
|
|
||||||
2. Run `npm run build` to compile
|
|
||||||
3. Run `npm run check` to format and lint
|
|
||||||
4. Run `npm run package` to update distribution bundles
|
|
||||||
5. Run `npm test` to verify functionality
|
|
||||||
6. Commit all changes including `dist/` files
|
|
||||||
|
|
||||||
### Adding New Features
|
|
||||||
|
|
||||||
- Follow existing patterns in `src/utils/inputs.ts` for new action inputs
|
|
||||||
- Update `action.yml` to declare new inputs/outputs
|
|
||||||
- Add corresponding tests in `__tests__/`
|
|
||||||
- Add a test in `.github/workflows/test.yml` if it affects integration
|
|
||||||
- Update README.md with usage examples
|
|
||||||
|
|
||||||
### Cache-Related Changes
|
|
||||||
|
|
||||||
- Cache logic is complex and affects performance significantly
|
|
||||||
- Test with multiple cache scenarios (hit, miss, invalidation)
|
|
||||||
- Consider impact on both GitHub-hosted and self-hosted runners
|
|
||||||
- Validate cache key generation and dependency detection
|
|
||||||
|
|
||||||
### Version Resolution Changes
|
|
||||||
|
|
||||||
- Version resolution supports multiple file formats and precedence rules
|
|
||||||
- Test with fixtures in `__tests__/fixtures/`
|
|
||||||
- Consider backward compatibility with existing projects
|
|
||||||
- Validate semver and PEP 440 specification handling
|
|
||||||
|
|
||||||
## Troubleshooting
|
|
||||||
|
|
||||||
### Build Failures
|
|
||||||
|
|
||||||
- **"Module not found"**: Run `npm ci --ignore-scripts` to ensure dependencies are installed
|
|
||||||
- **TypeScript errors**: Check `tsconfig.json` and ensure all imports are valid
|
|
||||||
- **Test failures**: Check if test fixtures have been modified or if logic changes broke assumptions
|
|
||||||
|
|
||||||
### Action Failures in Workflows
|
|
||||||
|
|
||||||
- **Changes not taking effect**: Ensure `npm run package` was run and `dist/` files committed
|
|
||||||
- **Version resolution issues**: Check version specification format and file existence
|
|
||||||
- **Cache problems**: Verify cache key generation and dependency glob patterns
|
|
||||||
|
|
||||||
### Common Gotchas
|
|
||||||
|
|
||||||
- **Forgetting to package**: Code changes won't work without running `npm run package`
|
|
||||||
- **Platform differences**: Windows paths use backslashes, test cross-platform behavior
|
|
||||||
- **Cache invalidation**: Cache keys are sensitive to dependency file changes
|
|
||||||
- **Tool directory permissions**: Some platforms require specific directory setups
|
|
||||||
|
|
||||||
## Trust These Instructions
|
|
||||||
|
|
||||||
These instructions are comprehensive and current. Only search for additional information if:
|
|
||||||
- You encounter specific error messages not covered here
|
|
||||||
- You need to understand implementation details of specific functions
|
|
||||||
- The instructions appear outdated (check repository commit history)
|
|
||||||
|
|
||||||
For most development tasks, following the build process and development patterns outlined above will be sufficient.
|
|
||||||
2
.github/release-drafter.yml
vendored
2
.github/release-drafter.yml
vendored
@@ -19,7 +19,7 @@ categories:
|
|||||||
labels:
|
labels:
|
||||||
- "maintenance"
|
- "maintenance"
|
||||||
- "ci"
|
- "ci"
|
||||||
- "update-known-versions"
|
- "update-known-checksums"
|
||||||
- title: "📚 Documentation"
|
- title: "📚 Documentation"
|
||||||
labels:
|
labels:
|
||||||
- "documentation"
|
- "documentation"
|
||||||
|
|||||||
8
.github/workflows/codeql-analysis.yml
vendored
8
.github/workflows/codeql-analysis.yml
vendored
@@ -41,13 +41,13 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
|
uses: github/codeql-action/init@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2
|
||||||
with:
|
with:
|
||||||
languages: ${{ matrix.language }}
|
languages: ${{ matrix.language }}
|
||||||
source-root: src
|
source-root: src
|
||||||
@@ -59,7 +59,7 @@ jobs:
|
|||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||||
# If this step fails, then you should remove it and run the build manually (see below)
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
- name: Autobuild
|
- name: Autobuild
|
||||||
uses: github/codeql-action/autobuild@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
|
uses: github/codeql-action/autobuild@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
# 📚 https://git.io/JvXDl
|
# 📚 https://git.io/JvXDl
|
||||||
@@ -73,4 +73,4 @@ jobs:
|
|||||||
# make release
|
# make release
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
- name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
|
uses: github/codeql-action/analyze@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2
|
||||||
|
|||||||
2
.github/workflows/release-drafter.yml
vendored
2
.github/workflows/release-drafter.yml
vendored
@@ -19,6 +19,6 @@ jobs:
|
|||||||
pull-requests: read
|
pull-requests: read
|
||||||
steps:
|
steps:
|
||||||
- name: 🚀 Run Release Drafter
|
- name: 🚀 Run Release Drafter
|
||||||
uses: release-drafter/release-drafter@b1476f6e6eb133afa41ed8589daba6dc69b4d3f5 # v6.1.0
|
uses: release-drafter/release-drafter@6db134d15f3909ccc9eefd369f02bd1e9cffdf97 # v6.2.0
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
309
.github/workflows/test.yml
vendored
309
.github/workflows/test.yml
vendored
@@ -21,14 +21,14 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
security-events: write # for zizmor
|
security-events: write # for zizmor
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Actionlint
|
- name: Actionlint
|
||||||
uses: eifinger/actionlint-action@213860089b7cf97d640aa67567898fabeb132746 # v1.9.3
|
uses: eifinger/actionlint-action@7802e0cc3ab3f81cbffb36fb0bf1a3621d994b89 # v1.10.1
|
||||||
- name: Run zizmor
|
- name: Run zizmor
|
||||||
uses: zizmorcore/zizmor-action@e639db99335bc9038abc0e066dfcd72e23d26fb4 # v0.3.0
|
uses: zizmorcore/zizmor-action@0dce2577a4760a2749d8cfb7a84b7d5585ebcb7d # v0.5.0
|
||||||
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||||
with:
|
with:
|
||||||
node-version-file: .nvmrc
|
node-version-file: .nvmrc
|
||||||
cache: npm
|
cache: npm
|
||||||
@@ -51,7 +51,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest, macos-14, windows-latest]
|
os: [ubuntu-latest, macos-latest, macos-14, windows-latest]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install latest version
|
- name: Install latest version
|
||||||
@@ -76,7 +76,7 @@ jobs:
|
|||||||
test-uv-no-modify-path:
|
test-uv-no-modify-path:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install with UV_NO_MODIFY_PATH set
|
- name: Install with UV_NO_MODIFY_PATH set
|
||||||
@@ -125,7 +125,7 @@ jobs:
|
|||||||
expected-version: "0.1.0"
|
expected-version: "0.1.0"
|
||||||
resolution-strategy: "lowest"
|
resolution-strategy: "lowest"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install version ${{ matrix.input.version-input }} with strategy ${{ matrix.input.resolution-strategy || 'highest' }}
|
- name: Install version ${{ matrix.input.version-input }} with strategy ${{ matrix.input.resolution-strategy || 'highest' }}
|
||||||
@@ -154,7 +154,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
version-input: ["latest", ">=0.8"]
|
version-input: ["latest", ">=0.8"]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install version ${{ matrix.version-input }}
|
- name: Install version ${{ matrix.version-input }}
|
||||||
@@ -182,7 +182,7 @@ jobs:
|
|||||||
- working-directory: "__tests__/fixtures/uv-toml-project"
|
- working-directory: "__tests__/fixtures/uv-toml-project"
|
||||||
expected-version: "0.5.15"
|
expected-version: "0.5.15"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install version from ${{ matrix.input.working-directory }}
|
- name: Install version from ${{ matrix.input.working-directory }}
|
||||||
@@ -208,7 +208,7 @@ jobs:
|
|||||||
- version-file: "__tests__/fixtures/.tool-versions"
|
- version-file: "__tests__/fixtures/.tool-versions"
|
||||||
expected-version: "0.5.15"
|
expected-version: "0.5.15"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install version from ${{ matrix.input.version-file }}
|
- name: Install version from ${{ matrix.input.version-file }}
|
||||||
@@ -225,7 +225,7 @@ jobs:
|
|||||||
test-malformed-pyproject-file-fallback:
|
test-malformed-pyproject-file-fallback:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install using malformed pyproject.toml
|
- name: Install using malformed pyproject.toml
|
||||||
@@ -245,7 +245,7 @@ jobs:
|
|||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
checksum: "a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218"
|
checksum: "a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Checksum matches expected
|
- name: Checksum matches expected
|
||||||
@@ -259,7 +259,7 @@ jobs:
|
|||||||
test-with-explicit-token:
|
test-with-explicit-token:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install default version
|
- name: Install default version
|
||||||
@@ -272,7 +272,7 @@ jobs:
|
|||||||
test-uvx:
|
test-uvx:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install default version
|
- name: Install default version
|
||||||
@@ -285,7 +285,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest, macos-14, windows-latest]
|
os: [ubuntu-latest, macos-latest, macos-14, windows-latest]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install default version
|
- name: Install default version
|
||||||
@@ -293,35 +293,13 @@ jobs:
|
|||||||
- run: uv tool install ruff
|
- run: uv tool install ruff
|
||||||
- run: ruff --version
|
- run: ruff --version
|
||||||
|
|
||||||
test-tilde-expansion-tool-dirs:
|
|
||||||
runs-on: selfhosted-ubuntu-arm64
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: Setup with cache
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
tool-bin-dir: "~/tool-bin-dir"
|
|
||||||
tool-dir: "~/tool-dir"
|
|
||||||
- name: "Check if tool dirs are expanded"
|
|
||||||
run: |
|
|
||||||
if ! echo "$PATH" | grep -q "/home/ubuntu/tool-bin-dir"; then
|
|
||||||
echo "PATH does not contain /home/ubuntu/tool-bin-dir: $PATH"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ "$UV_TOOL_DIR" != "/home/ubuntu/tool-dir" ]; then
|
|
||||||
echo "UV_TOOL_DIR does not contain /home/ubuntu/tool-dir: $UV_TOOL_DIR"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
test-python-version:
|
test-python-version:
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install latest version
|
- name: Install latest version
|
||||||
@@ -353,7 +331,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install latest version
|
- name: Install latest version
|
||||||
@@ -386,11 +364,79 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
UV_VENV: ${{ steps.setup-uv.outputs.venv }}
|
UV_VENV: ${{ steps.setup-uv.outputs.venv }}
|
||||||
|
|
||||||
|
test-activate-environment-custom-path:
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- name: Install latest version
|
||||||
|
id: setup-uv
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
python-version: 3.13.1t
|
||||||
|
activate-environment: true
|
||||||
|
venv-path: ${{ runner.temp }}/custom-venv
|
||||||
|
- name: Verify VIRTUAL_ENV matches output
|
||||||
|
run: |
|
||||||
|
if [ "$VIRTUAL_ENV" != "$UV_VENV" ]; then
|
||||||
|
echo "VIRTUAL_ENV does not match venv output: $VIRTUAL_ENV vs $UV_VENV"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
UV_VENV: ${{ steps.setup-uv.outputs.venv }}
|
||||||
|
- name: Verify venv location is runner.temp/custom-venv
|
||||||
|
run: |
|
||||||
|
python - <<'PY'
|
||||||
|
import os
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
venv = Path(os.environ["VIRTUAL_ENV"]).resolve()
|
||||||
|
temp = Path(os.environ["RUNNER_TEMP"]).resolve()
|
||||||
|
|
||||||
|
if venv.name != "custom-venv":
|
||||||
|
raise SystemExit(f"Expected venv name 'custom-venv', got: {venv}")
|
||||||
|
if venv.parent != temp:
|
||||||
|
raise SystemExit(f"Expected venv under {temp}, got: {venv}")
|
||||||
|
if not venv.is_dir():
|
||||||
|
raise SystemExit(f"Venv directory does not exist: {venv}")
|
||||||
|
PY
|
||||||
|
shell: bash
|
||||||
|
- name: Verify packages can be installed
|
||||||
|
run: uv pip install pip
|
||||||
|
shell: bash
|
||||||
|
- name: Verify python runs from custom venv
|
||||||
|
run: |
|
||||||
|
python - <<'PY'
|
||||||
|
import sys
|
||||||
|
if "custom-venv" not in sys.executable:
|
||||||
|
raise SystemExit(f"Python is not running from custom venv: {sys.executable}")
|
||||||
|
PY
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
test-debian-unstable:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: debian:unstable
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- name: Install latest version
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
- run: uv sync
|
||||||
|
working-directory: __tests__/fixtures/uv-project
|
||||||
|
|
||||||
test-musl:
|
test-musl:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: alpine
|
container: alpine
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install latest version
|
- name: Install latest version
|
||||||
@@ -429,7 +475,7 @@ jobs:
|
|||||||
- os: windows-2025
|
- os: windows-2025
|
||||||
expected-os: "windows-2025"
|
expected-os: "windows-2025"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup uv
|
- name: Setup uv
|
||||||
@@ -453,9 +499,9 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
enable-cache: ["true", "false", "auto"]
|
enable-cache: ["true", "false", "auto"]
|
||||||
os: ["ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest"]
|
os: ["ubuntu-latest", "windows-latest"]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
@@ -471,10 +517,10 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
enable-cache: ["true", "false", "auto"]
|
enable-cache: ["true", "false", "auto"]
|
||||||
os: ["ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest"]
|
os: ["ubuntu-latest", "windows-latest"]
|
||||||
needs: test-setup-cache
|
needs: test-setup-cache
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Restore with cache
|
- name: Restore with cache
|
||||||
@@ -493,7 +539,7 @@ jobs:
|
|||||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||||
shell: bash
|
shell: bash
|
||||||
- name: Cache was not hit
|
- name: Cache was not hit
|
||||||
if: ${{ matrix.enable-cache == 'false' || (matrix.enable-cache == 'auto' && matrix.os == 'selfhosted-ubuntu-arm64') }}
|
if: ${{ matrix.enable-cache == 'false' }}
|
||||||
run: |
|
run: |
|
||||||
if [ "$CACHE_HIT" == "true" ]; then
|
if [ "$CACHE_HIT" == "true" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
@@ -508,7 +554,7 @@ jobs:
|
|||||||
test-setup-cache-requirements-txt:
|
test-setup-cache-requirements-txt:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
@@ -524,7 +570,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: test-setup-cache-requirements-txt
|
needs: test-setup-cache-requirements-txt
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Restore with cache
|
- name: Restore with cache
|
||||||
@@ -548,7 +594,7 @@ jobs:
|
|||||||
test-setup-cache-dependency-glob:
|
test-setup-cache-dependency-glob:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
@@ -565,7 +611,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: test-setup-cache-dependency-glob
|
needs: test-setup-cache-dependency-glob
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Change pyproject.toml
|
- name: Change pyproject.toml
|
||||||
@@ -593,7 +639,7 @@ jobs:
|
|||||||
test-setup-cache-save-cache-false:
|
test-setup-cache-save-cache-false:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
@@ -609,7 +655,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: test-setup-cache-save-cache-false
|
needs: test-setup-cache-save-cache-false
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Restore with cache
|
- name: Restore with cache
|
||||||
@@ -629,7 +675,7 @@ jobs:
|
|||||||
test-setup-cache-restore-cache-false:
|
test-setup-cache-restore-cache-false:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
@@ -644,7 +690,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: test-setup-cache-restore-cache-false
|
needs: test-setup-cache-restore-cache-false
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Restore with cache
|
- name: Restore with cache
|
||||||
@@ -670,11 +716,9 @@ jobs:
|
|||||||
expected-cache-dir: "/home/runner/work/_temp/setup-uv-cache"
|
expected-cache-dir: "/home/runner/work/_temp/setup-uv-cache"
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
expected-cache-dir: "D:\\a\\_temp\\setup-uv-cache"
|
expected-cache-dir: "D:\\a\\_temp\\setup-uv-cache"
|
||||||
- os: selfhosted-ubuntu-arm64
|
|
||||||
expected-cache-dir: "/home/ubuntu/.cache/uv"
|
|
||||||
runs-on: ${{ matrix.inputs.os }}
|
runs-on: ${{ matrix.inputs.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
@@ -692,7 +736,7 @@ jobs:
|
|||||||
test-cache-local-cache-disabled:
|
test-cache-local-cache-disabled:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup without cache
|
- name: Setup without cache
|
||||||
@@ -711,7 +755,7 @@ jobs:
|
|||||||
test-cache-local-cache-disabled-but-explicit-path:
|
test-cache-local-cache-disabled-but-explicit-path:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup without cache
|
- name: Setup without cache
|
||||||
@@ -728,99 +772,10 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
test-setup-cache-local:
|
|
||||||
runs-on: selfhosted-ubuntu-arm64
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: Setup with cache
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
enable-cache: true
|
|
||||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
|
|
||||||
cache-local-path: /tmp/uv-cache
|
|
||||||
- run: uv sync
|
|
||||||
working-directory: __tests__/fixtures/uv-project
|
|
||||||
test-restore-cache-local:
|
|
||||||
runs-on: selfhosted-ubuntu-arm64
|
|
||||||
needs: test-setup-cache-local
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: Restore with cache
|
|
||||||
id: restore
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
enable-cache: true
|
|
||||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
|
|
||||||
cache-local-path: /tmp/uv-cache
|
|
||||||
- name: Cache was hit
|
|
||||||
run: |
|
|
||||||
if [ "$CACHE_HIT" != "true" ]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
env:
|
|
||||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
|
||||||
- run: uv sync
|
|
||||||
working-directory: __tests__/fixtures/uv-project
|
|
||||||
|
|
||||||
test-tilde-expansion-cache-local-path:
|
|
||||||
runs-on: selfhosted-ubuntu-arm64
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: Create cache directory
|
|
||||||
run: mkdir -p ~/uv-cache
|
|
||||||
shell: bash
|
|
||||||
- name: Setup with cache
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
cache-local-path: ~/uv-cache/cache-local-path
|
|
||||||
- run: uv sync
|
|
||||||
working-directory: __tests__/fixtures/uv-project
|
|
||||||
|
|
||||||
test-tilde-expansion-cache-dependency-glob:
|
|
||||||
runs-on: selfhosted-ubuntu-arm64
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: Create cache directory
|
|
||||||
run: mkdir -p ~/uv-cache
|
|
||||||
shell: bash
|
|
||||||
- name: Create cache dependency glob file
|
|
||||||
run: touch ~/uv-cache.glob
|
|
||||||
shell: bash
|
|
||||||
- name: Setup with cache
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
enable-cache: true
|
|
||||||
cache-local-path: ~/uv-cache/cache-dependency-glob
|
|
||||||
cache-dependency-glob: "~/uv-cache.glob"
|
|
||||||
- run: uv sync
|
|
||||||
working-directory: __tests__/fixtures/uv-project
|
|
||||||
|
|
||||||
cleanup-tilde-expansion-tests:
|
|
||||||
needs:
|
|
||||||
- test-tilde-expansion-cache-local-path
|
|
||||||
- test-tilde-expansion-cache-dependency-glob
|
|
||||||
if: always()
|
|
||||||
runs-on: selfhosted-ubuntu-arm64
|
|
||||||
steps:
|
|
||||||
- name: Remove cache directory
|
|
||||||
run: rm -rf ~/uv-cache
|
|
||||||
shell: bash
|
|
||||||
- name: Remove cache dependency glob file
|
|
||||||
run: rm -f ~/uv-cache.glob
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
test-no-python-version:
|
test-no-python-version:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Fake pyproject.toml at root
|
- name: Fake pyproject.toml at root
|
||||||
@@ -835,7 +790,7 @@ jobs:
|
|||||||
test-custom-manifest-file:
|
test-custom-manifest-file:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install from custom manifest file
|
- name: Install from custom manifest file
|
||||||
@@ -854,7 +809,7 @@ jobs:
|
|||||||
test-absolute-path:
|
test-absolute-path:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Create requirements.txt
|
- name: Create requirements.txt
|
||||||
@@ -874,7 +829,7 @@ jobs:
|
|||||||
test-relative-path:
|
test-relative-path:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: mkdir
|
- name: mkdir
|
||||||
@@ -898,7 +853,7 @@ jobs:
|
|||||||
test-cache-prune-force:
|
test-cache-prune-force:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Setup uv
|
- name: Setup uv
|
||||||
@@ -915,7 +870,7 @@ jobs:
|
|||||||
test-cache-dir-from-file:
|
test-cache-dir-from-file:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Verify uv cache dir is not populated
|
- name: Verify uv cache dir is not populated
|
||||||
@@ -937,10 +892,33 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
test-cache-python-missing-managed-install-dir:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
UV_PYTHON_INSTALL_DIR: /tmp/missing-uv-python
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- name: Setup uv with cache and python cache enabled
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
cache-python: true
|
||||||
|
python-version: "3.12"
|
||||||
|
cache-local-path: /tmp/setup-uv-cache
|
||||||
|
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-cache-python-missing-managed-install-dir
|
||||||
|
- name: Ensure uv cache dir exists so only python-cache behavior is tested
|
||||||
|
run: uv sync
|
||||||
|
working-directory: __tests__/fixtures/uv-project
|
||||||
|
shell: bash
|
||||||
|
- name: Ensure managed Python install dir does not exist and this does not break caching
|
||||||
|
run: rm -rf "$UV_PYTHON_INSTALL_DIR"
|
||||||
|
|
||||||
test-cache-python-installs:
|
test-cache-python-installs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Verify Python install dir is not populated
|
- name: Verify Python install dir is not populated
|
||||||
@@ -967,7 +945,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: test-cache-python-installs
|
needs: test-cache-python-installs
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Verify Python install dir does not exist
|
- name: Verify Python install dir does not exist
|
||||||
@@ -1007,11 +985,9 @@ jobs:
|
|||||||
expected-python-dir: "/home/runner/work/_temp/uv-python-dir"
|
expected-python-dir: "/home/runner/work/_temp/uv-python-dir"
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
expected-python-dir: "D:\\a\\_temp\\uv-python-dir"
|
expected-python-dir: "D:\\a\\_temp\\uv-python-dir"
|
||||||
- os: selfhosted-ubuntu-arm64
|
|
||||||
expected-python-dir: "/home/ubuntu/.local/share/uv/python"
|
|
||||||
runs-on: ${{ matrix.inputs.os }}
|
runs-on: ${{ matrix.inputs.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install latest version
|
- name: Install latest version
|
||||||
@@ -1030,7 +1006,7 @@ jobs:
|
|||||||
test-act:
|
test-act:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install act
|
- name: Install act
|
||||||
@@ -1045,11 +1021,11 @@ jobs:
|
|||||||
validate-typings:
|
validate-typings:
|
||||||
runs-on: "ubuntu-latest"
|
runs-on: "ubuntu-latest"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Validate typings
|
- name: Validate typings
|
||||||
uses: typesafegithub/github-actions-typing@184d97003b1300f6a10e286eb98c191e416ff02b # v2.2.1
|
uses: typesafegithub/github-actions-typing@9ddf35b71a482be7d8922b28e8d00df16b77e315 # v2.2.2
|
||||||
|
|
||||||
all-tests-passed:
|
all-tests-passed:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -1066,9 +1042,10 @@ jobs:
|
|||||||
- test-with-explicit-token
|
- test-with-explicit-token
|
||||||
- test-uvx
|
- test-uvx
|
||||||
- test-tool-install
|
- test-tool-install
|
||||||
- test-tilde-expansion-tool-dirs
|
|
||||||
- test-python-version
|
- test-python-version
|
||||||
- test-activate-environment
|
- test-activate-environment
|
||||||
|
- test-activate-environment-custom-path
|
||||||
|
- test-debian-unstable
|
||||||
- test-musl
|
- test-musl
|
||||||
- test-cache-key-os-version
|
- test-cache-key-os-version
|
||||||
- test-cache-local
|
- test-cache-local
|
||||||
@@ -1084,17 +1061,13 @@ jobs:
|
|||||||
- test-restore-cache-save-cache-false
|
- test-restore-cache-save-cache-false
|
||||||
- test-setup-cache-restore-cache-false
|
- test-setup-cache-restore-cache-false
|
||||||
- test-restore-cache-restore-cache-false
|
- test-restore-cache-restore-cache-false
|
||||||
- test-setup-cache-local
|
|
||||||
- test-restore-cache-local
|
|
||||||
- test-tilde-expansion-cache-local-path
|
|
||||||
- test-tilde-expansion-cache-dependency-glob
|
|
||||||
- cleanup-tilde-expansion-tests
|
|
||||||
- test-no-python-version
|
- test-no-python-version
|
||||||
- test-custom-manifest-file
|
- test-custom-manifest-file
|
||||||
- test-absolute-path
|
- test-absolute-path
|
||||||
- test-relative-path
|
- test-relative-path
|
||||||
- test-cache-prune-force
|
- test-cache-prune-force
|
||||||
- test-cache-dir-from-file
|
- test-cache-dir-from-file
|
||||||
|
- test-cache-python-missing-managed-install-dir
|
||||||
- test-cache-python-installs
|
- test-cache-python-installs
|
||||||
- test-restore-python-installs
|
- test-restore-python-installs
|
||||||
- test-python-install-dir
|
- test-python-install-dir
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
name: "Update known versions"
|
name: "Update known checksums"
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
schedule:
|
schedule:
|
||||||
@@ -15,19 +15,17 @@ jobs:
|
|||||||
contents: write
|
contents: write
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: true
|
persist-credentials: true
|
||||||
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||||
with:
|
with:
|
||||||
node-version: "20"
|
node-version: "20"
|
||||||
- name: Update known versions
|
- name: Update known checksums
|
||||||
id: update-known-versions
|
id: update-known-checksums
|
||||||
run:
|
run:
|
||||||
node dist/update-known-versions/index.js
|
node dist/update-known-checksums/index.js
|
||||||
src/download/checksum/known-checksums.ts
|
src/download/checksum/known-checksums.ts
|
||||||
version-manifest.json
|
|
||||||
${{ secrets.GITHUB_TOKEN }}
|
|
||||||
- name: Check for changes
|
- name: Check for changes
|
||||||
id: changes-exist
|
id: changes-exist
|
||||||
run: |
|
run: |
|
||||||
@@ -48,23 +46,23 @@ jobs:
|
|||||||
git config user.name "$GITHUB_ACTOR"
|
git config user.name "$GITHUB_ACTOR"
|
||||||
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||||
git add .
|
git add .
|
||||||
git commit -m "chore: update known versions for $LATEST_VERSION"
|
git commit -m "chore: update known checksums for $LATEST_VERSION"
|
||||||
git push origin HEAD:refs/heads/main
|
git push origin HEAD:refs/heads/main
|
||||||
env:
|
env:
|
||||||
LATEST_VERSION: ${{ steps.update-known-versions.outputs.latest-version }}
|
LATEST_VERSION: ${{ steps.update-known-checksums.outputs.latest-version }}
|
||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
if: ${{ steps.changes-exist.outputs.changes-exist == 'true' && steps.commit-and-push.outcome != 'success' }}
|
if: ${{ steps.changes-exist.outputs.changes-exist == 'true' && steps.commit-and-push.outcome != 'success' }}
|
||||||
uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v8.0.0
|
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
|
||||||
with:
|
with:
|
||||||
commit-message: "chore: update known checksums"
|
commit-message: "chore: update known checksums"
|
||||||
title:
|
title:
|
||||||
"chore: update known checksums for ${{
|
"chore: update known checksums for ${{
|
||||||
steps.update-known-versions.outputs.latest-version }}"
|
steps.update-known-checksums.outputs.latest-version }}"
|
||||||
body:
|
body:
|
||||||
"chore: update known checksums for ${{
|
"chore: update known checksums for ${{
|
||||||
steps.update-known-versions.outputs.latest-version }}"
|
steps.update-known-checksums.outputs.latest-version }}"
|
||||||
base: main
|
base: main
|
||||||
labels: "automated-pr,update-known-versions"
|
labels: "automated-pr,update-known-checksums"
|
||||||
branch: update-known-versions-pr
|
branch: update-known-checksums-pr
|
||||||
delete-branch: true
|
delete-branch: true
|
||||||
@@ -17,7 +17,7 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
with:
|
||||||
persist-credentials: true # needed for git push below
|
persist-credentials: true # needed for git push below
|
||||||
- name: Update Major Minor Tags
|
- name: Update Major Minor Tags
|
||||||
|
|||||||
13
AGENTS.md
Normal file
13
AGENTS.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# setup-uv agent notes
|
||||||
|
|
||||||
|
This repository is a TypeScript-based GitHub Action for installing `uv` in GitHub Actions workflows. It also supports restoring/saving the `uv` cache and optional managed-Python caching.
|
||||||
|
|
||||||
|
- The published action runs the committed bundles in `dist/`, not the TypeScript in `src/`. After any code change, run `npm run package` and commit the resulting `dist/` updates.
|
||||||
|
- Standard local validation is:
|
||||||
|
1. `npm ci --ignore-scripts`
|
||||||
|
2. `npm run all`
|
||||||
|
- `npm run check` uses Biome (not ESLint/Prettier) and rewrites files in place.
|
||||||
|
- User-facing changes are usually multi-file changes. If you add or change inputs, outputs, or behavior, update `action.yml`, the implementation in `src/`, tests in `__tests__/`, relevant docs/README, and then re-package.
|
||||||
|
- The easiest areas to regress are version resolution and caching. When touching them, add or update tests for precedence, cache invalidation, and cross-platform path behavior.
|
||||||
|
- Workflow edits have extra CI-only checks (`actionlint` and `zizmor`); `npm run all` does not cover them.
|
||||||
|
- Before finishing, make sure validation does not leave generated or formatting-only diffs behind.
|
||||||
26
README.md
26
README.md
@@ -59,13 +59,16 @@ Have a look under [Advanced Configuration](#advanced-configuration) for detailed
|
|||||||
# Use uv venv to activate a venv ready to be used by later steps
|
# Use uv venv to activate a venv ready to be used by later steps
|
||||||
activate-environment: "false"
|
activate-environment: "false"
|
||||||
|
|
||||||
|
# Custom path for the virtual environment when using activate-environment (default: .venv in the working directory)
|
||||||
|
venv-path: ""
|
||||||
|
|
||||||
# The directory to execute all commands in and look for files such as pyproject.toml
|
# The directory to execute all commands in and look for files such as pyproject.toml
|
||||||
working-directory: ""
|
working-directory: ""
|
||||||
|
|
||||||
# The checksum of the uv version to install
|
# The checksum of the uv version to install
|
||||||
checksum: ""
|
checksum: ""
|
||||||
|
|
||||||
# Used to increase the rate limit when retrieving versions and downloading uv
|
# Used when downloading uv from GitHub releases
|
||||||
github-token: ${{ github.token }}
|
github-token: ${{ github.token }}
|
||||||
|
|
||||||
# Enable uploading of the uv cache: true, false, or auto (enabled on GitHub-hosted runners, disabled on self-hosted runners)
|
# Enable uploading of the uv cache: true, false, or auto (enabled on GitHub-hosted runners, disabled on self-hosted runners)
|
||||||
@@ -111,7 +114,7 @@ Have a look under [Advanced Configuration](#advanced-configuration) for detailed
|
|||||||
# Custom path to set UV_TOOL_BIN_DIR to
|
# Custom path to set UV_TOOL_BIN_DIR to
|
||||||
tool-bin-dir: ""
|
tool-bin-dir: ""
|
||||||
|
|
||||||
# URL to the manifest file containing available versions and download URLs
|
# URL to a custom manifest file (NDJSON preferred, legacy JSON array is deprecated)
|
||||||
manifest-file: ""
|
manifest-file: ""
|
||||||
|
|
||||||
# Add problem matchers
|
# Add problem matchers
|
||||||
@@ -167,7 +170,7 @@ You can set the working directory with the `working-directory` input.
|
|||||||
This controls where we look for `pyproject.toml`, `uv.toml` and `.python-version` files
|
This controls where we look for `pyproject.toml`, `uv.toml` and `.python-version` files
|
||||||
which are used to determine the version of uv and python to install.
|
which are used to determine the version of uv and python to install.
|
||||||
|
|
||||||
It also controls where [the venv gets created](#activate-environment).
|
It also controls where [the venv gets created](#activate-environment), unless `venv-path` is set.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Install uv based on the config files in the working-directory
|
- name: Install uv based on the config files in the working-directory
|
||||||
@@ -187,10 +190,12 @@ For more advanced configuration options, see our detailed documentation:
|
|||||||
|
|
||||||
## How it works
|
## How it works
|
||||||
|
|
||||||
This action downloads uv from the uv repo's official
|
By default, this action resolves uv versions from
|
||||||
[GitHub Releases](https://github.com/astral-sh/uv) and uses the
|
[`astral-sh/versions`](https://github.com/astral-sh/versions) (NDJSON) and downloads uv from the
|
||||||
[GitHub Actions Toolkit](https://github.com/actions/toolkit) to cache it as a tool to speed up
|
official [GitHub Releases](https://github.com/astral-sh/uv).
|
||||||
consecutive runs on self-hosted runners.
|
|
||||||
|
It then uses the [GitHub Actions Toolkit](https://github.com/actions/toolkit) to cache uv as a
|
||||||
|
tool to speed up consecutive runs on self-hosted runners.
|
||||||
|
|
||||||
The installed version of uv is then added to the runner PATH, enabling later steps to invoke it
|
The installed version of uv is then added to the runner PATH, enabling later steps to invoke it
|
||||||
by name (`uv`).
|
by name (`uv`).
|
||||||
@@ -202,7 +207,8 @@ by name (`uv`).
|
|||||||
With `setup-uv`, you can install a specific version of Python using `uv python install` rather than
|
With `setup-uv`, you can install a specific version of Python using `uv python install` rather than
|
||||||
relying on `actions/setup-python`.
|
relying on `actions/setup-python`.
|
||||||
|
|
||||||
Using `actions/setup-python` can be faster, because GitHub caches the Python versions alongside the runner.
|
Using `actions/setup-python` can be faster (~1s), because GitHub includes several Python versions in the runner image
|
||||||
|
which are available to get activated by `actions/setup-python` without having to download them.
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
@@ -275,7 +281,7 @@ the cache will not be found and the warning `No GitHub Actions cache found for k
|
|||||||
While this might be irritating at first, it is expected behaviour and the cache will be created
|
While this might be irritating at first, it is expected behaviour and the cache will be created
|
||||||
and reused in later workflows.
|
and reused in later workflows.
|
||||||
|
|
||||||
The reason for the warning is, that we have to way to know if this is the first run of a new
|
The reason for the warning is that we have to way to know if this is the first run of a new
|
||||||
cache key or the user accidentally misconfigured the cache-dependency-glob
|
cache key or the user accidentally misconfigured the cache-dependency-glob
|
||||||
or cache-suffix (see [Caching documentation](docs/caching.md)) and the cache never gets used.
|
or cache-suffix (see [Caching documentation](docs/caching.md)) and the cache never gets used.
|
||||||
|
|
||||||
@@ -288,7 +294,7 @@ Running `actions/checkout` after `setup-uv` **is not supported**.
|
|||||||
|
|
||||||
### Does `setup-uv` also install my project or its dependencies automatically?
|
### Does `setup-uv` also install my project or its dependencies automatically?
|
||||||
|
|
||||||
No, `setup-uv` alone wont install any libraries from your `pyproject.toml` or `requirements.txt`, it only sets up `uv`.
|
No, `setup-uv` alone won't install any libraries from your `pyproject.toml` or `requirements.txt`, it only sets up `uv`.
|
||||||
You should run `uv sync` or `uv pip install .` separately, or use `uv run ...` to ensure necessary dependencies are installed.
|
You should run `uv sync` or `uv pip install .` separately, or use `uv run ...` to ensure necessary dependencies are installed.
|
||||||
|
|
||||||
### Why is a changed cache not detected and not the full cache uploaded?
|
### Why is a changed cache not detected and not the full cache uploaded?
|
||||||
|
|||||||
@@ -4,10 +4,11 @@ import {
|
|||||||
validateChecksum,
|
validateChecksum,
|
||||||
} from "../../../src/download/checksum/checksum";
|
} from "../../../src/download/checksum/checksum";
|
||||||
|
|
||||||
|
const validChecksum =
|
||||||
|
"f3da96ec7e995debee7f5d52ecd034dfb7074309a1da42f76429ecb814d813a3";
|
||||||
|
const filePath = "__tests__/fixtures/checksumfile";
|
||||||
|
|
||||||
test("checksum should match", async () => {
|
test("checksum should match", async () => {
|
||||||
const validChecksum =
|
|
||||||
"f3da96ec7e995debee7f5d52ecd034dfb7074309a1da42f76429ecb814d813a3";
|
|
||||||
const filePath = "__tests__/fixtures/checksumfile";
|
|
||||||
// string params don't matter only test the checksum mechanism, not known checksums
|
// string params don't matter only test the checksum mechanism, not known checksums
|
||||||
await validateChecksum(
|
await validateChecksum(
|
||||||
validChecksum,
|
validChecksum,
|
||||||
@@ -18,6 +19,16 @@ test("checksum should match", async () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("provided checksum beats known checksums", async () => {
|
||||||
|
await validateChecksum(
|
||||||
|
validChecksum,
|
||||||
|
filePath,
|
||||||
|
"x86_64",
|
||||||
|
"unknown-linux-gnu",
|
||||||
|
"0.3.0",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
type KnownVersionFixture = { version: string; known: boolean };
|
type KnownVersionFixture = { version: string; known: boolean };
|
||||||
|
|
||||||
it.each<KnownVersionFixture>([
|
it.each<KnownVersionFixture>([
|
||||||
|
|||||||
256
__tests__/download/download-version.test.ts
Normal file
256
__tests__/download/download-version.test.ts
Normal file
@@ -0,0 +1,256 @@
|
|||||||
|
import { beforeEach, describe, expect, it, jest } from "@jest/globals";
|
||||||
|
|
||||||
|
const mockInfo = jest.fn();
|
||||||
|
const mockWarning = jest.fn();
|
||||||
|
|
||||||
|
jest.mock("@actions/core", () => ({
|
||||||
|
debug: jest.fn(),
|
||||||
|
info: mockInfo,
|
||||||
|
warning: mockWarning,
|
||||||
|
}));
|
||||||
|
|
||||||
|
// biome-ignore lint/suspicious/noExplicitAny: Mock requires flexible typing in tests.
|
||||||
|
const mockDownloadTool = jest.fn<any>();
|
||||||
|
// biome-ignore lint/suspicious/noExplicitAny: Mock requires flexible typing in tests.
|
||||||
|
const mockExtractTar = jest.fn<any>();
|
||||||
|
// biome-ignore lint/suspicious/noExplicitAny: Mock requires flexible typing in tests.
|
||||||
|
const mockExtractZip = jest.fn<any>();
|
||||||
|
// biome-ignore lint/suspicious/noExplicitAny: Mock requires flexible typing in tests.
|
||||||
|
const mockCacheDir = jest.fn<any>();
|
||||||
|
|
||||||
|
jest.mock("@actions/tool-cache", () => {
|
||||||
|
const actual = jest.requireActual("@actions/tool-cache") as Record<
|
||||||
|
string,
|
||||||
|
unknown
|
||||||
|
>;
|
||||||
|
|
||||||
|
return {
|
||||||
|
...actual,
|
||||||
|
cacheDir: mockCacheDir,
|
||||||
|
downloadTool: mockDownloadTool,
|
||||||
|
extractTar: mockExtractTar,
|
||||||
|
extractZip: mockExtractZip,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
// biome-ignore lint/suspicious/noExplicitAny: Mock requires flexible typing in tests.
|
||||||
|
const mockGetLatestVersionFromNdjson = jest.fn<any>();
|
||||||
|
// biome-ignore lint/suspicious/noExplicitAny: Mock requires flexible typing in tests.
|
||||||
|
const mockGetAllVersionsFromNdjson = jest.fn<any>();
|
||||||
|
// biome-ignore lint/suspicious/noExplicitAny: Mock requires flexible typing in tests.
|
||||||
|
const mockGetArtifactFromNdjson = jest.fn<any>();
|
||||||
|
|
||||||
|
jest.mock("../../src/download/versions-client", () => ({
|
||||||
|
getAllVersions: mockGetAllVersionsFromNdjson,
|
||||||
|
getArtifact: mockGetArtifactFromNdjson,
|
||||||
|
getLatestVersion: mockGetLatestVersionFromNdjson,
|
||||||
|
}));
|
||||||
|
|
||||||
|
// biome-ignore lint/suspicious/noExplicitAny: Mock requires flexible typing in tests.
|
||||||
|
const mockGetAllManifestVersions = jest.fn<any>();
|
||||||
|
// biome-ignore lint/suspicious/noExplicitAny: Mock requires flexible typing in tests.
|
||||||
|
const mockGetLatestVersionInManifest = jest.fn<any>();
|
||||||
|
// biome-ignore lint/suspicious/noExplicitAny: Mock requires flexible typing in tests.
|
||||||
|
const mockGetManifestArtifact = jest.fn<any>();
|
||||||
|
|
||||||
|
jest.mock("../../src/download/version-manifest", () => ({
|
||||||
|
getAllVersions: mockGetAllManifestVersions,
|
||||||
|
getLatestKnownVersion: mockGetLatestVersionInManifest,
|
||||||
|
getManifestArtifact: mockGetManifestArtifact,
|
||||||
|
}));
|
||||||
|
|
||||||
|
// biome-ignore lint/suspicious/noExplicitAny: Mock requires flexible typing in tests.
|
||||||
|
const mockValidateChecksum = jest.fn<any>();
|
||||||
|
|
||||||
|
jest.mock("../../src/download/checksum/checksum", () => ({
|
||||||
|
validateChecksum: mockValidateChecksum,
|
||||||
|
}));
|
||||||
|
|
||||||
|
import {
|
||||||
|
downloadVersionFromManifest,
|
||||||
|
downloadVersionFromNdjson,
|
||||||
|
resolveVersion,
|
||||||
|
} from "../../src/download/download-version";
|
||||||
|
|
||||||
|
describe("download-version", () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
mockInfo.mockReset();
|
||||||
|
mockWarning.mockReset();
|
||||||
|
mockDownloadTool.mockReset();
|
||||||
|
mockExtractTar.mockReset();
|
||||||
|
mockExtractZip.mockReset();
|
||||||
|
mockCacheDir.mockReset();
|
||||||
|
mockGetLatestVersionFromNdjson.mockReset();
|
||||||
|
mockGetAllVersionsFromNdjson.mockReset();
|
||||||
|
mockGetArtifactFromNdjson.mockReset();
|
||||||
|
mockGetAllManifestVersions.mockReset();
|
||||||
|
mockGetLatestVersionInManifest.mockReset();
|
||||||
|
mockGetManifestArtifact.mockReset();
|
||||||
|
mockValidateChecksum.mockReset();
|
||||||
|
|
||||||
|
mockDownloadTool.mockResolvedValue("/tmp/downloaded");
|
||||||
|
mockExtractTar.mockResolvedValue("/tmp/extracted");
|
||||||
|
mockExtractZip.mockResolvedValue("/tmp/extracted");
|
||||||
|
mockCacheDir.mockResolvedValue("/tmp/cached");
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("resolveVersion", () => {
|
||||||
|
it("uses astral-sh/versions to resolve latest", async () => {
|
||||||
|
mockGetLatestVersionFromNdjson.mockResolvedValue("0.9.26");
|
||||||
|
|
||||||
|
const version = await resolveVersion("latest", undefined);
|
||||||
|
|
||||||
|
expect(version).toBe("0.9.26");
|
||||||
|
expect(mockGetLatestVersionFromNdjson).toHaveBeenCalledTimes(1);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("uses astral-sh/versions to resolve available versions", async () => {
|
||||||
|
mockGetAllVersionsFromNdjson.mockResolvedValue(["0.9.26", "0.9.25"]);
|
||||||
|
|
||||||
|
const version = await resolveVersion("^0.9.0", undefined);
|
||||||
|
|
||||||
|
expect(version).toBe("0.9.26");
|
||||||
|
expect(mockGetAllVersionsFromNdjson).toHaveBeenCalledTimes(1);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("does not fall back when astral-sh/versions fails", async () => {
|
||||||
|
mockGetLatestVersionFromNdjson.mockRejectedValue(
|
||||||
|
new Error("NDJSON unavailable"),
|
||||||
|
);
|
||||||
|
|
||||||
|
await expect(resolveVersion("latest", undefined)).rejects.toThrow(
|
||||||
|
"NDJSON unavailable",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("uses manifest-file when provided", async () => {
|
||||||
|
mockGetAllManifestVersions.mockResolvedValue(["0.9.26", "0.9.25"]);
|
||||||
|
|
||||||
|
const version = await resolveVersion(
|
||||||
|
"^0.9.0",
|
||||||
|
"https://example.com/custom.ndjson",
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(version).toBe("0.9.26");
|
||||||
|
expect(mockGetAllManifestVersions).toHaveBeenCalledWith(
|
||||||
|
"https://example.com/custom.ndjson",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("downloadVersionFromNdjson", () => {
|
||||||
|
it("fails when NDJSON metadata lookup fails", async () => {
|
||||||
|
mockGetArtifactFromNdjson.mockRejectedValue(
|
||||||
|
new Error("NDJSON unavailable"),
|
||||||
|
);
|
||||||
|
|
||||||
|
await expect(
|
||||||
|
downloadVersionFromNdjson(
|
||||||
|
"unknown-linux-gnu",
|
||||||
|
"x86_64",
|
||||||
|
"0.9.26",
|
||||||
|
undefined,
|
||||||
|
"token",
|
||||||
|
),
|
||||||
|
).rejects.toThrow("NDJSON unavailable");
|
||||||
|
|
||||||
|
expect(mockDownloadTool).not.toHaveBeenCalled();
|
||||||
|
expect(mockValidateChecksum).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("fails when no matching artifact exists in NDJSON metadata", async () => {
|
||||||
|
mockGetArtifactFromNdjson.mockResolvedValue(undefined);
|
||||||
|
|
||||||
|
await expect(
|
||||||
|
downloadVersionFromNdjson(
|
||||||
|
"unknown-linux-gnu",
|
||||||
|
"x86_64",
|
||||||
|
"0.9.26",
|
||||||
|
undefined,
|
||||||
|
"token",
|
||||||
|
),
|
||||||
|
).rejects.toThrow(
|
||||||
|
"Could not find artifact for version 0.9.26, arch x86_64, platform unknown-linux-gnu in https://raw.githubusercontent.com/astral-sh/versions/main/v1/uv.ndjson .",
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(mockDownloadTool).not.toHaveBeenCalled();
|
||||||
|
expect(mockValidateChecksum).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("uses built-in checksums for default NDJSON downloads", async () => {
|
||||||
|
mockGetArtifactFromNdjson.mockResolvedValue({
|
||||||
|
archiveFormat: "tar.gz",
|
||||||
|
sha256: "ndjson-checksum-that-should-be-ignored",
|
||||||
|
url: "https://example.com/uv.tar.gz",
|
||||||
|
});
|
||||||
|
|
||||||
|
await downloadVersionFromNdjson(
|
||||||
|
"unknown-linux-gnu",
|
||||||
|
"x86_64",
|
||||||
|
"0.9.26",
|
||||||
|
undefined,
|
||||||
|
"token",
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(mockValidateChecksum).toHaveBeenCalledWith(
|
||||||
|
undefined,
|
||||||
|
"/tmp/downloaded",
|
||||||
|
"x86_64",
|
||||||
|
"unknown-linux-gnu",
|
||||||
|
"0.9.26",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("downloadVersionFromManifest", () => {
|
||||||
|
it("uses manifest-file checksum metadata when checksum input is unset", async () => {
|
||||||
|
mockGetManifestArtifact.mockResolvedValue({
|
||||||
|
archiveFormat: "tar.gz",
|
||||||
|
checksum: "manifest-checksum",
|
||||||
|
downloadUrl: "https://example.com/custom-uv.tar.gz",
|
||||||
|
});
|
||||||
|
|
||||||
|
await downloadVersionFromManifest(
|
||||||
|
"https://example.com/custom.ndjson",
|
||||||
|
"unknown-linux-gnu",
|
||||||
|
"x86_64",
|
||||||
|
"0.9.26",
|
||||||
|
"",
|
||||||
|
"token",
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(mockValidateChecksum).toHaveBeenCalledWith(
|
||||||
|
"manifest-checksum",
|
||||||
|
"/tmp/downloaded",
|
||||||
|
"x86_64",
|
||||||
|
"unknown-linux-gnu",
|
||||||
|
"0.9.26",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("prefers checksum input over manifest-file checksum metadata", async () => {
|
||||||
|
mockGetManifestArtifact.mockResolvedValue({
|
||||||
|
archiveFormat: "tar.gz",
|
||||||
|
checksum: "manifest-checksum",
|
||||||
|
downloadUrl: "https://example.com/custom-uv.tar.gz",
|
||||||
|
});
|
||||||
|
|
||||||
|
await downloadVersionFromManifest(
|
||||||
|
"https://example.com/custom.ndjson",
|
||||||
|
"unknown-linux-gnu",
|
||||||
|
"x86_64",
|
||||||
|
"0.9.26",
|
||||||
|
"user-checksum",
|
||||||
|
"token",
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(mockValidateChecksum).toHaveBeenCalledWith(
|
||||||
|
"user-checksum",
|
||||||
|
"/tmp/downloaded",
|
||||||
|
"x86_64",
|
||||||
|
"unknown-linux-gnu",
|
||||||
|
"0.9.26",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
136
__tests__/download/version-manifest.test.ts
Normal file
136
__tests__/download/version-manifest.test.ts
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
import { beforeEach, describe, expect, it, jest } from "@jest/globals";
|
||||||
|
|
||||||
|
const mockWarning = jest.fn();
|
||||||
|
|
||||||
|
jest.mock("@actions/core", () => ({
|
||||||
|
debug: jest.fn(),
|
||||||
|
info: jest.fn(),
|
||||||
|
warning: mockWarning,
|
||||||
|
}));
|
||||||
|
|
||||||
|
// biome-ignore lint/suspicious/noExplicitAny: Mock requires flexible typing in tests.
|
||||||
|
const mockFetch = jest.fn<any>();
|
||||||
|
jest.mock("../../src/utils/fetch", () => ({
|
||||||
|
fetch: mockFetch,
|
||||||
|
}));
|
||||||
|
|
||||||
|
import {
|
||||||
|
clearManifestCache,
|
||||||
|
getAllVersions,
|
||||||
|
getLatestKnownVersion,
|
||||||
|
getManifestArtifact,
|
||||||
|
} from "../../src/download/version-manifest";
|
||||||
|
|
||||||
|
const legacyManifestResponse = JSON.stringify([
|
||||||
|
{
|
||||||
|
arch: "x86_64",
|
||||||
|
artifactName: "uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
downloadUrl:
|
||||||
|
"https://example.com/releases/download/0.7.12-alpha.1/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
platform: "unknown-linux-gnu",
|
||||||
|
version: "0.7.12-alpha.1",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
arch: "x86_64",
|
||||||
|
artifactName: "uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
downloadUrl:
|
||||||
|
"https://example.com/releases/download/0.7.13/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
platform: "unknown-linux-gnu",
|
||||||
|
version: "0.7.13",
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
|
const ndjsonManifestResponse = `{"version":"0.10.0","artifacts":[{"platform":"x86_64-unknown-linux-gnu","variant":"default","url":"https://example.com/releases/download/0.10.0/uv-x86_64-unknown-linux-gnu.tar.gz","archive_format":"tar.gz","sha256":"checksum-100"}]}
|
||||||
|
{"version":"0.9.30","artifacts":[{"platform":"x86_64-unknown-linux-gnu","variant":"default","url":"https://example.com/releases/download/0.9.30/uv-x86_64-unknown-linux-gnu.tar.gz","archive_format":"tar.gz","sha256":"checksum-0930"}]}`;
|
||||||
|
|
||||||
|
const multiVariantManifestResponse = `{"version":"0.10.0","artifacts":[{"platform":"x86_64-unknown-linux-gnu","variant":"managed-python","url":"https://example.com/releases/download/0.10.0/uv-x86_64-unknown-linux-gnu-managed-python.tar.gz","archive_format":"tar.gz","sha256":"checksum-managed"},{"platform":"x86_64-unknown-linux-gnu","variant":"default","url":"https://example.com/releases/download/0.10.0/uv-x86_64-unknown-linux-gnu-default.zip","archive_format":"zip","sha256":"checksum-default"}]}`;
|
||||||
|
|
||||||
|
function createMockResponse(
|
||||||
|
ok: boolean,
|
||||||
|
status: number,
|
||||||
|
statusText: string,
|
||||||
|
data: string,
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
ok,
|
||||||
|
status,
|
||||||
|
statusText,
|
||||||
|
text: async () => data,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
describe("version-manifest", () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
clearManifestCache();
|
||||||
|
mockFetch.mockReset();
|
||||||
|
mockWarning.mockReset();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("supports the legacy JSON manifest format", async () => {
|
||||||
|
mockFetch.mockResolvedValue(
|
||||||
|
createMockResponse(true, 200, "OK", legacyManifestResponse),
|
||||||
|
);
|
||||||
|
|
||||||
|
const latest = await getLatestKnownVersion(
|
||||||
|
"https://example.com/legacy.json",
|
||||||
|
);
|
||||||
|
const artifact = await getManifestArtifact(
|
||||||
|
"https://example.com/legacy.json",
|
||||||
|
"0.7.13",
|
||||||
|
"x86_64",
|
||||||
|
"unknown-linux-gnu",
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(latest).toBe("0.7.13");
|
||||||
|
expect(artifact).toEqual({
|
||||||
|
archiveFormat: undefined,
|
||||||
|
checksum: undefined,
|
||||||
|
downloadUrl:
|
||||||
|
"https://example.com/releases/download/0.7.13/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
});
|
||||||
|
expect(mockWarning).toHaveBeenCalledTimes(1);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("supports NDJSON manifests", async () => {
|
||||||
|
mockFetch.mockResolvedValue(
|
||||||
|
createMockResponse(true, 200, "OK", ndjsonManifestResponse),
|
||||||
|
);
|
||||||
|
|
||||||
|
const versions = await getAllVersions("https://example.com/custom.ndjson");
|
||||||
|
const artifact = await getManifestArtifact(
|
||||||
|
"https://example.com/custom.ndjson",
|
||||||
|
"0.10.0",
|
||||||
|
"x86_64",
|
||||||
|
"unknown-linux-gnu",
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(versions).toEqual(["0.10.0", "0.9.30"]);
|
||||||
|
expect(artifact).toEqual({
|
||||||
|
archiveFormat: "tar.gz",
|
||||||
|
checksum: "checksum-100",
|
||||||
|
downloadUrl:
|
||||||
|
"https://example.com/releases/download/0.10.0/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
});
|
||||||
|
expect(mockWarning).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("prefers the default variant when a manifest contains multiple variants", async () => {
|
||||||
|
mockFetch.mockResolvedValue(
|
||||||
|
createMockResponse(true, 200, "OK", multiVariantManifestResponse),
|
||||||
|
);
|
||||||
|
|
||||||
|
const artifact = await getManifestArtifact(
|
||||||
|
"https://example.com/multi-variant.ndjson",
|
||||||
|
"0.10.0",
|
||||||
|
"x86_64",
|
||||||
|
"unknown-linux-gnu",
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(artifact).toEqual({
|
||||||
|
archiveFormat: "zip",
|
||||||
|
checksum: "checksum-default",
|
||||||
|
downloadUrl:
|
||||||
|
"https://example.com/releases/download/0.10.0/uv-x86_64-unknown-linux-gnu-default.zip",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
169
__tests__/download/versions-client.test.ts
Normal file
169
__tests__/download/versions-client.test.ts
Normal file
@@ -0,0 +1,169 @@
|
|||||||
|
import { beforeEach, describe, expect, it, jest } from "@jest/globals";
|
||||||
|
|
||||||
|
// biome-ignore lint/suspicious/noExplicitAny: Mock requires flexible typing in tests.
|
||||||
|
const mockFetch = jest.fn<any>();
|
||||||
|
jest.mock("../../src/utils/fetch", () => ({
|
||||||
|
fetch: mockFetch,
|
||||||
|
}));
|
||||||
|
|
||||||
|
import {
|
||||||
|
clearCache,
|
||||||
|
fetchVersionData,
|
||||||
|
getAllVersions,
|
||||||
|
getArtifact,
|
||||||
|
getLatestVersion,
|
||||||
|
parseVersionData,
|
||||||
|
} from "../../src/download/versions-client";
|
||||||
|
|
||||||
|
const sampleNdjsonResponse = `{"version":"0.9.26","artifacts":[{"platform":"aarch64-apple-darwin","variant":"default","url":"https://github.com/astral-sh/uv/releases/download/0.9.26/uv-aarch64-apple-darwin.tar.gz","archive_format":"tar.gz","sha256":"fcf0a9ea6599c6ae28a4c854ac6da76f2c889354d7c36ce136ef071f7ab9721f"},{"platform":"x86_64-pc-windows-msvc","variant":"default","url":"https://github.com/astral-sh/uv/releases/download/0.9.26/uv-x86_64-pc-windows-msvc.zip","archive_format":"zip","sha256":"eb02fd95d8e0eed462b4a67ecdd320d865b38c560bffcda9a0b87ec944bdf036"}]}
|
||||||
|
{"version":"0.9.25","artifacts":[{"platform":"aarch64-apple-darwin","variant":"default","url":"https://github.com/astral-sh/uv/releases/download/0.9.25/uv-aarch64-apple-darwin.tar.gz","archive_format":"tar.gz","sha256":"606b3c6949d971709f2526fa0d9f0fd23ccf60e09f117999b406b424af18a6a6"}]}`;
|
||||||
|
|
||||||
|
const multiVariantNdjsonResponse = `{"version":"0.9.26","artifacts":[{"platform":"aarch64-apple-darwin","variant":"python-managed","url":"https://github.com/astral-sh/uv/releases/download/0.9.26/uv-aarch64-apple-darwin-managed.tar.gz","archive_format":"tar.gz","sha256":"managed-checksum"},{"platform":"aarch64-apple-darwin","variant":"default","url":"https://github.com/astral-sh/uv/releases/download/0.9.26/uv-aarch64-apple-darwin.zip","archive_format":"zip","sha256":"default-checksum"}]}`;
|
||||||
|
|
||||||
|
function createMockResponse(
|
||||||
|
ok: boolean,
|
||||||
|
status: number,
|
||||||
|
statusText: string,
|
||||||
|
data: string,
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
ok,
|
||||||
|
status,
|
||||||
|
statusText,
|
||||||
|
text: async () => data,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
describe("versions-client", () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
clearCache();
|
||||||
|
mockFetch.mockReset();
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("fetchVersionData", () => {
|
||||||
|
it("should fetch and parse NDJSON data", async () => {
|
||||||
|
mockFetch.mockResolvedValue(
|
||||||
|
createMockResponse(true, 200, "OK", sampleNdjsonResponse),
|
||||||
|
);
|
||||||
|
|
||||||
|
const versions = await fetchVersionData();
|
||||||
|
|
||||||
|
expect(versions).toHaveLength(2);
|
||||||
|
expect(versions[0].version).toBe("0.9.26");
|
||||||
|
expect(versions[1].version).toBe("0.9.25");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should throw error on failed fetch", async () => {
|
||||||
|
mockFetch.mockResolvedValue(
|
||||||
|
createMockResponse(false, 500, "Internal Server Error", ""),
|
||||||
|
);
|
||||||
|
|
||||||
|
await expect(fetchVersionData()).rejects.toThrow(
|
||||||
|
"Failed to fetch version data: 500 Internal Server Error",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should cache results", async () => {
|
||||||
|
mockFetch.mockResolvedValue(
|
||||||
|
createMockResponse(true, 200, "OK", sampleNdjsonResponse),
|
||||||
|
);
|
||||||
|
|
||||||
|
await fetchVersionData();
|
||||||
|
await fetchVersionData();
|
||||||
|
|
||||||
|
expect(mockFetch).toHaveBeenCalledTimes(1);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("getLatestVersion", () => {
|
||||||
|
it("should return the first version (newest)", async () => {
|
||||||
|
mockFetch.mockResolvedValue(
|
||||||
|
createMockResponse(true, 200, "OK", sampleNdjsonResponse),
|
||||||
|
);
|
||||||
|
|
||||||
|
const latest = await getLatestVersion();
|
||||||
|
|
||||||
|
expect(latest).toBe("0.9.26");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("getAllVersions", () => {
|
||||||
|
it("should return all version strings", async () => {
|
||||||
|
mockFetch.mockResolvedValue(
|
||||||
|
createMockResponse(true, 200, "OK", sampleNdjsonResponse),
|
||||||
|
);
|
||||||
|
|
||||||
|
const versions = await getAllVersions();
|
||||||
|
|
||||||
|
expect(versions).toEqual(["0.9.26", "0.9.25"]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("getArtifact", () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
mockFetch.mockResolvedValue(
|
||||||
|
createMockResponse(true, 200, "OK", sampleNdjsonResponse),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should find artifact by version and platform", async () => {
|
||||||
|
const artifact = await getArtifact("0.9.26", "aarch64", "apple-darwin");
|
||||||
|
|
||||||
|
expect(artifact).toEqual({
|
||||||
|
archiveFormat: "tar.gz",
|
||||||
|
sha256:
|
||||||
|
"fcf0a9ea6599c6ae28a4c854ac6da76f2c889354d7c36ce136ef071f7ab9721f",
|
||||||
|
url: "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should find windows artifact", async () => {
|
||||||
|
const artifact = await getArtifact("0.9.26", "x86_64", "pc-windows-msvc");
|
||||||
|
|
||||||
|
expect(artifact).toEqual({
|
||||||
|
archiveFormat: "zip",
|
||||||
|
sha256:
|
||||||
|
"eb02fd95d8e0eed462b4a67ecdd320d865b38c560bffcda9a0b87ec944bdf036",
|
||||||
|
url: "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should prefer the default variant when multiple artifacts share a platform", async () => {
|
||||||
|
mockFetch.mockResolvedValue(
|
||||||
|
createMockResponse(true, 200, "OK", multiVariantNdjsonResponse),
|
||||||
|
);
|
||||||
|
|
||||||
|
const artifact = await getArtifact("0.9.26", "aarch64", "apple-darwin");
|
||||||
|
|
||||||
|
expect(artifact).toEqual({
|
||||||
|
archiveFormat: "zip",
|
||||||
|
sha256: "default-checksum",
|
||||||
|
url: "https://github.com/astral-sh/uv/releases/download/0.9.26/uv-aarch64-apple-darwin.zip",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should return undefined for unknown version", async () => {
|
||||||
|
const artifact = await getArtifact("0.0.1", "aarch64", "apple-darwin");
|
||||||
|
|
||||||
|
expect(artifact).toBeUndefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should return undefined for unknown platform", async () => {
|
||||||
|
const artifact = await getArtifact(
|
||||||
|
"0.9.26",
|
||||||
|
"aarch64",
|
||||||
|
"unknown-linux-musl",
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(artifact).toBeUndefined();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("parseVersionData", () => {
|
||||||
|
it("should throw for malformed NDJSON", () => {
|
||||||
|
expect(() =>
|
||||||
|
parseVersionData('{"version":"0.1.0"', "test-source"),
|
||||||
|
).toThrow("Failed to parse version data from test-source");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -5,6 +5,7 @@ jest.mock("@actions/core", () => {
|
|||||||
(name: string) => (mockInputs[name] ?? "") === "true",
|
(name: string) => (mockInputs[name] ?? "") === "true",
|
||||||
),
|
),
|
||||||
getInput: jest.fn((name: string) => mockInputs[name] ?? ""),
|
getInput: jest.fn((name: string) => mockInputs[name] ?? ""),
|
||||||
|
warning: jest.fn(),
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -24,6 +25,7 @@ const ORIGINAL_HOME = process.env.HOME;
|
|||||||
describe("cacheDependencyGlob", () => {
|
describe("cacheDependencyGlob", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
jest.resetModules();
|
jest.resetModules();
|
||||||
|
jest.clearAllMocks();
|
||||||
mockInputs = {};
|
mockInputs = {};
|
||||||
process.env.HOME = "/home/testuser";
|
process.env.HOME = "/home/testuser";
|
||||||
});
|
});
|
||||||
@@ -84,3 +86,125 @@ describe("cacheDependencyGlob", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("tool directories", () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
jest.resetModules();
|
||||||
|
jest.clearAllMocks();
|
||||||
|
mockInputs = {};
|
||||||
|
process.env.HOME = "/home/testuser";
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
process.env.HOME = ORIGINAL_HOME;
|
||||||
|
});
|
||||||
|
|
||||||
|
it("expands tilde for tool-bin-dir and tool-dir", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["tool-bin-dir"] = "~/tool-bin-dir";
|
||||||
|
mockInputs["tool-dir"] = "~/tool-dir";
|
||||||
|
|
||||||
|
const { toolBinDir, toolDir } = await import("../../src/utils/inputs");
|
||||||
|
|
||||||
|
expect(toolBinDir).toBe("/home/testuser/tool-bin-dir");
|
||||||
|
expect(toolDir).toBe("/home/testuser/tool-dir");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("cacheLocalPath", () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
jest.resetModules();
|
||||||
|
jest.clearAllMocks();
|
||||||
|
mockInputs = {};
|
||||||
|
process.env.HOME = "/home/testuser";
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
process.env.HOME = ORIGINAL_HOME;
|
||||||
|
});
|
||||||
|
|
||||||
|
it("expands tilde in cache-local-path", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["cache-local-path"] = "~/uv-cache/cache-local-path";
|
||||||
|
|
||||||
|
const { CacheLocalSource, cacheLocalPath } = await import(
|
||||||
|
"../../src/utils/inputs"
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(cacheLocalPath).toEqual({
|
||||||
|
path: "/home/testuser/uv-cache/cache-local-path",
|
||||||
|
source: CacheLocalSource.Input,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("venvPath", () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
jest.resetModules();
|
||||||
|
jest.clearAllMocks();
|
||||||
|
mockInputs = {};
|
||||||
|
process.env.HOME = "/home/testuser";
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
process.env.HOME = ORIGINAL_HOME;
|
||||||
|
});
|
||||||
|
|
||||||
|
it("defaults to .venv in the working directory", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
const { venvPath } = await import("../../src/utils/inputs");
|
||||||
|
expect(venvPath).toBe("/workspace/.venv");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("resolves a relative venv-path", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["activate-environment"] = "true";
|
||||||
|
mockInputs["venv-path"] = "custom-venv";
|
||||||
|
const { venvPath } = await import("../../src/utils/inputs");
|
||||||
|
expect(venvPath).toBe("/workspace/custom-venv");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("normalizes venv-path with trailing slash", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["activate-environment"] = "true";
|
||||||
|
mockInputs["venv-path"] = "custom-venv/";
|
||||||
|
const { venvPath } = await import("../../src/utils/inputs");
|
||||||
|
expect(venvPath).toBe("/workspace/custom-venv");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("keeps an absolute venv-path unchanged", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["activate-environment"] = "true";
|
||||||
|
mockInputs["venv-path"] = "/tmp/custom-venv";
|
||||||
|
const { venvPath } = await import("../../src/utils/inputs");
|
||||||
|
expect(venvPath).toBe("/tmp/custom-venv");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("expands tilde in venv-path", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["activate-environment"] = "true";
|
||||||
|
mockInputs["venv-path"] = "~/.venv";
|
||||||
|
const { venvPath } = await import("../../src/utils/inputs");
|
||||||
|
expect(venvPath).toBe("/home/testuser/.venv");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("warns when venv-path is set but activate-environment is false", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["venv-path"] = "custom-venv";
|
||||||
|
|
||||||
|
const { activateEnvironment, venvPath } = await import(
|
||||||
|
"../../src/utils/inputs"
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(activateEnvironment).toBe(false);
|
||||||
|
expect(venvPath).toBe("/workspace/custom-venv");
|
||||||
|
|
||||||
|
const mockedCore = jest.requireMock("@actions/core") as {
|
||||||
|
warning: jest.Mock;
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(mockedCore.warning).toHaveBeenCalledWith(
|
||||||
|
"venv-path is only used when activate-environment is true",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ inputs:
|
|||||||
type: string
|
type: string
|
||||||
activate-environment:
|
activate-environment:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
venv-path:
|
||||||
|
type: string
|
||||||
working-directory:
|
working-directory:
|
||||||
type: string
|
type: string
|
||||||
checksum:
|
checksum:
|
||||||
|
|||||||
@@ -15,6 +15,9 @@ inputs:
|
|||||||
activate-environment:
|
activate-environment:
|
||||||
description: "Use uv venv to activate a venv ready to be used by later steps. "
|
description: "Use uv venv to activate a venv ready to be used by later steps. "
|
||||||
default: "false"
|
default: "false"
|
||||||
|
venv-path:
|
||||||
|
description: "Custom path for the virtual environment when using activate-environment. Defaults to '.venv' in the working directory."
|
||||||
|
default: ""
|
||||||
working-directory:
|
working-directory:
|
||||||
description: "The directory to execute all commands in and look for files such as pyproject.toml"
|
description: "The directory to execute all commands in and look for files such as pyproject.toml"
|
||||||
default: ${{ github.workspace }}
|
default: ${{ github.workspace }}
|
||||||
@@ -23,7 +26,7 @@ inputs:
|
|||||||
required: false
|
required: false
|
||||||
github-token:
|
github-token:
|
||||||
description:
|
description:
|
||||||
"Used to increase the rate limit when retrieving versions and downloading uv."
|
"Used when downloading uv from GitHub releases."
|
||||||
required: false
|
required: false
|
||||||
default: ${{ github.token }}
|
default: ${{ github.token }}
|
||||||
enable-cache:
|
enable-cache:
|
||||||
@@ -72,7 +75,7 @@ inputs:
|
|||||||
description: "Custom path to set UV_TOOL_BIN_DIR to."
|
description: "Custom path to set UV_TOOL_BIN_DIR to."
|
||||||
required: false
|
required: false
|
||||||
manifest-file:
|
manifest-file:
|
||||||
description: "URL to the manifest file containing available versions and download URLs."
|
description: "URL to a custom manifest file. Supports the astral-sh/versions NDJSON format and the legacy JSON array format (deprecated)."
|
||||||
required: false
|
required: false
|
||||||
add-problem-matchers:
|
add-problem-matchers:
|
||||||
description: "Add problem matchers."
|
description: "Add problem matchers."
|
||||||
|
|||||||
167
dist/save-cache/index.js
generated
vendored
167
dist/save-cache/index.js
generated
vendored
@@ -90852,11 +90852,25 @@ async function saveCache() {
|
|||||||
await pruneCache();
|
await pruneCache();
|
||||||
}
|
}
|
||||||
const actualCachePath = getUvCachePath();
|
const actualCachePath = getUvCachePath();
|
||||||
await saveCacheToKey(cacheKey, actualCachePath, restore_cache_1.STATE_CACHE_MATCHED_KEY, "uv cache", `Cache path ${actualCachePath} does not exist on disk. This likely indicates that there are no dependencies to cache. Consider disabling the cache input if it is not needed.`);
|
if (!fs.existsSync(actualCachePath)) {
|
||||||
|
if (inputs_1.ignoreNothingToCache) {
|
||||||
|
core.info("No cacheable uv cache paths were found. Ignoring because ignore-nothing-to-cache is enabled.");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw new Error(`Cache path ${actualCachePath} does not exist on disk. This likely indicates that there are no dependencies to cache. Consider disabling the cache input if it is not needed.`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
await saveCacheToKey(cacheKey, actualCachePath, restore_cache_1.STATE_CACHE_MATCHED_KEY, "uv cache");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (inputs_1.cachePython) {
|
if (inputs_1.cachePython) {
|
||||||
|
if (!fs.existsSync(inputs_1.pythonDir)) {
|
||||||
|
core.warning(`Python cache path ${inputs_1.pythonDir} does not exist on disk. Skipping Python cache save because no managed Python installation was found. If you want uv to install managed Python instead of using a system interpreter, set UV_PYTHON_PREFERENCE=only-managed.`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
const pythonCacheKey = `${cacheKey}-python`;
|
const pythonCacheKey = `${cacheKey}-python`;
|
||||||
await saveCacheToKey(pythonCacheKey, inputs_1.pythonDir, restore_cache_1.STATE_PYTHON_CACHE_MATCHED_KEY, "Python cache", `Python cache path ${inputs_1.pythonDir} does not exist on disk. This likely indicates that there are no Python installations to cache. Consider disabling the cache input if it is not needed.`);
|
await saveCacheToKey(pythonCacheKey, inputs_1.pythonDir, restore_cache_1.STATE_PYTHON_CACHE_MATCHED_KEY, "Python cache");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
async function pruneCache() {
|
async function pruneCache() {
|
||||||
@@ -90883,30 +90897,15 @@ function getUvCachePath() {
|
|||||||
}
|
}
|
||||||
return inputs_1.cacheLocalPath.path;
|
return inputs_1.cacheLocalPath.path;
|
||||||
}
|
}
|
||||||
async function saveCacheToKey(cacheKey, cachePath, stateKey, cacheName, pathNotExistErrorMessage) {
|
async function saveCacheToKey(cacheKey, cachePath, stateKey, cacheName) {
|
||||||
const matchedKey = core.getState(stateKey);
|
const matchedKey = core.getState(stateKey);
|
||||||
if (matchedKey === cacheKey) {
|
if (matchedKey === cacheKey) {
|
||||||
core.info(`${cacheName} hit occurred on key ${cacheKey}, not saving cache.`);
|
core.info(`${cacheName} hit occurred on key ${cacheKey}, not saving cache.`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
core.info(`Including ${cacheName} path: ${cachePath}`);
|
core.info(`Including ${cacheName} path: ${cachePath}`);
|
||||||
if (!fs.existsSync(cachePath) && !inputs_1.ignoreNothingToCache) {
|
await cache.saveCache([cachePath], cacheKey);
|
||||||
throw new Error(pathNotExistErrorMessage);
|
core.info(`${cacheName} saved with key: ${cacheKey}`);
|
||||||
}
|
|
||||||
try {
|
|
||||||
await cache.saveCache([cachePath], cacheKey);
|
|
||||||
core.info(`${cacheName} saved with key: ${cacheKey}`);
|
|
||||||
}
|
|
||||||
catch (e) {
|
|
||||||
if (e instanceof Error &&
|
|
||||||
e.message ===
|
|
||||||
"Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved.") {
|
|
||||||
core.info(`No cacheable ${cacheName} paths were found. Ignoring because ignore-nothing-to-save is enabled.`);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
run();
|
run();
|
||||||
|
|
||||||
@@ -90980,12 +90979,11 @@ function getConfigValueFromTomlFile(filePath, key) {
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.STATE_UV_VERSION = exports.STATE_UV_PATH = exports.TOOL_CACHE_NAME = exports.OWNER = exports.REPO = void 0;
|
exports.VERSIONS_NDJSON_URL = exports.STATE_UV_VERSION = exports.STATE_UV_PATH = exports.TOOL_CACHE_NAME = void 0;
|
||||||
exports.REPO = "uv";
|
|
||||||
exports.OWNER = "astral-sh";
|
|
||||||
exports.TOOL_CACHE_NAME = "uv";
|
exports.TOOL_CACHE_NAME = "uv";
|
||||||
exports.STATE_UV_PATH = "uv-path";
|
exports.STATE_UV_PATH = "uv-path";
|
||||||
exports.STATE_UV_VERSION = "uv-version";
|
exports.STATE_UV_VERSION = "uv-version";
|
||||||
|
exports.VERSIONS_NDJSON_URL = "https://raw.githubusercontent.com/astral-sh/versions/main/v1/uv.ndjson";
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
@@ -91032,7 +91030,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|||||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.resolutionStrategy = exports.addProblemMatchers = exports.manifestFile = exports.githubToken = exports.pythonDir = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.cachePython = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.saveCache = exports.restoreCache = exports.enableCache = exports.checkSum = exports.activateEnvironment = exports.pythonVersion = exports.versionFile = exports.version = exports.workingDirectory = exports.CacheLocalSource = void 0;
|
exports.resolutionStrategy = exports.addProblemMatchers = exports.manifestFile = exports.githubToken = exports.pythonDir = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.cachePython = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.saveCache = exports.restoreCache = exports.enableCache = exports.checkSum = exports.venvPath = exports.activateEnvironment = exports.pythonVersion = exports.versionFile = exports.version = exports.workingDirectory = exports.CacheLocalSource = void 0;
|
||||||
exports.getUvPythonDir = getUvPythonDir;
|
exports.getUvPythonDir = getUvPythonDir;
|
||||||
const node_path_1 = __importDefault(__nccwpck_require__(6760));
|
const node_path_1 = __importDefault(__nccwpck_require__(6760));
|
||||||
const core = __importStar(__nccwpck_require__(7484));
|
const core = __importStar(__nccwpck_require__(7484));
|
||||||
@@ -91049,6 +91047,7 @@ exports.version = core.getInput("version");
|
|||||||
exports.versionFile = getVersionFile();
|
exports.versionFile = getVersionFile();
|
||||||
exports.pythonVersion = core.getInput("python-version");
|
exports.pythonVersion = core.getInput("python-version");
|
||||||
exports.activateEnvironment = core.getBooleanInput("activate-environment");
|
exports.activateEnvironment = core.getBooleanInput("activate-environment");
|
||||||
|
exports.venvPath = getVenvPath();
|
||||||
exports.checkSum = core.getInput("checksum");
|
exports.checkSum = core.getInput("checksum");
|
||||||
exports.enableCache = getEnableCache();
|
exports.enableCache = getEnableCache();
|
||||||
exports.restoreCache = core.getInput("restore-cache") === "true";
|
exports.restoreCache = core.getInput("restore-cache") === "true";
|
||||||
@@ -91075,6 +91074,17 @@ function getVersionFile() {
|
|||||||
}
|
}
|
||||||
return versionFileInput;
|
return versionFileInput;
|
||||||
}
|
}
|
||||||
|
function getVenvPath() {
|
||||||
|
const venvPathInput = core.getInput("venv-path");
|
||||||
|
if (venvPathInput !== "") {
|
||||||
|
if (!exports.activateEnvironment) {
|
||||||
|
core.warning("venv-path is only used when activate-environment is true");
|
||||||
|
}
|
||||||
|
const tildeExpanded = expandTilde(venvPathInput);
|
||||||
|
return normalizePath(resolveRelativePath(tildeExpanded));
|
||||||
|
}
|
||||||
|
return normalizePath(resolveRelativePath(".venv"));
|
||||||
|
}
|
||||||
function getEnableCache() {
|
function getEnableCache() {
|
||||||
const enableCacheInput = core.getInput("enable-cache");
|
const enableCacheInput = core.getInput("enable-cache");
|
||||||
if (enableCacheInput === "auto") {
|
if (enableCacheInput === "auto") {
|
||||||
@@ -91203,6 +91213,16 @@ function expandTilde(input) {
|
|||||||
}
|
}
|
||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
|
function normalizePath(inputPath) {
|
||||||
|
const normalized = node_path_1.default.normalize(inputPath);
|
||||||
|
const root = node_path_1.default.parse(normalized).root;
|
||||||
|
// Remove any trailing path separators, except when the whole path is the root.
|
||||||
|
let trimmed = normalized;
|
||||||
|
while (trimmed.length > root.length && trimmed.endsWith(node_path_1.default.sep)) {
|
||||||
|
trimmed = trimmed.slice(0, -1);
|
||||||
|
}
|
||||||
|
return trimmed;
|
||||||
|
}
|
||||||
function resolveRelativePath(inputPath) {
|
function resolveRelativePath(inputPath) {
|
||||||
const hasNegation = inputPath.startsWith("!");
|
const hasNegation = inputPath.startsWith("!");
|
||||||
const pathWithoutNegation = hasNegation ? inputPath.substring(1) : inputPath;
|
const pathWithoutNegation = hasNegation ? inputPath.substring(1) : inputPath;
|
||||||
@@ -91286,6 +91306,7 @@ function getArch() {
|
|||||||
arm64: "aarch64",
|
arm64: "aarch64",
|
||||||
ia32: "i686",
|
ia32: "i686",
|
||||||
ppc64: "powerpc64le",
|
ppc64: "powerpc64le",
|
||||||
|
riscv64: "riscv64gc",
|
||||||
s390x: "s390x",
|
s390x: "s390x",
|
||||||
x64: "x86_64",
|
x64: "x86_64",
|
||||||
};
|
};
|
||||||
@@ -91360,9 +91381,15 @@ function getLinuxOSNameVersion() {
|
|||||||
const content = node_fs_1.default.readFileSync(file, "utf8");
|
const content = node_fs_1.default.readFileSync(file, "utf8");
|
||||||
const id = parseOsReleaseValue(content, "ID");
|
const id = parseOsReleaseValue(content, "ID");
|
||||||
const versionId = parseOsReleaseValue(content, "VERSION_ID");
|
const versionId = parseOsReleaseValue(content, "VERSION_ID");
|
||||||
|
// Fallback for rolling releases (debian:unstable/testing, arch, etc.)
|
||||||
|
// that don't have VERSION_ID but have VERSION_CODENAME
|
||||||
|
const versionCodename = parseOsReleaseValue(content, "VERSION_CODENAME");
|
||||||
if (id && versionId) {
|
if (id && versionId) {
|
||||||
return `${id}-${versionId}`;
|
return `${id}-${versionId}`;
|
||||||
}
|
}
|
||||||
|
if (id && versionCodename) {
|
||||||
|
return `${id}-${versionCodename}`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
// Try next file
|
// Try next file
|
||||||
@@ -93458,7 +93485,7 @@ function getStringEnd(str, seek) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// dist/date.js
|
// dist/date.js
|
||||||
var DATE_TIME_RE = /^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}:\d{2}(?:\.\d+)?)?(Z|[-+]\d{2}:\d{2})?$/i;
|
var DATE_TIME_RE = /^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i;
|
||||||
var TomlDate = class _TomlDate extends Date {
|
var TomlDate = class _TomlDate extends Date {
|
||||||
#hasDate = false;
|
#hasDate = false;
|
||||||
#hasTime = false;
|
#hasTime = false;
|
||||||
@@ -93553,13 +93580,14 @@ var TomlDate = class _TomlDate extends Date {
|
|||||||
var INT_REGEX = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/;
|
var INT_REGEX = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/;
|
||||||
var FLOAT_REGEX = /^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/;
|
var FLOAT_REGEX = /^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/;
|
||||||
var LEADING_ZERO = /^[+-]?0[0-9_]/;
|
var LEADING_ZERO = /^[+-]?0[0-9_]/;
|
||||||
var ESCAPE_REGEX = /^[0-9a-f]{4,8}$/i;
|
var ESCAPE_REGEX = /^[0-9a-f]{2,8}$/i;
|
||||||
var ESC_MAP = {
|
var ESC_MAP = {
|
||||||
b: "\b",
|
b: "\b",
|
||||||
t: " ",
|
t: " ",
|
||||||
n: "\n",
|
n: "\n",
|
||||||
f: "\f",
|
f: "\f",
|
||||||
r: "\r",
|
r: "\r",
|
||||||
|
e: "\x1B",
|
||||||
'"': '"',
|
'"': '"',
|
||||||
"\\": "\\"
|
"\\": "\\"
|
||||||
};
|
};
|
||||||
@@ -93594,8 +93622,8 @@ function parseString(str, ptr = 0, endPtr = str.length) {
|
|||||||
}
|
}
|
||||||
if (isEscape) {
|
if (isEscape) {
|
||||||
isEscape = false;
|
isEscape = false;
|
||||||
if (c === "u" || c === "U") {
|
if (c === "x" || c === "u" || c === "U") {
|
||||||
let code = str.slice(ptr, ptr += c === "u" ? 4 : 8);
|
let code = str.slice(ptr, ptr += c === "x" ? 2 : c === "u" ? 4 : 8);
|
||||||
if (!ESCAPE_REGEX.test(code)) {
|
if (!ESCAPE_REGEX.test(code)) {
|
||||||
throw new TomlError("invalid unicode escape", {
|
throw new TomlError("invalid unicode escape", {
|
||||||
toml: str,
|
toml: str,
|
||||||
@@ -93688,24 +93716,14 @@ function parseValue(value, toml, ptr, integersAsBigInt) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// dist/extract.js
|
// dist/extract.js
|
||||||
function sliceAndTrimEndOf(str, startPtr, endPtr, allowNewLines) {
|
function sliceAndTrimEndOf(str, startPtr, endPtr) {
|
||||||
let value = str.slice(startPtr, endPtr);
|
let value = str.slice(startPtr, endPtr);
|
||||||
let commentIdx = value.indexOf("#");
|
let commentIdx = value.indexOf("#");
|
||||||
if (commentIdx > -1) {
|
if (commentIdx > -1) {
|
||||||
skipComment(str, commentIdx);
|
skipComment(str, commentIdx);
|
||||||
value = value.slice(0, commentIdx);
|
value = value.slice(0, commentIdx);
|
||||||
}
|
}
|
||||||
let trimmed = value.trimEnd();
|
return [value.trimEnd(), commentIdx];
|
||||||
if (!allowNewLines) {
|
|
||||||
let newlineIdx = value.indexOf("\n", trimmed.length);
|
|
||||||
if (newlineIdx > -1) {
|
|
||||||
throw new TomlError("newlines are not allowed in inline tables", {
|
|
||||||
toml: str,
|
|
||||||
ptr: startPtr + newlineIdx
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return [trimmed, commentIdx];
|
|
||||||
}
|
}
|
||||||
function extractValue(str, ptr, end, depth, integersAsBigInt) {
|
function extractValue(str, ptr, end, depth, integersAsBigInt) {
|
||||||
if (depth === 0) {
|
if (depth === 0) {
|
||||||
@@ -93717,24 +93735,25 @@ function extractValue(str, ptr, end, depth, integersAsBigInt) {
|
|||||||
let c = str[ptr];
|
let c = str[ptr];
|
||||||
if (c === "[" || c === "{") {
|
if (c === "[" || c === "{") {
|
||||||
let [value, endPtr2] = c === "[" ? parseArray(str, ptr, depth, integersAsBigInt) : parseInlineTable(str, ptr, depth, integersAsBigInt);
|
let [value, endPtr2] = c === "[" ? parseArray(str, ptr, depth, integersAsBigInt) : parseInlineTable(str, ptr, depth, integersAsBigInt);
|
||||||
let newPtr = end ? skipUntil(str, endPtr2, ",", end) : endPtr2;
|
if (end) {
|
||||||
if (endPtr2 - newPtr && end === "}") {
|
endPtr2 = skipVoid(str, endPtr2);
|
||||||
let nextNewLine = indexOfNewline(str, endPtr2, newPtr);
|
if (str[endPtr2] === ",")
|
||||||
if (nextNewLine > -1) {
|
endPtr2++;
|
||||||
throw new TomlError("newlines are not allowed in inline tables", {
|
else if (str[endPtr2] !== end) {
|
||||||
|
throw new TomlError("expected comma or end of structure", {
|
||||||
toml: str,
|
toml: str,
|
||||||
ptr: nextNewLine
|
ptr: endPtr2
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return [value, newPtr];
|
return [value, endPtr2];
|
||||||
}
|
}
|
||||||
let endPtr;
|
let endPtr;
|
||||||
if (c === '"' || c === "'") {
|
if (c === '"' || c === "'") {
|
||||||
endPtr = getStringEnd(str, ptr);
|
endPtr = getStringEnd(str, ptr);
|
||||||
let parsed = parseString(str, ptr, endPtr);
|
let parsed = parseString(str, ptr, endPtr);
|
||||||
if (end) {
|
if (end) {
|
||||||
endPtr = skipVoid(str, endPtr, end !== "]");
|
endPtr = skipVoid(str, endPtr);
|
||||||
if (str[endPtr] && str[endPtr] !== "," && str[endPtr] !== end && str[endPtr] !== "\n" && str[endPtr] !== "\r") {
|
if (str[endPtr] && str[endPtr] !== "," && str[endPtr] !== end && str[endPtr] !== "\n" && str[endPtr] !== "\r") {
|
||||||
throw new TomlError("unexpected character encountered", {
|
throw new TomlError("unexpected character encountered", {
|
||||||
toml: str,
|
toml: str,
|
||||||
@@ -93746,7 +93765,7 @@ function extractValue(str, ptr, end, depth, integersAsBigInt) {
|
|||||||
return [parsed, endPtr];
|
return [parsed, endPtr];
|
||||||
}
|
}
|
||||||
endPtr = skipUntil(str, ptr, ",", end);
|
endPtr = skipUntil(str, ptr, ",", end);
|
||||||
let slice = sliceAndTrimEndOf(str, ptr, endPtr - +(str[endPtr - 1] === ","), end === "]");
|
let slice = sliceAndTrimEndOf(str, ptr, endPtr - +(str[endPtr - 1] === ","));
|
||||||
if (!slice[0]) {
|
if (!slice[0]) {
|
||||||
throw new TomlError("incomplete key-value declaration: no value specified", {
|
throw new TomlError("incomplete key-value declaration: no value specified", {
|
||||||
toml: str,
|
toml: str,
|
||||||
@@ -93836,17 +93855,16 @@ function parseInlineTable(str, ptr, depth, integersAsBigInt) {
|
|||||||
let res = {};
|
let res = {};
|
||||||
let seen = /* @__PURE__ */ new Set();
|
let seen = /* @__PURE__ */ new Set();
|
||||||
let c;
|
let c;
|
||||||
let comma = 0;
|
|
||||||
ptr++;
|
ptr++;
|
||||||
while ((c = str[ptr++]) !== "}" && c) {
|
while ((c = str[ptr++]) !== "}" && c) {
|
||||||
let err = { toml: str, ptr: ptr - 1 };
|
if (c === ",") {
|
||||||
if (c === "\n") {
|
throw new TomlError("expected value, found comma", {
|
||||||
throw new TomlError("newlines are not allowed in inline tables", err);
|
toml: str,
|
||||||
} else if (c === "#") {
|
ptr: ptr - 1
|
||||||
throw new TomlError("inline tables cannot contain comments", err);
|
});
|
||||||
} else if (c === ",") {
|
} else if (c === "#")
|
||||||
throw new TomlError("expected key-value, found comma", err);
|
ptr = skipComment(str, ptr);
|
||||||
} else if (c !== " " && c !== " ") {
|
else if (c !== " " && c !== " " && c !== "\n" && c !== "\r") {
|
||||||
let k;
|
let k;
|
||||||
let t = res;
|
let t = res;
|
||||||
let hasOwn = false;
|
let hasOwn = false;
|
||||||
@@ -93875,15 +93893,8 @@ function parseInlineTable(str, ptr, depth, integersAsBigInt) {
|
|||||||
seen.add(value);
|
seen.add(value);
|
||||||
t[k] = value;
|
t[k] = value;
|
||||||
ptr = valueEndPtr;
|
ptr = valueEndPtr;
|
||||||
comma = str[ptr - 1] === "," ? ptr - 1 : 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (comma) {
|
|
||||||
throw new TomlError("trailing commas are not allowed in inline tables", {
|
|
||||||
toml: str,
|
|
||||||
ptr: comma
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (!c) {
|
if (!c) {
|
||||||
throw new TomlError("unfinished table encountered", {
|
throw new TomlError("unfinished table encountered", {
|
||||||
toml: str,
|
toml: str,
|
||||||
@@ -94135,14 +94146,13 @@ function stringifyArrayTable(array, key, depth, numberAsFloat) {
|
|||||||
}
|
}
|
||||||
let res = "";
|
let res = "";
|
||||||
for (let i = 0; i < array.length; i++) {
|
for (let i = 0; i < array.length; i++) {
|
||||||
res += `[[${key}]]
|
res += `${res && "\n"}[[${key}]]
|
||||||
`;
|
`;
|
||||||
res += stringifyTable(array[i], key, depth, numberAsFloat);
|
res += stringifyTable(0, array[i], key, depth, numberAsFloat);
|
||||||
res += "\n\n";
|
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
function stringifyTable(obj, prefix, depth, numberAsFloat) {
|
function stringifyTable(tableKey, obj, prefix, depth, numberAsFloat) {
|
||||||
if (depth === 0) {
|
if (depth === 0) {
|
||||||
throw new Error("Could not stringify the object: maximum object depth exceeded");
|
throw new Error("Could not stringify the object: maximum object depth exceeded");
|
||||||
}
|
}
|
||||||
@@ -94158,13 +94168,10 @@ function stringifyTable(obj, prefix, depth, numberAsFloat) {
|
|||||||
}
|
}
|
||||||
let key = BARE_KEY.test(k) ? k : formatString(k);
|
let key = BARE_KEY.test(k) ? k : formatString(k);
|
||||||
if (type === "array" && isArrayOfTables(obj[k])) {
|
if (type === "array" && isArrayOfTables(obj[k])) {
|
||||||
tables += stringifyArrayTable(obj[k], prefix ? `${prefix}.${key}` : key, depth - 1, numberAsFloat);
|
tables += (tables && "\n") + stringifyArrayTable(obj[k], prefix ? `${prefix}.${key}` : key, depth - 1, numberAsFloat);
|
||||||
} else if (type === "object") {
|
} else if (type === "object") {
|
||||||
let tblKey = prefix ? `${prefix}.${key}` : key;
|
let tblKey = prefix ? `${prefix}.${key}` : key;
|
||||||
tables += `[${tblKey}]
|
tables += (tables && "\n") + stringifyTable(tblKey, obj[k], tblKey, depth - 1, numberAsFloat);
|
||||||
`;
|
|
||||||
tables += stringifyTable(obj[k], tblKey, depth - 1, numberAsFloat);
|
|
||||||
tables += "\n\n";
|
|
||||||
} else {
|
} else {
|
||||||
preamble += key;
|
preamble += key;
|
||||||
preamble += " = ";
|
preamble += " = ";
|
||||||
@@ -94173,14 +94180,20 @@ function stringifyTable(obj, prefix, depth, numberAsFloat) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return `${preamble}
|
if (tableKey && (preamble || !tables))
|
||||||
${tables}`.trim();
|
preamble = preamble ? `[${tableKey}]
|
||||||
|
${preamble}` : `[${tableKey}]`;
|
||||||
|
return preamble && tables ? `${preamble}
|
||||||
|
${tables}` : preamble || tables;
|
||||||
}
|
}
|
||||||
function stringify(obj, { maxDepth = 1e3, numbersAsFloat = false } = {}) {
|
function stringify(obj, { maxDepth = 1e3, numbersAsFloat = false } = {}) {
|
||||||
if (extendedTypeOf(obj) !== "object") {
|
if (extendedTypeOf(obj) !== "object") {
|
||||||
throw new TypeError("stringify can only be called with an object");
|
throw new TypeError("stringify can only be called with an object");
|
||||||
}
|
}
|
||||||
return stringifyTable(obj, "", maxDepth, numbersAsFloat);
|
let str = stringifyTable(0, obj, "", maxDepth, numbersAsFloat);
|
||||||
|
if (str[str.length - 1] !== "\n")
|
||||||
|
return str + "\n";
|
||||||
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
// dist/index.js
|
// dist/index.js
|
||||||
|
|||||||
5255
dist/setup/index.js
generated
vendored
5255
dist/setup/index.js
generated
vendored
@@ -91626,29 +91626,23 @@ const crypto = __importStar(__nccwpck_require__(7598));
|
|||||||
const fs = __importStar(__nccwpck_require__(3024));
|
const fs = __importStar(__nccwpck_require__(3024));
|
||||||
const core = __importStar(__nccwpck_require__(7484));
|
const core = __importStar(__nccwpck_require__(7484));
|
||||||
const known_checksums_1 = __nccwpck_require__(2764);
|
const known_checksums_1 = __nccwpck_require__(2764);
|
||||||
async function validateChecksum(checkSum, downloadPath, arch, platform, version) {
|
async function validateChecksum(checksum, downloadPath, arch, platform, version) {
|
||||||
let isValid;
|
const key = `${arch}-${platform}-${version}`;
|
||||||
if (checkSum !== undefined && checkSum !== "") {
|
const hasProvidedChecksum = checksum !== undefined && checksum !== "";
|
||||||
isValid = await validateFileCheckSum(downloadPath, checkSum);
|
const checksumToUse = hasProvidedChecksum ? checksum : known_checksums_1.KNOWN_CHECKSUMS[key];
|
||||||
|
if (checksumToUse === undefined) {
|
||||||
|
core.debug(`No checksum found for ${key}.`);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else {
|
const checksumSource = hasProvidedChecksum
|
||||||
core.debug("Checksum not provided. Checking known checksums.");
|
? "provided checksum"
|
||||||
const key = `${arch}-${platform}-${version}`;
|
: `KNOWN_CHECKSUMS entry for ${key}`;
|
||||||
if (key in known_checksums_1.KNOWN_CHECKSUMS) {
|
core.debug(`Validating checksum using ${checksumSource}.`);
|
||||||
const knownChecksum = known_checksums_1.KNOWN_CHECKSUMS[`${arch}-${platform}-${version}`];
|
const isValid = await validateFileCheckSum(downloadPath, checksumToUse);
|
||||||
core.debug(`Checking checksum for ${arch}-${platform}-${version}.`);
|
if (!isValid) {
|
||||||
isValid = await validateFileCheckSum(downloadPath, knownChecksum);
|
throw new Error(`Checksum for ${downloadPath} did not match ${checksumToUse}.`);
|
||||||
}
|
|
||||||
else {
|
|
||||||
core.debug(`No known checksum found for ${key}.`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isValid === false) {
|
|
||||||
throw new Error(`Checksum for ${downloadPath} did not match ${checkSum}.`);
|
|
||||||
}
|
|
||||||
if (isValid === true) {
|
|
||||||
core.debug(`Checksum for ${downloadPath} is valid.`);
|
|
||||||
}
|
}
|
||||||
|
core.debug(`Checksum for ${downloadPath} is valid.`);
|
||||||
}
|
}
|
||||||
async function validateFileCheckSum(filePath, expected) {
|
async function validateFileCheckSum(filePath, expected) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
@@ -91679,6 +91673,320 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|||||||
exports.KNOWN_CHECKSUMS = void 0;
|
exports.KNOWN_CHECKSUMS = void 0;
|
||||||
// AUTOGENERATED_DO_NOT_EDIT
|
// AUTOGENERATED_DO_NOT_EDIT
|
||||||
exports.KNOWN_CHECKSUMS = {
|
exports.KNOWN_CHECKSUMS = {
|
||||||
|
"aarch64-apple-darwin-0.10.9": "a92f61e9ac9b0f29668c15f56152e4a60143fca148ff5bfadb86718472c3f376",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.9": "5c2526844acf978eab784161c21604343141aa6c9ed22c237ae2f315648f049d",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.9": "cc0c5a8573e7d6d78aecb954e0a62b5c0d18217bb81f1e19363b428c57a9962a",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.9": "05b0d3087e913ebe11756365a90dd47c05d6728752fdbe129ad4c3ccd769826d",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.9": "6220fa3eb5f8212cae4ec3a5053060914aaa829549cf706dde9f9cc344f75f61",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.9": "0076eac165c2f7129627e2297478e7ffbb9465d9ae6a8961b2f53dcbd807473d",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.9": "f702e821b80e371e14987a886d58ee103c5948b7b096fa49a552624c24d7e073",
|
||||||
|
"i686-pc-windows-msvc-0.10.9": "034bf6b91390b9adc5f41a5946fdb618ebc8cef1574f3d95af9c12fe2bf9aaf3",
|
||||||
|
"i686-unknown-linux-gnu-0.10.9": "90d9168a4e7900463f9fd79a32eb1890081fb1e238d803404f6e17b2dcdcca7b",
|
||||||
|
"i686-unknown-linux-musl-0.10.9": "1d42b0d0a037b3d658b11ec889154686db3ab269ba2b789bdbc45d36e3549f34",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.9": "e804f4a7d0659e09ef806365f04bdd33c940603fab903e925402748d05dd109a",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.9": "1541596da45855e34202130027a613a2ace7d441e04d747cb4dd9f2590461c9a",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.9": "a589d4a8930c82fa7225daec19c632651b3c84f50f770efe758056b387e5f0dd",
|
||||||
|
"x86_64-apple-darwin-0.10.9": "9cc2de7d195fa157f98b306a8a1cb151ded93f488939b93363cebc8b9d598c28",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.9": "f58dc40896000229db7c52b8bdd931394040ef2ad59abd1eda841f6d70b13d7a",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.9": "20d79708222611fa540b5c9ed84f352bcd3937740e51aacc0f8b15b271c57594",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.9": "433e56874739e92c7cfd661ba9e5f287b376ca612c08c8194a41a98a13158aea",
|
||||||
|
"aarch64-apple-darwin-0.10.8": "c3a6fff5b6b4abddff863117878194e35dbc6b0267d61ad259ab9896f9b8dcbb",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.8": "20db25dc446f9a75d1cfde0a5f4b021e1b2eb266e600a610d32c7ca5d7ff83bf",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.8": "661860e954f87dcd823251191866af3486484d1a9df60eed56f4586ed7559e3d",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.8": "2ef0d0489e9e2a32f134ca80097fa36be4b486c4ab004706a1d6d0d57980ff07",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.8": "f6dfca333c566024f6feaef19adf7ce06675a1bc2fcadc2de640dd805112a518",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.8": "1bee8f88a7129f7922c43b0e091a7065d4e13a2934e599aa8a48f162cf9739aa",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.8": "ad0ca78991518fde1c4c42f8590e86f29db1f746cedb637f9dac1bb7de2e28da",
|
||||||
|
"i686-pc-windows-msvc-0.10.8": "db40952a0c16eb647cb3a06c8cc13712b72e5b6a2501bc080c7e00c0f0e4ad88",
|
||||||
|
"i686-unknown-linux-gnu-0.10.8": "3a78c54ffedce8eafd59a19a32eaec538924169fa4bf9d28d2d5841a7f604210",
|
||||||
|
"i686-unknown-linux-musl-0.10.8": "25cf70c12abded06c4c18db8fdba253776bc115ce28f849af6f6ef771e67d730",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.8": "3a4a158e645d04825872eb59ca60dd5026529e4f9fe5dd88987a45478301724d",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.8": "2349e786d2de14fbd72386f42ed9f398cad52f47f6cdd78e05f338a1faf1321c",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.8": "21de0f86838b06e6ebcc3cb6a079d49d3d3886e5b49822ae58e5758eb08a6710",
|
||||||
|
"x86_64-apple-darwin-0.10.8": "e0a1b22b039f8155765f5bc8c13df03a5f994a901901179791572e8e5f053281",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.8": "2e70ecd22196cbd9d14eefb700814bcafc5b75a0d8275b52e8402e5fe256d928",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.8": "f0c566b55683395a62fefb9261a060fa09824914b5682c3b9629fa154762ae2f",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.8": "a4e6ad1aecac61077de548d2cc9ccf2c2f1848863312b3b59fb0d2eb8d8a043c",
|
||||||
|
"aarch64-apple-darwin-0.10.7": "1eb4dcc5e0fc8669fa0b33cf1151b64ba3b8c26b60dceff4f7a686129e2af22b",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.7": "45ba7b72a7435343d650c73d21d65d2e8bdda47f6bd39af00e37f3cb70aa79ef",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.7": "20efc27d946860093650bcf26096a016b10fdaf03b13c33b75fbde02962beea9",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.7": "115291f9943531a3b63db3a2eabda8b74b8da4831551679382cb309c9debd9f7",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.7": "3ea331cd68f28235e13639d5400341a3893d0455f2473a74a9926b7d62cb739c",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.7": "2e2f88cc5a7b49282c9aa05cfe03e3b8b0a044e90981062fbeb60a7aeba188ca",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.7": "27319e842d802c5c73be52f3774999d79d0f28f37984090998560fd925133375",
|
||||||
|
"i686-pc-windows-msvc-0.10.7": "a7960473a473ee5907a55fccb8c645e24c1da7d39076aaef652b819e3a26a28b",
|
||||||
|
"i686-unknown-linux-gnu-0.10.7": "1a22aa0d2268a9a6fb2e5f092ca3d1ef7c14f96c3b4fd546226814f376e59d73",
|
||||||
|
"i686-unknown-linux-musl-0.10.7": "75c2cc60675fb6f846b394c3f7b51f77c08f0981abf5cfcb5e27cfbb2f5837e0",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.7": "7398686962b966959c32e7fbfd2868fbac38491ff0d86033d7c8bbb826a04026",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.7": "39abc60403fdcf5c681b63c967059d42aea58a81ffb092d6dda767390222a4b0",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.7": "281ae4c1343e0c5f9775358690d40e00edbf63ca788b4d8b6574a0b5cba624f4",
|
||||||
|
"x86_64-apple-darwin-0.10.7": "4fed9d4f4608fb3850db714ee37244436f850a2b6e485bc510795679c2d08866",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.7": "8881afb877996a1373a12e816395122a8d39a3ac06cd066272acdb49510cf0fe",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.7": "9ac6cee4e379a5abfca06e78a777b26b7ba1f81cb7935b97054d80d85ac00774",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.7": "992529add6024e67135b1c80617abd2eca7be2cf0b99b3911f923de815bd8dc1",
|
||||||
|
"aarch64-apple-darwin-0.10.6": "3993249d8f51deaf34cfce037e57e294e82267ff1f9dc45b7983a17afaf065b4",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.6": "e431c9a4f8d66e872f6640500cbbf1af20418720b78ac01404399ac810ef2e46",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.6": "9380705294a85e3e634570abddd5b2577900c1873c29b790c7abc56a81dce4bc",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.6": "7de7aa836fd54ff930fa5e63bc04da35e2fbd72889d6258e153479c44d08b863",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.6": "9d0b55a3b0aff97884f49e15739a9936eb33a1b59a5bf1b3c7ce4d9e517d4d76",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.6": "165400192202ee2487bcee4429a5e5a2fddfe8fef8985fb548e2a89fda6b2376",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.6": "1cf58447f2003122f83b1a34aee94429cb2686010c3502bfa21c8116e09d5bdf",
|
||||||
|
"i686-pc-windows-msvc-0.10.6": "ec189db03b89262e6089e4fb895af6116b964234cf4166b330e258aaf7f999b4",
|
||||||
|
"i686-unknown-linux-gnu-0.10.6": "f72a88d489fc424aca69c1cbf175bb5aeae649aa8c55b092628e5e553b481dd5",
|
||||||
|
"i686-unknown-linux-musl-0.10.6": "94471f51aedbfaceb495949d5ce37d44352b2dfea45b61399870c39a881681fc",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.6": "72d504553fc7150177bbf57b585c850cb4d695ddd848b9ba1416ac122eb88293",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.6": "8f8a966d1f911f39334581a933805a30cdec5a7c1d4f580e03973ff45bf9b6ad",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.6": "5ed60237762862b05561d02b7f095268897d0561e87dca5986b04319265bc2cf",
|
||||||
|
"x86_64-apple-darwin-0.10.6": "d7647571fb17a5107d4d23cc190418039c157fd7361ddb59bc6f8127a49e3eac",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.6": "b27eb789f281e398a82197477de727fc8faf08605152115686da2c3cba0d25f7",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.6": "aaa402e19d14a6b9a4267fcf4ec35380f804c68923525cea67cd6ee05bb4e930",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.6": "01d6ce770da88ce6445acb0a8764c8b1634c9f69c728dca68b19fc7a893f72b9",
|
||||||
|
"aarch64-apple-darwin-0.10.5": "796c2d264c6aba3e1179249438a9fa2fe64140748f0e5b6681e38218ab6238f1",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.5": "7f88f279e271cd76a6e07fe1ad711cbdf15374206ab79f55adadb818ebbd8e43",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.5": "dfa82b047456c646c50ba769af81a6b7ba20aaf5feee96e61554861db8db5809",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.5": "cf01a960442b9aff4cadc4d27c691086151e9289b5b9fbd0dc41ecfcff1db872",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.5": "abe18becc57fe3c3bf55e62b4b7be0231cb4dbb941fdb3f4f9132703b1f4868c",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.5": "46d79f64e88cb339160cf90f6df51ea14795960840fb4fca8aa61af8cddd8187",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.5": "13444ea0cc650551c4c455af73ac27a77185064275475b2999c627158b7455f4",
|
||||||
|
"i686-pc-windows-msvc-0.10.5": "67d96bae5ef30b9f1e201622505591601b936996ceea84c36fce5e577db5a442",
|
||||||
|
"i686-unknown-linux-gnu-0.10.5": "56eb897036b8607bb7516349388bef6c83004ae05e694ec34e1bae69f3a0f237",
|
||||||
|
"i686-unknown-linux-musl-0.10.5": "b0be10f5c16a987294a806dfd3927348456fca8b465377c99e0d167792b842dc",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.5": "c7f4049b7e26a43107351808f7748c3bc0dfdf118c29f4b1470b69be15fef45b",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.5": "756c43f4844953a2241c4254d268335b3bd35ca81856e8e06c7d4826466e87ce",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.5": "fbccde48aec139fc99558bd022ec3cab15f607b9b5e0efc0279c6145ab5ecaf7",
|
||||||
|
"x86_64-apple-darwin-0.10.5": "84c4ce2902e2e840a54a75360b00f06ceffc6c26894bc5e73151a2c55d5fd043",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.5": "d5b3b04127eb6fb41ffca60c0da655124133b62b4b58e29cfc5435469a176e06",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.5": "bcb127225873baa5ebd23cf09f29996cc97c1091830c9933e2e320bf1429a584",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.5": "88aeea39c77b6b796ca6b19c0216a577b18095dc450972dac7872a307bb1e160",
|
||||||
|
"aarch64-apple-darwin-0.10.4": "a6852e4dc565c8fedcf5adcdf09fca7caf5347739bed512bd95b15dada36db51",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.4": "77f859cfc26181bdfb94087ce42336d9e2d9e0700bc42f6668445cde517198ce",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.4": "c84a6e6405715caa6e2f5ef8e5f29a5d0bc558a954e9f1b5c082b9d4708c222e",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.4": "82fc461031dafb130af761e7dbec1bcc51b826c2e664f5bf8bc4e4f8330320cd",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.4": "2050d9037a63975dafed987bdc7d2960a3b82345951c14193060fce20f9d31d8",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.4": "d1824ed14f3ad0e7cb7835b46bc0299859cd8141d039a66274a135ca9797bf9c",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.4": "3038fdf153a722941424c28ae76996d60589f7f626c2000eb6567b3c301100dd",
|
||||||
|
"i686-pc-windows-msvc-0.10.4": "b42379a65e9cec5863a22cf81810aec57281b08d426e70cc3b90320b996d84a7",
|
||||||
|
"i686-unknown-linux-gnu-0.10.4": "79821b1d6c035aa8dc32a45d41551a4f010b8e357c98df48c95c5cb5ec18a743",
|
||||||
|
"i686-unknown-linux-musl-0.10.4": "459315d7dba39b0297f44104fad1c93fa5cf866f91b533bba02d58f1e54129ad",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.4": "7b315d9580ef574a1d0ff2023c16e5ac8a164feb1e998f33ed144dfd4c4fc125",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.4": "101a71c072986929c410d4839babf66851563fd855b36c1dd7ffbbf5fbedce36",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.4": "59a50f14892c82de8f3e7a1a63ebc0ef98778085e4bb35ec99323f5009232fe2",
|
||||||
|
"x86_64-apple-darwin-0.10.4": "df6dd1c3ebeab4369a098c516c15c233c62bf789a40a4864b30dad1d38d7604e",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.4": "0f0e22d7507633bfb38d9b42fb6a0341f1f74b8e80b070a31231c354812432a3",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.4": "6b52a47358deea1c5e173278bf46b2b489747a59ae31f2a4362ed5c6c1c269f7",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.4": "18adf097cea30a165ba086c1e72659fec3c5aca056a560e7c39e0164ac871196",
|
||||||
|
"aarch64-apple-darwin-0.10.3": "ed2a08079527dafae4943fee80162ed750286657901e642eba4c9de928706df8",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.3": "48243b8acbb31d0081e00878ee3b28535ed9f28ab8b27960b88aed8e1d6dd16a",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.3": "cce7d1e4c34e22955cd647b256409b6504f4ae72acf190a6f26189efefbc9a9d",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.3": "a98f8decf21204d40acb512b0e08a803ed718c640a97f3c095864967463d5b15",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.3": "e4b3c6dc59cd65125eda09e6c24b97fca71647df979f8963662807dc6a53e165",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.3": "1d453ef56127d3aab3ea7f383b27765840e0bdc0b683347191e4cbc26272de2e",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.3": "d2484df75c9ba4c7e9750da00c4c4276b65c088d8b551b63717d5d9aa227ffa5",
|
||||||
|
"i686-pc-windows-msvc-0.10.3": "51f745bcab5f77fe75e6f221e3e55a4bddf54824e634ac6f229132880506ce7e",
|
||||||
|
"i686-unknown-linux-gnu-0.10.3": "e82e76ced718091d946eed30880728cf39f05b85f4f82c483a7dbf95f1663531",
|
||||||
|
"i686-unknown-linux-musl-0.10.3": "0baca51f61729c6911d1d055c2e6dee5d11d88f6abbcd1ff801460f46880dc8d",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.3": "cf4969ba97af3a53d1e4dc8a28441b79e78a8d9a9d41854e88b425f6b6fc6179",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.3": "79b6b362e48c80e5b7d251fb96546d8ee52dd3458e01518cef969f757b59502b",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.3": "fc969d6011e4ffd0752abb5d812fc453649a7394c3f08a11556c9960891e359c",
|
||||||
|
"x86_64-apple-darwin-0.10.3": "e8071cedb9986724ca3d70020b4460a85a274394b378c0e8eb1e8f9e33402ff9",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.3": "d029201a3eebaa8a0001fa762ee44ca14a9cb3cae4d59fc3fd69857da03a6f8c",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.3": "c60b9956a0e6727f0ddd881c303a706c6408b2047f3a8fa4d1454a826338ccdc",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.3": "126496b606129eda426dac502af0d910d895f3db81da28efc49b18edf5557741",
|
||||||
|
"aarch64-apple-darwin-0.10.2": "3828b2de196687f60e9d199aea8b504299629300831eea0935ff3fe339903d0a",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.2": "826e4ee3a03ec245e54c449e272fdf8aab749e039cc49c950ad43cc13702221f",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.2": "4998f545234d52fc6f1280827d392f00a9278295050d59c53a776546dbf0124d",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.2": "685e47f8f88b6845a9fc2ca27c3d246c0f53af8c017daf8e98ac0a97fe20365b",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.2": "1c51ebc67e8e492fa549167a96e40bb21a2c2ccde8a8b440f9c8bc0e07f3d4a8",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.2": "45243fed8f587f11002f175216894c9c75e2f402324627b7e0855e670557ec14",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.2": "45b3d7eee7a3af2e4309b0bbe4886c6640b773f6500f0e0b662d84f4a5466f67",
|
||||||
|
"i686-pc-windows-msvc-0.10.2": "a828ee0a2f42d1384f79acd3edaf01956000e1ec5d18d9992d79e17d70d9aa6c",
|
||||||
|
"i686-unknown-linux-gnu-0.10.2": "7f64628a8a0869185eed24de4a02f4c8d19c99dec7363f383050ccb7474a76e9",
|
||||||
|
"i686-unknown-linux-musl-0.10.2": "8d1978ecfa37d2d71cbb0e2e75262e65c184d040130fe2dc331f25e044ed97b4",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.2": "9b7f8e3ced416276a9e6321369f69234552d9cbf39d68d96a67e85cee4cd611f",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.2": "1ad005a361293175170f3c193b50d5a5c7f1da631649236cd857721ce8c9cbde",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.2": "d4832c85f3e8e17f7ae4ced90059dc2b6927939a47fea3e92e5712e7148b9c09",
|
||||||
|
"x86_64-apple-darwin-0.10.2": "3cdbd038333cfe861ce04f3d91678547bf2e726224acf5f42d3f0affa6740e19",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.2": "493ebbe0e06128d6ee4905e1ed5e2a433fb0f7cfc08b0eaca9fab4ca76778ae1",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.2": "6aa4576c31f791c0b9d4739e256d07358d45e7535695287fec03cf6839e25512",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.2": "c162182ba7dd692794362d76dd183990d6e51553217954106da19bdb6ced211b",
|
||||||
|
"aarch64-apple-darwin-0.10.1": "37c101cd8a745a43d69bc3832c41866ab721467a1d58881f57b73b705abc2851",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.1": "9644d0e37c41c19aa65137a928bf6fad78dc887f820202c0cfcf010cceb416a0",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.1": "3731e98805ea6789188edec0dd97e673da195bf976a72db38f325f7c51cf5cdd",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.1": "ae9ae536be5b4d1cf7a6560d52a20711f267e7b21e23ee6cc538a4afa236b757",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.1": "af7994b58553156fb4acdac40b3f7b1b43260a76de96ca7123bdf861351675d4",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.1": "4f8857a779df69e2aa9df8ff35b6c34ef3ce45c13d2d4a0ae3957b0e68d322cc",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.1": "79d978b0e829cab83de4c78e80bd014f3210cf0a1a653d880d0aa6760baeaf80",
|
||||||
|
"i686-pc-windows-msvc-0.10.1": "c4e989d479f9fc229302345a64f272be3c249d5fff4a2e722aa3d73c381fb303",
|
||||||
|
"i686-unknown-linux-gnu-0.10.1": "0c4a17893df6e11991483277c5f0bee06d8ea60b6e11b349a9849bfe13a8c5cf",
|
||||||
|
"i686-unknown-linux-musl-0.10.1": "7219a96adde5316489886c0d74749b7248c2c4070170b8e153d9d3f8f9fdfa5e",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.1": "aa2ed9587a9ad5127662da9ceccaa747b941f37cbd9e6d9334c7c6c3286c9587",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.1": "bda96a9ff8be79f780ff4711a2515061fe80d6f135ba55a47c41e1c6739d048e",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.1": "091eeeecfcdb15a954f2488be6b89d8709709003ada81d215d6ca88145826049",
|
||||||
|
"x86_64-apple-darwin-0.10.1": "f61f1122193698a53fc2d4cc6fb5a5849b283817509778ac8f1a7d2a36a218de",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.1": "64c297ef1cd8e3a50966dee20cbe039564cd59e41186e0d1dd38fa4e627fc285",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.1": "8b5af2d678da1bdae80a5107c934f6ab010c6cdeb2de5b8e07568031d9486051",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.1": "d1a3b08dd9abf9e500541cadd0e2f4b144c99b9265fb00e500c2b5c82a3b4ee8",
|
||||||
|
"aarch64-apple-darwin-0.10.0": "82d4b99dc6ea686695b5ee142ceba03dd3e3eda2b414e94215ab7bce94972fbb",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.0": "614dd3c409d7fb5a98b516d532c98db9b7799a23fb450150e3784338a9ebd903",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.0": "c300afd5f2d31df039fe6a26a2d68a76b62832098c272a43e1e74ab9efd4fbd7",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.0": "edf1adb1d183730302f87eef9b71bc4e47b4b8058832c3393b0fbcd86f270510",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.0": "fea6d45bce1e7172192b4a7d3feb9f37c4198c243be1c573c8dacae765a32c53",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.0": "3e8ab76a515884c29c773e01360acb6da61a1351c630377b54ba58918d9673af",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.0": "85423cda078ed0313f993ddea6ac897e469885539ce156643ace982bbffb8109",
|
||||||
|
"i686-pc-windows-msvc-0.10.0": "b71bca0987dd12ea09ac6a0e52fdfa89f53601b6074be38366d0592b181f3001",
|
||||||
|
"i686-unknown-linux-gnu-0.10.0": "dbac897653b0d60fb863288587dbacb30140f9725a42718f2c017df7b2d2b3c3",
|
||||||
|
"i686-unknown-linux-musl-0.10.0": "56a211155275dd33731cbbb33aa915d3e7efa59d4436502edaca39ba436c157a",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.0": "677a414608c61e2ecd751364dae9209cc5b76019481968b99b5d5ad7258d2d77",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.0": "9da4019ecfd3440a5d0a0a957d8d5e4c6534ac1e3a10636d55266a22ab4135f8",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.0": "a1b9aa45c1a6b69066179e8d7e3f6e122e0f433ef2ad4e91c0acd1433a083c31",
|
||||||
|
"x86_64-apple-darwin-0.10.0": "664aed584c276f8d79cdc3b7685cd48f5d64657bd6840b06b4b2b0db731b9c99",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.0": "4037b444541f695cd2eb93188a9346de3e334af562381411deade0a31c7bf898",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.0": "230e328948c92dd1ebad83949c4d56e83813dfe9c6362a4c519e6a227973f1ae",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.0": "312d37f31b6f2c3bfc65668ba0efea9f1f9eaf7bc3209fe1a109e5cf861b95fa",
|
||||||
|
"aarch64-apple-darwin-0.9.30": "03a5d9ec7f7d588446b2ec226d13ff6300055e55365eca8f3fab39f342b0e805",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.30": "cfbc40baf1da11c55eff92ee008f5af3cdbb4c24c40ddb0bbd489b983fadf43f",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.30": "6aadf3c71600d594e16dabf382cc15282ead4c5ca768599b6bcb43c5004d9aa8",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.30": "b658b56957bceea742ca14f3ef28fb3542adbcedfb8bd5bd718ae255394ccd09",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.30": "5a7f4cd306363b734dba2d86eb760812cb1211254d36ace01860f9e783df1900",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.30": "bf8d9c2f1b4d0eee9bfb689b5483b1bd4b0b76acbeaaa4d0d68b132574c606ff",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.30": "8715a9da643d9e6cb984c2d3e00480849f93f11251d1474cd382cc9d7faeab84",
|
||||||
|
"i686-pc-windows-msvc-0.9.30": "218b7ec0d052836d7ee395d5e0592e5dac7578fd618f439a5d09c1ad36466399",
|
||||||
|
"i686-unknown-linux-gnu-0.9.30": "1bab147179887ebcb5c31e016e9ac9987f687e79f92fd2f0ff9bcedf927b8228",
|
||||||
|
"i686-unknown-linux-musl-0.9.30": "14d8b2e2caa0b470418e551e027f3a8283aa8d09eae79206e7dbcd23a8ffa027",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.30": "ac4cd1a021462885932f6023b005a4835cca4c72bb60dec186ee2be4b60dca6f",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.30": "73b8cbc560c6b2fa205358365d4e174abdf50cfcf57dc36a447572c56eba5ae4",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.30": "5e0453d9252aab874a3658a039d4ffdde79dba4096974fcdc945498697dc81cf",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.30": "b35975bb9e5c2c418b428d0316cc6e3c7a6eff710c69212be14005c192f54516",
|
||||||
|
"x86_64-apple-darwin-0.9.30": "ce069bf750567e9a4a31d6e285d1eae75d444d8a281409b641235903943b7681",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.30": "875981be7908295937dee09532bb66d576986d4f223259e171b0c767c885897a",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.30": "8b3762374972daa7a74bbc6896cc73229ca69a07403dd9f9ea3805a51ffd7582",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.30": "1caf8fe092e2005dd4c134ba515c1aa3eea3d3c143f8a1903bcb58fcdf169365",
|
||||||
|
"aarch64-apple-darwin-0.9.29": "0729ddd5c02df33669b03627aa5d9ac7cde4421657f808d54585e3cda944bb55",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.29": "39f7dce0d2993cd18d67980c012945ea678a99aef199f7afcea522b5bd70ecf7",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.29": "935b35542b7e25493a551dcb3487af23b72ad284ee8ac6a488a97d02ce2d84ec",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.29": "b1edc94f5d6c36bb28a20f8c8afb400e55a428fcf396b03bf78cb7394f75077c",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.29": "c72ae74c04668d4cf3143fb11ad5bbd1c9e9a80aaa439cb3e43208c127249202",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.29": "e263645c9ab44e3f7e732b0317da775082f077bb86933be662395eeab97fb3d2",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.29": "98ab47dcb345d746b230a359d72a96444b1be21cf24026c653d5c7848c680beb",
|
||||||
|
"i686-pc-windows-msvc-0.9.29": "049a929882a3f4a2d054c9dc44848d2c24175079696e131a57d60d9ab62df81a",
|
||||||
|
"i686-unknown-linux-gnu-0.9.29": "9415828fc2fdacadb56263382a27da6661a89a4bb3a6683d6d864d5c013b7c6a",
|
||||||
|
"i686-unknown-linux-musl-0.9.29": "3ac91c9cccc85c07c0950afc4f45b3e14f2a3e9484f4940366ebab72e71fa8dc",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.29": "7feb1fb35fe66b4f83d3bc7776810f708c6609c9be48ceed6ec024b15733101d",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.29": "1f4e1f859868abcf3557afe78b8b7525a938921af745945deef737927a017d82",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.29": "18dc2d3b513c4bfe0fc4b3a67a80f62ce32077f84db343a1f0eb8003ab276732",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.29": "10e6d5dcd72bf99daee6678f6b508d1056e9f1670f6d76c1cfdf02b7560bcb4a",
|
||||||
|
"x86_64-apple-darwin-0.9.29": "d251e48db2a962272a2efeb2771c82c02e40f473193a255e8e5c05eb61112139",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.29": "9825b1a5955d8a432b664e56660641aac8886ed30cd9c59a94aacc68ae9116ce",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.29": "1ce5212f8f42dc7427a1bd3db4168d6d1abcf81b38d8c82a5b9d0ddc54ceebfc",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.29": "44c93c73e8870e003bda17ab50d433e27d201d0cb28d2bb75351ef1497ffa9db",
|
||||||
|
"aarch64-apple-darwin-0.9.28": "12163fe09eb292d3ad1ea0f132a84485c902e2ff360d57562bf676e6615fcba0",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.28": "081703fa19ae05a49f486f97468f7792e1cdacda403a091b151af7f5bd6f4595",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.28": "382c342735ff29f8ba4574d88e39bca798bcbac50bff6742710ca9cd8143e7d2",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.28": "eec3249254efac972d2555ff858f8ed20f05b40fbb38ac83b15cf0a2ccc86749",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.28": "d0df2a9e7db464a567038bd560dc5007e488542c073989334a4a293b8957e1e1",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.28": "6ddf1979609a3f5bdf897965ed6984dacce860ce57c579596bdc4b514c19320b",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.28": "e391ba4cc05a3a1096f1ab6cd82fcbed059d048a6ba108b4cb18da311a07c4d5",
|
||||||
|
"i686-pc-windows-msvc-0.9.28": "fb5015efd0db178268312a7a7dcde7b0d3b7d7e0eccd0372a4b6f1dcfc075472",
|
||||||
|
"i686-unknown-linux-gnu-0.9.28": "c0d34d92cb11925530fbc313de7536da3e1d097a442f54668417d241697fb3a2",
|
||||||
|
"i686-unknown-linux-musl-0.9.28": "be1ad4f30d97c95af5105405fc38329d66375cde3de18cd0f9fe73b4581155c7",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.28": "6f23bfca0febb001792e7124d0c2ba41ddcfe01d6c030f4a8668ed634a5a582b",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.28": "894ac114f076cffbf041e55e1ad0df759f7bc9dba1291158690781baad38001e",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.28": "e61fa014a0b77acd17f9f366a55cbc0e67b377c4eff13629021a4242cc71eabb",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.28": "af15dc54893b2caecc3604ac68104914b155a8bbf821f667996549e777919a90",
|
||||||
|
"x86_64-apple-darwin-0.9.28": "3a8030881d13b824e5168f5e4d060e715e40753249766bda3d52d6771d93b169",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.28": "9cb567fcd92f31431220ce620787043b946c30b9bb46ca213780e5ef471453be",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.28": "66ad1822dd9cf96694b95c24f25bc05cff417a65351464da01682a91796d1f2b",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.28": "83cd032167b6b97ac94830608efe11159b3d485654e39fdb0bf84718ef236afe",
|
||||||
|
"aarch64-apple-darwin-0.9.27": "1359538ed8664d172692cf4719ee0933a4a3bfb22fc91b0be1e19e7bdd8f5ef3",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.27": "b448ab228f5d1165b8497e8ca10346af6f652eb8ad4e75e47fa55e8cdb5b60d7",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.27": "a58b3b77a25620ae15ff3587049b755c7cbf3eaa7df187620b3e6c3dbf71daa0",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.27": "f80e97e1154a06e42143a173831289336ca9e34a67096ab070346958153e8e52",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.27": "b80f4db9254b9ddec4b576190bdf15723e948f37f648d9b273be2e153d05f820",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.27": "03b45c99ca940739c2a093f6a514da3dd858b3bc1e8c957c16c1832e30b30c28",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.27": "da43ee6e2f17b4646e35e2d55ce6a021fdf47c06601a6ae8b827de7bb7b3b02f",
|
||||||
|
"i686-pc-windows-msvc-0.9.27": "f47831a97b8a1bc7c7211905c1e517cc2f4ef84df877f2a283c49609275db0fa",
|
||||||
|
"i686-unknown-linux-gnu-0.9.27": "fdf3067e0c05d39b849ad48fbbc2b58919f70a686a40506c643d32688ceba1a9",
|
||||||
|
"i686-unknown-linux-musl-0.9.27": "3c1f8c2b148ebf884311558aaff32b9fb5b68fe4f4242e3e3765381bb594386a",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.27": "c3cbda5118b06f2261d32f4802adfdc71f618f808df0c6a3184695a6ffecb88a",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.27": "9011f6085cee3921c9fce82ce03041ca97aacc8cab86b7a5791faa71fa5f2712",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.27": "7193628620c2c50c2d6632ea8e53a4ab5313f7e8003ddedd9e999f48b6d2c222",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.27": "5b055f02f2c8e5086ae1d05cf70d32d66982d27d8469ed896a65067fac2001d2",
|
||||||
|
"x86_64-apple-darwin-0.9.27": "3977309c5c79984c13c55d2d1cd7aa114a718eb29436c5bdb4bdfa08bf243438",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.27": "c3bf465d5f2b93c836f369aec9f3fa8350843f24abd5f710bb74e72440b82898",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.27": "8636e693ea0e05f5f4294b161f816c4d8df065267fdb0405cfb84c8e326991fa",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.27": "9f269bfb9c2e80808c373902af6a4af6cd5f4b4668b28c44aa09639cfed925c5",
|
||||||
|
"aarch64-apple-darwin-0.9.26": "fcf0a9ea6599c6ae28a4c854ac6da76f2c889354d7c36ce136ef071f7ab9721f",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.26": "79e1398ec98681b1b0494ed3485b0f4565e98a7db109a3f205d0fcdc6a1992f7",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.26": "f71040c59798f79c44c08a7a1c1af7de95a8d334ea924b47b67ad6b9632be270",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.26": "ba8698c36c00c22efed4bd3506339b03c95604d001f02eaf6fbc814c9224d801",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.26": "8baa850e6f7a4f8edeef411891780161e95682bf291c85405fdc331925c425c2",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.26": "f9cf9806b3bd434b4aca5de1a8412502a29bcbc908848cdea18e32480964ab79",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.26": "881df52998da192f0609be37abe445ab0d89f28daceecb171ea8a14088153aee",
|
||||||
|
"i686-pc-windows-msvc-0.9.26": "2fa5e36d7dc3053962a95a2583b2bcc19aab2ec6c5d4c887cca58de819cf77dd",
|
||||||
|
"i686-unknown-linux-gnu-0.9.26": "03548a2abd1d604724c9d65184b506d3eafef1b0a7d8cea974a083f5f9c9496f",
|
||||||
|
"i686-unknown-linux-musl-0.9.26": "5208601b9baee1a04a604f441bd94a1ab91b511f142b27729b073f4286994f8f",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.26": "6ac6baa2dd7db742ff58a2d54e3fc09693e69c878666bcacf9d49bc58decc98a",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.26": "1a7fbd268b7520e03747022f879113545a5bd71cad02e9cbabd591b268b5a36c",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.26": "9f202ad04cc398dc77a6efe20ea91ec044ad66e1f7a60777e6efd20a357f479a",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.26": "f8e6b8f1264821add1ea21d592b4522300401f44ac4124fba9fea6874fd79797",
|
||||||
|
"x86_64-apple-darwin-0.9.26": "171eb8c518313e157c5b4cec7b4f743bc6bab1bd23e09b646679a02d096a047f",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.26": "eb02fd95d8e0eed462b4a67ecdd320d865b38c560bffcda9a0b87ec944bdf036",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.26": "30ccbf0a66dc8727a02b0e245c583ee970bdafecf3a443c1686e1b30ec4939e8",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.26": "708b752876aeeb753257e1d55470569789e465684c1d3bc1760db26360b6c28b",
|
||||||
|
"aarch64-apple-darwin-0.9.25": "606b3c6949d971709f2526fa0d9f0fd23ccf60e09f117999b406b424af18a6a6",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.25": "6a4c2a753a94d9639725b435f5d1a65bfa25cd196d448ad60841f5fe81ef0052",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.25": "a8f1d71a42c4470251a880348b2d28d530018693324175084fa1749d267c98c6",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.25": "11cddffc61826e3b7af02db37bc3ed8e9e6747dad328d45c8b02f89408afbf75",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.25": "52f3a96605a7873ec44bb84c33ee08e717df61136fec121f715871cae5b779ec",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.25": "7ae274742a5b2398bd75f9075536c7f0b3f99ebc8c6588c37e3bfcd9cc9d781d",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.25": "77220a539dfffe576cdc9b9e9ab5432c07dd1b63915c859c227883af7ba00538",
|
||||||
|
"i686-pc-windows-msvc-0.9.25": "55dbf32074a76e029410620e7e3fbef9762799c7dfcf539b098ccc0a64cac9a3",
|
||||||
|
"i686-unknown-linux-gnu-0.9.25": "b9dae29f4e37bc89e69836e59169a51d8cac4da118b7548a20b2269b19c94cad",
|
||||||
|
"i686-unknown-linux-musl-0.9.25": "a84a159856a0227c273e86594d9cf8fbf84c56bd4eeeb9a665c946304c49dbec",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.25": "37bc519ebe5e4efb12fd155eb94512547a874f0e41251203b49d715f75eb5a20",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.25": "a01a273b5cd64ece96d4589afbacaf5e99a0695f37ebe9a72fd6b2f7cf0a7071",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.25": "9d9692f1bd5ff6d9db2c4bffc4ceeb8d8746ae03ddeca0b24a0f8fc9ea81b911",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.25": "92d5e4504ef83f421a841381678f871bf2a8821a69d3374dd638e2014d4762ab",
|
||||||
|
"x86_64-apple-darwin-0.9.25": "4982dfff14b3548bc85d0fa0abec6ab8ae62836b218bf1223741ba1392ef93bf",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.25": "d63f8e59cf76bcce9cb8a3eac6c1a89adce0f89a29bacca978c9bf842f419277",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.25": "fa1f4abfe101d43e820342210c3c6854028703770f81e95b119ed1e65ec81b35",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.25": "700776c376ce36ed5b731fcd699e141d897551f5111907987b63897e0c1ad797",
|
||||||
|
"aarch64-apple-darwin-0.9.24": "89661d9a16682197086df54bb43d0b03e58e23d4d9360fc8c6c0166f2828fd71",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.24": "40ceb66af2667fc9b4d30a65ad8b8795d4effc39a44019b4218ad03f8f1d5a14",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.24": "9b291a1a4f2fefc430e4fc49c00cb93eb448d41c5c79edf45211ceffedde3334",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.24": "b16359904ede857b90b68168f10b0f6bf500858df9bed4e7156dbc59fd3f0747",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.24": "b343d7f49ea5c0982c9696cbc5c7f96d7053cf8f9c7383a58d6c0c44fbeb6422",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.24": "8d05b55fe2108ecab3995c2b656679a72c543fd9dc72eeb3a525106a709cfdcb",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.24": "788d2bee1dfdb57a462f2a5c4e3d6e8c68ee9f9f1a938bdcdc00fa9e5edeaeec",
|
||||||
|
"i686-pc-windows-msvc-0.9.24": "b49265a713cb3f874bcb373572095993d3098ab77cd2665483f53b24b788e5e9",
|
||||||
|
"i686-unknown-linux-gnu-0.9.24": "940b8985c4d464c7cc69e40b17bf09d840b980028e1d82a3fb8dd007a737f29e",
|
||||||
|
"i686-unknown-linux-musl-0.9.24": "4ffe6f377b7d68904d8d882af8adc85f2fa1bbccd26151785ff961adb67f2a99",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.24": "1fbaff65544a2c36bbd8992e2abe6c50179401745dc00b5e12bded89794056a4",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.24": "57ea84430ccf49f97184d9ee21102b250214fc6e6af4a87eefaaf8bb7c9c2b9a",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.24": "81a884380f0ee954afd968140aaa55df19f2bee30d74f3c0c94a11d2265bb388",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.24": "3da41f22f78f27a7764e303b07c68f5716f748128327c7d3d72f11c6b81b6c78",
|
||||||
|
"x86_64-apple-darwin-0.9.24": "fda9b3203cce6ec3a37177440c33c4c1963c4957fff17e2820c60ab6ccd625da",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.24": "cf9d6fa12017199d19c6f9a8f7f55811c8c04d70681b8cb6d89ffb179f08cf1f",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.24": "fb13ad85106da6b21dd16613afca910994446fe94a78ee0b5bed9c75cd066078",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.24": "cf307aa4271038daa334ca64e75aa40c0c085ce6fa0c0e6f21e41a2b62c7904d",
|
||||||
|
"aarch64-apple-darwin-0.9.23": "3aae069424778d13ef45ebd2ec906c66ab10e459e7b33341a64cd371a3d70998",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.23": "dfdb23dbfa6c89847e4163f0b3b683de889df7d9bdf95a3909dfbc6430106304",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.23": "d60b0b2aee79f9d83897615fed427bee1ea4ebcb2f15b48dd522319ecdb3de91",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.23": "ee987d943427ee24c1d3af79c7ad676950c9ad634e60a4d07e328d8a54fff92f",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.23": "1950c235e76e007f75d30903dc5da6747a344c72a1608123feff720c134ecbfe",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.23": "a7104ab491a0c2f0c58760bcb9a13cfb64c899e02a7b747c4d11da114b3f9114",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.23": "c5d494337a5ca86ad83d6a887634fda3f8392560799e4236a44d76f8e27621b6",
|
||||||
|
"i686-pc-windows-msvc-0.9.23": "94292f02b7484616bb3cd7361411540a5a52e952d149eb6faeec610b6657015d",
|
||||||
|
"i686-unknown-linux-gnu-0.9.23": "627627174d31e6fa270e91c7b2988558e4b18b86cc31de9222b6cf3b7354e9b7",
|
||||||
|
"i686-unknown-linux-musl-0.9.23": "5f65a0eb1f9067a4f5149275faba3bcb3af94dd68fbce7cd9e93ba86b5bc59c3",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.23": "69e2925397d0e781e8525ad0fd22896a114ffa02f5055e7a360e4dda3796c24e",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.23": "fb3ad2cb1a19f1bb4785580dc71837161147beab134fdc3eb4e8ccda577db1e0",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.23": "0d1d9300e2df3155b0d0b071c292fb27f8213d91854decdfb27c293397dc8e0e",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.23": "7d0b411a365b0cd8fad2b336c259743e7381676654adfbdb4f887b4136820cb8",
|
||||||
|
"x86_64-apple-darwin-0.9.23": "b5bbfbd5d8c7effa24b505365ae306116fdac58880bc9b024ec4c89435d57728",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.23": "bb6d2987906b27d3031640c4a909b6f7c134cd29674c41ef545c6e7d57dd6700",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.23": "b7bd7d9b9c9c34327f1118f99fe8c298252787ea35f7b345b8bf639377f63217",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.23": "a824a0f5f7aa67b668f54756284d458a25dea332da6e558d303890d134cc06d1",
|
||||||
"aarch64-apple-darwin-0.9.22": "4bfc6dacc9bcc9e433a9214a658495ca082b94fd607949b6745a955f34ccbc3c",
|
"aarch64-apple-darwin-0.9.22": "4bfc6dacc9bcc9e433a9214a658495ca082b94fd607949b6745a955f34ccbc3c",
|
||||||
"aarch64-pc-windows-msvc-0.9.22": "19b848523d5802279702f5df4ade6d45f17d111cf9e368883d4f6560f0426d49",
|
"aarch64-pc-windows-msvc-0.9.22": "19b848523d5802279702f5df4ade6d45f17d111cf9e368883d4f6560f0426d49",
|
||||||
"aarch64-unknown-linux-gnu-0.9.22": "2f8716c407d5da21b8a3e8609ed358147216aaab28b96b1d6d7f48e9bcc6254e",
|
"aarch64-unknown-linux-gnu-0.9.22": "2f8716c407d5da21b8a3e8609ed358147216aaab28b96b1d6d7f48e9bcc6254e",
|
||||||
@@ -95802,7 +96110,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|||||||
})();
|
})();
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.tryGetFromToolCache = tryGetFromToolCache;
|
exports.tryGetFromToolCache = tryGetFromToolCache;
|
||||||
exports.downloadVersionFromGithub = downloadVersionFromGithub;
|
exports.downloadVersionFromNdjson = downloadVersionFromNdjson;
|
||||||
exports.downloadVersionFromManifest = downloadVersionFromManifest;
|
exports.downloadVersionFromManifest = downloadVersionFromManifest;
|
||||||
exports.resolveVersion = resolveVersion;
|
exports.resolveVersion = resolveVersion;
|
||||||
const node_fs_1 = __nccwpck_require__(3024);
|
const node_fs_1 = __nccwpck_require__(3024);
|
||||||
@@ -95812,9 +96120,9 @@ const tc = __importStar(__nccwpck_require__(3472));
|
|||||||
const pep440 = __importStar(__nccwpck_require__(3297));
|
const pep440 = __importStar(__nccwpck_require__(3297));
|
||||||
const semver = __importStar(__nccwpck_require__(9318));
|
const semver = __importStar(__nccwpck_require__(9318));
|
||||||
const constants_1 = __nccwpck_require__(6156);
|
const constants_1 = __nccwpck_require__(6156);
|
||||||
const octokit_1 = __nccwpck_require__(971);
|
|
||||||
const checksum_1 = __nccwpck_require__(7772);
|
const checksum_1 = __nccwpck_require__(7772);
|
||||||
const version_manifest_1 = __nccwpck_require__(4000);
|
const version_manifest_1 = __nccwpck_require__(4000);
|
||||||
|
const versions_client_1 = __nccwpck_require__(203);
|
||||||
function tryGetFromToolCache(arch, version) {
|
function tryGetFromToolCache(arch, version) {
|
||||||
core.debug(`Trying to get uv from tool cache for ${version}...`);
|
core.debug(`Trying to get uv from tool cache for ${version}...`);
|
||||||
const cachedVersions = tc.findAllVersions(constants_1.TOOL_CACHE_NAME, arch);
|
const cachedVersions = tc.findAllVersions(constants_1.TOOL_CACHE_NAME, arch);
|
||||||
@@ -95826,30 +96134,32 @@ function tryGetFromToolCache(arch, version) {
|
|||||||
const installedPath = tc.find(constants_1.TOOL_CACHE_NAME, resolvedVersion, arch);
|
const installedPath = tc.find(constants_1.TOOL_CACHE_NAME, resolvedVersion, arch);
|
||||||
return { installedPath, version: resolvedVersion };
|
return { installedPath, version: resolvedVersion };
|
||||||
}
|
}
|
||||||
async function downloadVersionFromGithub(platform, arch, version, checkSum, githubToken) {
|
async function downloadVersionFromNdjson(platform, arch, version, checkSum, githubToken) {
|
||||||
const artifact = `uv-${arch}-${platform}`;
|
const artifact = await (0, versions_client_1.getArtifact)(version, arch, platform);
|
||||||
const extension = getExtension(platform);
|
if (!artifact) {
|
||||||
const downloadUrl = `https://github.com/${constants_1.OWNER}/${constants_1.REPO}/releases/download/${version}/${artifact}${extension}`;
|
throw new Error(`Could not find artifact for version ${version}, arch ${arch}, platform ${platform} in ${constants_1.VERSIONS_NDJSON_URL} .`);
|
||||||
return await downloadVersion(downloadUrl, artifact, platform, arch, version, checkSum, githubToken);
|
}
|
||||||
|
// For the default astral-sh/versions source, checksum validation relies on
|
||||||
|
// user input or the built-in KNOWN_CHECKSUMS table, not NDJSON sha256 values.
|
||||||
|
return await downloadVersion(artifact.url, `uv-${arch}-${platform}`, platform, arch, version, checkSum, githubToken);
|
||||||
}
|
}
|
||||||
async function downloadVersionFromManifest(manifestUrl, platform, arch, version, checkSum, githubToken) {
|
async function downloadVersionFromManifest(manifestUrl, platform, arch, version, checkSum, githubToken) {
|
||||||
const downloadUrl = await (0, version_manifest_1.getDownloadUrl)(manifestUrl, version, arch, platform);
|
const artifact = await (0, version_manifest_1.getManifestArtifact)(manifestUrl, version, arch, platform);
|
||||||
if (!downloadUrl) {
|
if (!artifact) {
|
||||||
core.info(`manifest-file does not contain version ${version}, arch ${arch}, platform ${platform}. Falling back to GitHub releases.`);
|
throw new Error(`manifest-file does not contain version ${version}, arch ${arch}, platform ${platform}.`);
|
||||||
return await downloadVersionFromGithub(platform, arch, version, checkSum, githubToken);
|
|
||||||
}
|
}
|
||||||
return await downloadVersion(downloadUrl, `uv-${arch}-${platform}`, platform, arch, version, checkSum, githubToken);
|
return await downloadVersion(artifact.downloadUrl, `uv-${arch}-${platform}`, platform, arch, version, resolveChecksum(checkSum, artifact.checksum), githubToken);
|
||||||
}
|
}
|
||||||
async function downloadVersion(downloadUrl, artifactName, platform, arch, version, checkSum, githubToken) {
|
async function downloadVersion(downloadUrl, artifactName, platform, arch, version, checksum, githubToken) {
|
||||||
core.info(`Downloading uv from "${downloadUrl}" ...`);
|
core.info(`Downloading uv from "${downloadUrl}" ...`);
|
||||||
const downloadPath = await tc.downloadTool(downloadUrl, undefined, githubToken);
|
const downloadPath = await tc.downloadTool(downloadUrl, undefined, githubToken);
|
||||||
await (0, checksum_1.validateChecksum)(checkSum, downloadPath, arch, platform, version);
|
await (0, checksum_1.validateChecksum)(checksum, downloadPath, arch, platform, version);
|
||||||
let uvDir;
|
let uvDir;
|
||||||
if (platform === "pc-windows-msvc") {
|
if (platform === "pc-windows-msvc") {
|
||||||
// On windows extracting the zip does not create an intermediate directory
|
// On windows extracting the zip does not create an intermediate directory.
|
||||||
try {
|
try {
|
||||||
// Try tar first as it's much faster, but only bsdtar supports zip files,
|
// Try tar first as it's much faster, but only bsdtar supports zip files,
|
||||||
// so this my fail if another tar, like gnu tar, ends up being used.
|
// so this may fail if another tar, like gnu tar, ends up being used.
|
||||||
uvDir = await tc.extractTar(downloadPath, undefined, "x");
|
uvDir = await tc.extractTar(downloadPath, undefined, "x");
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
@@ -95867,10 +96177,15 @@ async function downloadVersion(downloadUrl, artifactName, platform, arch, versio
|
|||||||
const cachedToolDir = await tc.cacheDir(uvDir, constants_1.TOOL_CACHE_NAME, version, arch);
|
const cachedToolDir = await tc.cacheDir(uvDir, constants_1.TOOL_CACHE_NAME, version, arch);
|
||||||
return { cachedToolDir, version: version };
|
return { cachedToolDir, version: version };
|
||||||
}
|
}
|
||||||
|
function resolveChecksum(checkSum, manifestChecksum) {
|
||||||
|
return checkSum !== undefined && checkSum !== ""
|
||||||
|
? checkSum
|
||||||
|
: manifestChecksum;
|
||||||
|
}
|
||||||
function getExtension(platform) {
|
function getExtension(platform) {
|
||||||
return platform === "pc-windows-msvc" ? ".zip" : ".tar.gz";
|
return platform === "pc-windows-msvc" ? ".zip" : ".tar.gz";
|
||||||
}
|
}
|
||||||
async function resolveVersion(versionInput, manifestFile, githubToken, resolutionStrategy = "highest") {
|
async function resolveVersion(versionInput, manifestUrl, resolutionStrategy = "highest") {
|
||||||
core.debug(`Resolving version: ${versionInput}`);
|
core.debug(`Resolving version: ${versionInput}`);
|
||||||
let version;
|
let version;
|
||||||
const isSimpleMinimumVersionSpecifier = versionInput.includes(">") && !versionInput.includes(",");
|
const isSimpleMinimumVersionSpecifier = versionInput.includes(">") && !versionInput.includes(",");
|
||||||
@@ -95878,16 +96193,16 @@ async function resolveVersion(versionInput, manifestFile, githubToken, resolutio
|
|||||||
if (resolveVersionSpecifierToLatest) {
|
if (resolveVersionSpecifierToLatest) {
|
||||||
core.info("Found minimum version specifier, using latest version");
|
core.info("Found minimum version specifier, using latest version");
|
||||||
}
|
}
|
||||||
if (manifestFile) {
|
if (manifestUrl !== undefined) {
|
||||||
version =
|
version =
|
||||||
versionInput === "latest" || resolveVersionSpecifierToLatest
|
versionInput === "latest" || resolveVersionSpecifierToLatest
|
||||||
? await (0, version_manifest_1.getLatestKnownVersion)(manifestFile)
|
? await (0, version_manifest_1.getLatestKnownVersion)(manifestUrl)
|
||||||
: versionInput;
|
: versionInput;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
version =
|
version =
|
||||||
versionInput === "latest" || resolveVersionSpecifierToLatest
|
versionInput === "latest" || resolveVersionSpecifierToLatest
|
||||||
? await getLatestVersion(githubToken)
|
? await (0, versions_client_1.getLatestVersion)()
|
||||||
: versionInput;
|
: versionInput;
|
||||||
}
|
}
|
||||||
if (tc.isExplicitVersion(version)) {
|
if (tc.isExplicitVersion(version)) {
|
||||||
@@ -95899,7 +96214,7 @@ async function resolveVersion(versionInput, manifestFile, githubToken, resolutio
|
|||||||
}
|
}
|
||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
const availableVersions = await getAvailableVersions(githubToken);
|
const availableVersions = await getAvailableVersions(manifestUrl);
|
||||||
core.debug(`Available versions: ${availableVersions}`);
|
core.debug(`Available versions: ${availableVersions}`);
|
||||||
const resolvedVersion = resolutionStrategy === "lowest"
|
const resolvedVersion = resolutionStrategy === "lowest"
|
||||||
? minSatisfying(availableVersions, version)
|
? minSatisfying(availableVersions, version)
|
||||||
@@ -95909,66 +96224,13 @@ async function resolveVersion(versionInput, manifestFile, githubToken, resolutio
|
|||||||
}
|
}
|
||||||
return resolvedVersion;
|
return resolvedVersion;
|
||||||
}
|
}
|
||||||
async function getAvailableVersions(githubToken) {
|
async function getAvailableVersions(manifestUrl) {
|
||||||
core.info("Getting available versions from GitHub API...");
|
if (manifestUrl !== undefined) {
|
||||||
try {
|
core.info(`Getting available versions from manifest-file ${manifestUrl} ...`);
|
||||||
const octokit = new octokit_1.Octokit({
|
return await (0, version_manifest_1.getAllVersions)(manifestUrl);
|
||||||
auth: githubToken,
|
|
||||||
});
|
|
||||||
return await getReleaseTagNames(octokit);
|
|
||||||
}
|
}
|
||||||
catch (err) {
|
core.info(`Getting available versions from ${constants_1.VERSIONS_NDJSON_URL} ...`);
|
||||||
if (err.message.includes("Bad credentials")) {
|
return await (0, versions_client_1.getAllVersions)();
|
||||||
core.info("No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.");
|
|
||||||
const octokit = new octokit_1.Octokit();
|
|
||||||
return await getReleaseTagNames(octokit);
|
|
||||||
}
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
async function getReleaseTagNames(octokit) {
|
|
||||||
const response = await octokit.paginate(octokit.rest.repos.listReleases, {
|
|
||||||
owner: constants_1.OWNER,
|
|
||||||
repo: constants_1.REPO,
|
|
||||||
});
|
|
||||||
const releaseTagNames = response.map((release) => release.tag_name);
|
|
||||||
if (releaseTagNames.length === 0) {
|
|
||||||
throw Error("Github API request failed while getting releases. Check the GitHub status page for outages. Try again later.");
|
|
||||||
}
|
|
||||||
return releaseTagNames;
|
|
||||||
}
|
|
||||||
async function getLatestVersion(githubToken) {
|
|
||||||
core.info("Getting latest version from GitHub API...");
|
|
||||||
const octokit = new octokit_1.Octokit({
|
|
||||||
auth: githubToken,
|
|
||||||
});
|
|
||||||
let latestRelease;
|
|
||||||
try {
|
|
||||||
latestRelease = await getLatestRelease(octokit);
|
|
||||||
}
|
|
||||||
catch (err) {
|
|
||||||
if (err.message.includes("Bad credentials")) {
|
|
||||||
core.info("No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.");
|
|
||||||
const octokit = new octokit_1.Octokit();
|
|
||||||
latestRelease = await getLatestRelease(octokit);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
core.error("Github API request failed while getting latest release. Check the GitHub status page for outages. Try again later.");
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!latestRelease) {
|
|
||||||
throw new Error("Could not determine latest release.");
|
|
||||||
}
|
|
||||||
core.debug(`Latest version: ${latestRelease.tag_name}`);
|
|
||||||
return latestRelease.tag_name;
|
|
||||||
}
|
|
||||||
async function getLatestRelease(octokit) {
|
|
||||||
const { data: latestRelease } = await octokit.rest.repos.getLatestRelease({
|
|
||||||
owner: constants_1.OWNER,
|
|
||||||
repo: constants_1.REPO,
|
|
||||||
});
|
|
||||||
return latestRelease;
|
|
||||||
}
|
}
|
||||||
function maxSatisfying(versions, version) {
|
function maxSatisfying(versions, version) {
|
||||||
const maxSemver = tc.evaluateVersions(versions, version);
|
const maxSemver = tc.evaluateVersions(versions, version);
|
||||||
@@ -96000,6 +96262,126 @@ function minSatisfying(versions, version) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 9904:
|
||||||
|
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||||
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||||
|
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||||
|
}
|
||||||
|
Object.defineProperty(o, k2, desc);
|
||||||
|
}) : (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
o[k2] = m[k];
|
||||||
|
}));
|
||||||
|
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||||
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||||
|
}) : function(o, v) {
|
||||||
|
o["default"] = v;
|
||||||
|
});
|
||||||
|
var __importStar = (this && this.__importStar) || (function () {
|
||||||
|
var ownKeys = function(o) {
|
||||||
|
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||||
|
var ar = [];
|
||||||
|
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||||
|
return ar;
|
||||||
|
};
|
||||||
|
return ownKeys(o);
|
||||||
|
};
|
||||||
|
return function (mod) {
|
||||||
|
if (mod && mod.__esModule) return mod;
|
||||||
|
var result = {};
|
||||||
|
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||||
|
__setModuleDefault(result, mod);
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
|
exports.parseLegacyManifestEntries = parseLegacyManifestEntries;
|
||||||
|
exports.clearLegacyManifestWarnings = clearLegacyManifestWarnings;
|
||||||
|
const core = __importStar(__nccwpck_require__(7484));
|
||||||
|
const warnedLegacyManifestUrls = new Set();
|
||||||
|
function parseLegacyManifestEntries(parsedEntries, manifestUrl) {
|
||||||
|
warnAboutLegacyManifestFormat(manifestUrl);
|
||||||
|
return parsedEntries.map((entry, index) => {
|
||||||
|
if (!isLegacyManifestEntry(entry)) {
|
||||||
|
throw new Error(`Invalid legacy manifest-file entry at index ${index} in ${manifestUrl}.`);
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
arch: entry.arch,
|
||||||
|
checksum: entry.checksum,
|
||||||
|
downloadUrl: entry.downloadUrl,
|
||||||
|
platform: entry.platform,
|
||||||
|
version: entry.version,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function clearLegacyManifestWarnings() {
|
||||||
|
warnedLegacyManifestUrls.clear();
|
||||||
|
}
|
||||||
|
function warnAboutLegacyManifestFormat(manifestUrl) {
|
||||||
|
if (warnedLegacyManifestUrls.has(manifestUrl)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
warnedLegacyManifestUrls.add(manifestUrl);
|
||||||
|
core.warning(`manifest-file ${manifestUrl} uses the legacy JSON array format, which is deprecated. Please migrate to the astral-sh/versions NDJSON format before the next major release.`);
|
||||||
|
}
|
||||||
|
function isLegacyManifestEntry(value) {
|
||||||
|
if (!isRecord(value)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const checksumIsValid = typeof value.checksum === "string" || value.checksum === undefined;
|
||||||
|
return (typeof value.arch === "string" &&
|
||||||
|
checksumIsValid &&
|
||||||
|
typeof value.downloadUrl === "string" &&
|
||||||
|
typeof value.platform === "string" &&
|
||||||
|
typeof value.version === "string");
|
||||||
|
}
|
||||||
|
function isRecord(value) {
|
||||||
|
return typeof value === "object" && value !== null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 5986:
|
||||||
|
/***/ ((__unused_webpack_module, exports) => {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
|
exports.selectDefaultVariant = selectDefaultVariant;
|
||||||
|
function selectDefaultVariant(entries, duplicateEntryDescription) {
|
||||||
|
const firstEntry = entries[0];
|
||||||
|
if (firstEntry === undefined) {
|
||||||
|
throw new Error("selectDefaultVariant requires at least one candidate.");
|
||||||
|
}
|
||||||
|
if (entries.length === 1) {
|
||||||
|
return firstEntry;
|
||||||
|
}
|
||||||
|
const defaultEntries = entries.filter((entry) => isDefaultVariant(entry.variant));
|
||||||
|
if (defaultEntries.length === 1) {
|
||||||
|
return defaultEntries[0];
|
||||||
|
}
|
||||||
|
throw new Error(`${duplicateEntryDescription} with variants ${formatVariants(entries)}. setup-uv currently requires a single default variant for duplicate platform entries.`);
|
||||||
|
}
|
||||||
|
function isDefaultVariant(variant) {
|
||||||
|
return variant === undefined || variant === "default";
|
||||||
|
}
|
||||||
|
function formatVariants(entries) {
|
||||||
|
return entries
|
||||||
|
.map((entry) => entry.variant ?? "default")
|
||||||
|
.sort((left, right) => left.localeCompare(right))
|
||||||
|
.join(", ");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 4000:
|
/***/ 4000:
|
||||||
@@ -96042,65 +96424,268 @@ var __importStar = (this && this.__importStar) || (function () {
|
|||||||
})();
|
})();
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.getLatestKnownVersion = getLatestKnownVersion;
|
exports.getLatestKnownVersion = getLatestKnownVersion;
|
||||||
exports.getDownloadUrl = getDownloadUrl;
|
exports.getAllVersions = getAllVersions;
|
||||||
exports.updateVersionManifest = updateVersionManifest;
|
exports.getManifestArtifact = getManifestArtifact;
|
||||||
const node_fs_1 = __nccwpck_require__(3024);
|
exports.clearManifestCache = clearManifestCache;
|
||||||
const node_path_1 = __nccwpck_require__(6760);
|
|
||||||
const core = __importStar(__nccwpck_require__(7484));
|
const core = __importStar(__nccwpck_require__(7484));
|
||||||
const semver = __importStar(__nccwpck_require__(9318));
|
const semver = __importStar(__nccwpck_require__(9318));
|
||||||
const fetch_1 = __nccwpck_require__(3385);
|
const fetch_1 = __nccwpck_require__(3385);
|
||||||
const localManifestFile = (0, node_path_1.join)(__dirname, "..", "..", "version-manifest.json");
|
const legacy_version_manifest_1 = __nccwpck_require__(9904);
|
||||||
|
const variant_selection_1 = __nccwpck_require__(5986);
|
||||||
|
const versions_client_1 = __nccwpck_require__(203);
|
||||||
|
const cachedManifestEntries = new Map();
|
||||||
async function getLatestKnownVersion(manifestUrl) {
|
async function getLatestKnownVersion(manifestUrl) {
|
||||||
const manifestEntries = await getManifestEntries(manifestUrl);
|
const versions = await getAllVersions(manifestUrl);
|
||||||
return manifestEntries.reduce((a, b) => semver.gt(a.version, b.version) ? a : b).version;
|
const latestVersion = versions.reduce((latest, current) => semver.gt(current, latest) ? current : latest);
|
||||||
|
return latestVersion;
|
||||||
}
|
}
|
||||||
async function getDownloadUrl(manifestUrl, version, arch, platform) {
|
async function getAllVersions(manifestUrl) {
|
||||||
const manifestEntries = await getManifestEntries(manifestUrl);
|
const manifestEntries = await getManifestEntries(manifestUrl);
|
||||||
const entry = manifestEntries.find((entry) => entry.version === version &&
|
return [...new Set(manifestEntries.map((entry) => entry.version))];
|
||||||
entry.arch === arch &&
|
}
|
||||||
entry.platform === platform);
|
async function getManifestArtifact(manifestUrl, version, arch, platform) {
|
||||||
return entry ? entry.downloadUrl : undefined;
|
const manifestEntries = await getManifestEntries(manifestUrl);
|
||||||
|
const entry = selectManifestEntry(manifestEntries, manifestUrl, version, arch, platform);
|
||||||
|
if (!entry) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
archiveFormat: entry.archiveFormat,
|
||||||
|
checksum: entry.checksum,
|
||||||
|
downloadUrl: entry.downloadUrl,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function clearManifestCache() {
|
||||||
|
cachedManifestEntries.clear();
|
||||||
|
(0, legacy_version_manifest_1.clearLegacyManifestWarnings)();
|
||||||
}
|
}
|
||||||
async function getManifestEntries(manifestUrl) {
|
async function getManifestEntries(manifestUrl) {
|
||||||
let data;
|
const cachedEntries = cachedManifestEntries.get(manifestUrl);
|
||||||
if (manifestUrl !== undefined) {
|
if (cachedEntries !== undefined) {
|
||||||
core.info(`Fetching manifest-file from: ${manifestUrl}`);
|
core.debug(`Using cached manifest-file from: ${manifestUrl}`);
|
||||||
const response = await (0, fetch_1.fetch)(manifestUrl, {});
|
return cachedEntries;
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error(`Failed to fetch manifest-file: ${response.status} ${response.statusText}`);
|
|
||||||
}
|
|
||||||
data = await response.text();
|
|
||||||
}
|
}
|
||||||
else {
|
core.info(`Fetching manifest-file from: ${manifestUrl}`);
|
||||||
core.info("manifest-file not provided, reading from local file.");
|
const response = await (0, fetch_1.fetch)(manifestUrl, {});
|
||||||
const fileContent = await node_fs_1.promises.readFile(localManifestFile);
|
if (!response.ok) {
|
||||||
data = fileContent.toString();
|
throw new Error(`Failed to fetch manifest-file: ${response.status} ${response.statusText}`);
|
||||||
}
|
}
|
||||||
return JSON.parse(data);
|
const data = await response.text();
|
||||||
|
const parsedEntries = parseManifestEntries(data, manifestUrl);
|
||||||
|
cachedManifestEntries.set(manifestUrl, parsedEntries);
|
||||||
|
return parsedEntries;
|
||||||
}
|
}
|
||||||
async function updateVersionManifest(manifestUrl, downloadUrls) {
|
function parseManifestEntries(data, manifestUrl) {
|
||||||
const manifest = [];
|
const trimmed = data.trim();
|
||||||
for (const downloadUrl of downloadUrls) {
|
if (trimmed === "") {
|
||||||
const urlParts = downloadUrl.split("/");
|
throw new Error(`manifest-file at ${manifestUrl} is empty.`);
|
||||||
const version = urlParts[urlParts.length - 2];
|
|
||||||
const artifactName = urlParts[urlParts.length - 1];
|
|
||||||
if (!artifactName.startsWith("uv-")) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (artifactName.startsWith("uv-installer")) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
const artifactParts = artifactName.split(".")[0].split("-");
|
|
||||||
manifest.push({
|
|
||||||
arch: artifactParts[1],
|
|
||||||
artifactName: artifactName,
|
|
||||||
downloadUrl: downloadUrl,
|
|
||||||
platform: artifactName.split(`uv-${artifactParts[1]}-`)[1].split(".")[0],
|
|
||||||
version: version,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
core.debug(`Updating manifest-file: ${JSON.stringify(manifest)}`);
|
const parsedAsJson = tryParseJson(trimmed);
|
||||||
await node_fs_1.promises.writeFile(manifestUrl, JSON.stringify(manifest));
|
if (Array.isArray(parsedAsJson)) {
|
||||||
|
return (0, legacy_version_manifest_1.parseLegacyManifestEntries)(parsedAsJson, manifestUrl);
|
||||||
|
}
|
||||||
|
const versions = (0, versions_client_1.parseVersionData)(trimmed, manifestUrl);
|
||||||
|
return mapNdjsonVersionsToManifestEntries(versions, manifestUrl);
|
||||||
|
}
|
||||||
|
function mapNdjsonVersionsToManifestEntries(versions, manifestUrl) {
|
||||||
|
const manifestEntries = [];
|
||||||
|
for (const versionData of versions) {
|
||||||
|
for (const artifact of versionData.artifacts) {
|
||||||
|
const [arch, ...platformParts] = artifact.platform.split("-");
|
||||||
|
if (arch === undefined || platformParts.length === 0) {
|
||||||
|
throw new Error(`Invalid artifact platform '${artifact.platform}' in manifest-file ${manifestUrl}.`);
|
||||||
|
}
|
||||||
|
manifestEntries.push({
|
||||||
|
arch,
|
||||||
|
archiveFormat: artifact.archive_format,
|
||||||
|
checksum: artifact.sha256,
|
||||||
|
downloadUrl: artifact.url,
|
||||||
|
platform: platformParts.join("-"),
|
||||||
|
variant: artifact.variant,
|
||||||
|
version: versionData.version,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return manifestEntries;
|
||||||
|
}
|
||||||
|
function selectManifestEntry(manifestEntries, manifestUrl, version, arch, platform) {
|
||||||
|
const matches = manifestEntries.filter((candidate) => candidate.version === version &&
|
||||||
|
candidate.arch === arch &&
|
||||||
|
candidate.platform === platform);
|
||||||
|
if (matches.length === 0) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
return (0, variant_selection_1.selectDefaultVariant)(matches, `manifest-file ${manifestUrl} contains multiple artifacts for version ${version}, arch ${arch}, platform ${platform}`);
|
||||||
|
}
|
||||||
|
function tryParseJson(value) {
|
||||||
|
try {
|
||||||
|
return JSON.parse(value);
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 203:
|
||||||
|
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||||
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||||
|
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||||
|
}
|
||||||
|
Object.defineProperty(o, k2, desc);
|
||||||
|
}) : (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
o[k2] = m[k];
|
||||||
|
}));
|
||||||
|
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||||
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||||
|
}) : function(o, v) {
|
||||||
|
o["default"] = v;
|
||||||
|
});
|
||||||
|
var __importStar = (this && this.__importStar) || (function () {
|
||||||
|
var ownKeys = function(o) {
|
||||||
|
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||||
|
var ar = [];
|
||||||
|
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||||
|
return ar;
|
||||||
|
};
|
||||||
|
return ownKeys(o);
|
||||||
|
};
|
||||||
|
return function (mod) {
|
||||||
|
if (mod && mod.__esModule) return mod;
|
||||||
|
var result = {};
|
||||||
|
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||||
|
__setModuleDefault(result, mod);
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
|
exports.fetchVersionData = fetchVersionData;
|
||||||
|
exports.parseVersionData = parseVersionData;
|
||||||
|
exports.getLatestVersion = getLatestVersion;
|
||||||
|
exports.getAllVersions = getAllVersions;
|
||||||
|
exports.getArtifact = getArtifact;
|
||||||
|
exports.clearCache = clearCache;
|
||||||
|
const core = __importStar(__nccwpck_require__(7484));
|
||||||
|
const constants_1 = __nccwpck_require__(6156);
|
||||||
|
const fetch_1 = __nccwpck_require__(3385);
|
||||||
|
const variant_selection_1 = __nccwpck_require__(5986);
|
||||||
|
const cachedVersionData = new Map();
|
||||||
|
async function fetchVersionData(url = constants_1.VERSIONS_NDJSON_URL) {
|
||||||
|
const cachedVersions = cachedVersionData.get(url);
|
||||||
|
if (cachedVersions !== undefined) {
|
||||||
|
core.debug(`Using cached NDJSON version data from ${url}`);
|
||||||
|
return cachedVersions;
|
||||||
|
}
|
||||||
|
core.info(`Fetching version data from ${url} ...`);
|
||||||
|
const response = await (0, fetch_1.fetch)(url, {});
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(`Failed to fetch version data: ${response.status} ${response.statusText}`);
|
||||||
|
}
|
||||||
|
const body = await response.text();
|
||||||
|
const versions = parseVersionData(body, url);
|
||||||
|
cachedVersionData.set(url, versions);
|
||||||
|
return versions;
|
||||||
|
}
|
||||||
|
function parseVersionData(data, sourceDescription) {
|
||||||
|
const versions = [];
|
||||||
|
for (const [index, line] of data.split("\n").entries()) {
|
||||||
|
const trimmed = line.trim();
|
||||||
|
if (trimmed === "") {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
let parsed;
|
||||||
|
try {
|
||||||
|
parsed = JSON.parse(trimmed);
|
||||||
|
}
|
||||||
|
catch (error) {
|
||||||
|
throw new Error(`Failed to parse version data from ${sourceDescription} at line ${index + 1}: ${error.message}`);
|
||||||
|
}
|
||||||
|
if (!isNdjsonVersion(parsed)) {
|
||||||
|
throw new Error(`Invalid NDJSON record in ${sourceDescription} at line ${index + 1}.`);
|
||||||
|
}
|
||||||
|
versions.push(parsed);
|
||||||
|
}
|
||||||
|
if (versions.length === 0) {
|
||||||
|
throw new Error(`No version data found in ${sourceDescription}.`);
|
||||||
|
}
|
||||||
|
return versions;
|
||||||
|
}
|
||||||
|
async function getLatestVersion() {
|
||||||
|
const versions = await fetchVersionData();
|
||||||
|
const latestVersion = versions[0]?.version;
|
||||||
|
if (!latestVersion) {
|
||||||
|
throw new Error("No versions found in NDJSON data");
|
||||||
|
}
|
||||||
|
core.debug(`Latest version from NDJSON: ${latestVersion}`);
|
||||||
|
return latestVersion;
|
||||||
|
}
|
||||||
|
async function getAllVersions() {
|
||||||
|
const versions = await fetchVersionData();
|
||||||
|
return versions.map((versionData) => versionData.version);
|
||||||
|
}
|
||||||
|
async function getArtifact(version, arch, platform) {
|
||||||
|
const versions = await fetchVersionData();
|
||||||
|
const versionData = versions.find((candidate) => candidate.version === version);
|
||||||
|
if (!versionData) {
|
||||||
|
core.debug(`Version ${version} not found in NDJSON data`);
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
const targetPlatform = `${arch}-${platform}`;
|
||||||
|
const matchingArtifacts = versionData.artifacts.filter((candidate) => candidate.platform === targetPlatform);
|
||||||
|
if (matchingArtifacts.length === 0) {
|
||||||
|
core.debug(`Artifact for ${targetPlatform} not found in version ${version}. Available platforms: ${versionData.artifacts
|
||||||
|
.map((candidate) => candidate.platform)
|
||||||
|
.join(", ")}`);
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
const artifact = selectArtifact(matchingArtifacts, version, targetPlatform);
|
||||||
|
return {
|
||||||
|
archiveFormat: artifact.archive_format,
|
||||||
|
sha256: artifact.sha256,
|
||||||
|
url: artifact.url,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function clearCache(url) {
|
||||||
|
if (url === undefined) {
|
||||||
|
cachedVersionData.clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
cachedVersionData.delete(url);
|
||||||
|
}
|
||||||
|
function selectArtifact(artifacts, version, targetPlatform) {
|
||||||
|
return (0, variant_selection_1.selectDefaultVariant)(artifacts, `Multiple artifacts found for ${targetPlatform} in version ${version}`);
|
||||||
|
}
|
||||||
|
function isNdjsonVersion(value) {
|
||||||
|
if (!isRecord(value)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (typeof value.version !== "string" || !Array.isArray(value.artifacts)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return value.artifacts.every(isNdjsonArtifact);
|
||||||
|
}
|
||||||
|
function isNdjsonArtifact(value) {
|
||||||
|
if (!isRecord(value)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const variantIsValid = typeof value.variant === "string" || value.variant === undefined;
|
||||||
|
return (typeof value.archive_format === "string" &&
|
||||||
|
typeof value.platform === "string" &&
|
||||||
|
typeof value.sha256 === "string" &&
|
||||||
|
typeof value.url === "string" &&
|
||||||
|
variantIsValid);
|
||||||
|
}
|
||||||
|
function isRecord(value) {
|
||||||
|
return typeof value === "object" && value !== null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -96329,7 +96914,9 @@ async function setupUv(platform, arch, checkSum, githubToken) {
|
|||||||
version: toolCacheResult.version,
|
version: toolCacheResult.version,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
const downloadVersionResult = await (0, download_version_1.downloadVersionFromManifest)(inputs_1.manifestFile, platform, arch, resolvedVersion, checkSum, githubToken);
|
const downloadVersionResult = inputs_1.manifestFile !== undefined
|
||||||
|
? await (0, download_version_1.downloadVersionFromManifest)(inputs_1.manifestFile, platform, arch, resolvedVersion, checkSum, githubToken)
|
||||||
|
: await (0, download_version_1.downloadVersionFromNdjson)(platform, arch, resolvedVersion, checkSum, githubToken);
|
||||||
return {
|
return {
|
||||||
uvDir: downloadVersionResult.cachedToolDir,
|
uvDir: downloadVersionResult.cachedToolDir,
|
||||||
version: downloadVersionResult.version,
|
version: downloadVersionResult.version,
|
||||||
@@ -96337,21 +96924,21 @@ async function setupUv(platform, arch, checkSum, githubToken) {
|
|||||||
}
|
}
|
||||||
async function determineVersion(manifestFile) {
|
async function determineVersion(manifestFile) {
|
||||||
if (inputs_1.version !== "") {
|
if (inputs_1.version !== "") {
|
||||||
return await (0, download_version_1.resolveVersion)(inputs_1.version, manifestFile, inputs_1.githubToken, inputs_1.resolutionStrategy);
|
return await (0, download_version_1.resolveVersion)(inputs_1.version, manifestFile, inputs_1.resolutionStrategy);
|
||||||
}
|
}
|
||||||
if (inputs_1.versionFile !== "") {
|
if (inputs_1.versionFile !== "") {
|
||||||
const versionFromFile = (0, resolve_1.getUvVersionFromFile)(inputs_1.versionFile);
|
const versionFromFile = (0, resolve_1.getUvVersionFromFile)(inputs_1.versionFile);
|
||||||
if (versionFromFile === undefined) {
|
if (versionFromFile === undefined) {
|
||||||
throw new Error(`Could not determine uv version from file: ${inputs_1.versionFile}`);
|
throw new Error(`Could not determine uv version from file: ${inputs_1.versionFile}`);
|
||||||
}
|
}
|
||||||
return await (0, download_version_1.resolveVersion)(versionFromFile, manifestFile, inputs_1.githubToken, inputs_1.resolutionStrategy);
|
return await (0, download_version_1.resolveVersion)(versionFromFile, manifestFile, inputs_1.resolutionStrategy);
|
||||||
}
|
}
|
||||||
const versionFromUvToml = (0, resolve_1.getUvVersionFromFile)(`${inputs_1.workingDirectory}${path.sep}uv.toml`);
|
const versionFromUvToml = (0, resolve_1.getUvVersionFromFile)(`${inputs_1.workingDirectory}${path.sep}uv.toml`);
|
||||||
const versionFromPyproject = (0, resolve_1.getUvVersionFromFile)(`${inputs_1.workingDirectory}${path.sep}pyproject.toml`);
|
const versionFromPyproject = (0, resolve_1.getUvVersionFromFile)(`${inputs_1.workingDirectory}${path.sep}pyproject.toml`);
|
||||||
if (versionFromUvToml === undefined && versionFromPyproject === undefined) {
|
if (versionFromUvToml === undefined && versionFromPyproject === undefined) {
|
||||||
core.info("Could not determine uv version from uv.toml or pyproject.toml. Falling back to latest.");
|
core.info("Could not determine uv version from uv.toml or pyproject.toml. Falling back to latest.");
|
||||||
}
|
}
|
||||||
return await (0, download_version_1.resolveVersion)(versionFromUvToml || versionFromPyproject || "latest", manifestFile, inputs_1.githubToken, inputs_1.resolutionStrategy);
|
return await (0, download_version_1.resolveVersion)(versionFromUvToml || versionFromPyproject || "latest", manifestFile, inputs_1.resolutionStrategy);
|
||||||
}
|
}
|
||||||
function addUvToPathAndOutput(cachedPath) {
|
function addUvToPathAndOutput(cachedPath) {
|
||||||
core.setOutput("uv-path", `${cachedPath}${path.sep}uv`);
|
core.setOutput("uv-path", `${cachedPath}${path.sep}uv`);
|
||||||
@@ -96424,17 +97011,21 @@ async function activateEnvironment() {
|
|||||||
if (process.env.UV_NO_MODIFY_PATH !== undefined) {
|
if (process.env.UV_NO_MODIFY_PATH !== undefined) {
|
||||||
throw new Error("UV_NO_MODIFY_PATH and activate-environment cannot be used together.");
|
throw new Error("UV_NO_MODIFY_PATH and activate-environment cannot be used together.");
|
||||||
}
|
}
|
||||||
const execArgs = ["venv", ".venv", "--directory", inputs_1.workingDirectory];
|
core.info(`Creating and activating python venv at ${inputs_1.venvPath}...`);
|
||||||
core.info("Activating python venv...");
|
await exec.exec("uv", [
|
||||||
await exec.exec("uv", execArgs);
|
"venv",
|
||||||
const venvPath = path.resolve(`${inputs_1.workingDirectory}${path.sep}.venv`);
|
inputs_1.venvPath,
|
||||||
let venvBinPath = `${venvPath}${path.sep}bin`;
|
"--directory",
|
||||||
|
inputs_1.workingDirectory,
|
||||||
|
"--clear",
|
||||||
|
]);
|
||||||
|
let venvBinPath = `${inputs_1.venvPath}${path.sep}bin`;
|
||||||
if (process.platform === "win32") {
|
if (process.platform === "win32") {
|
||||||
venvBinPath = `${venvPath}${path.sep}Scripts`;
|
venvBinPath = `${inputs_1.venvPath}${path.sep}Scripts`;
|
||||||
}
|
}
|
||||||
core.addPath(path.resolve(venvBinPath));
|
core.addPath(path.resolve(venvBinPath));
|
||||||
core.exportVariable("VIRTUAL_ENV", venvPath);
|
core.exportVariable("VIRTUAL_ENV", inputs_1.venvPath);
|
||||||
core.setOutput("venv", venvPath);
|
core.setOutput("venv", inputs_1.venvPath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function setCacheDir() {
|
function setCacheDir() {
|
||||||
@@ -96525,12 +97116,11 @@ function getConfigValueFromTomlFile(filePath, key) {
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.STATE_UV_VERSION = exports.STATE_UV_PATH = exports.TOOL_CACHE_NAME = exports.OWNER = exports.REPO = void 0;
|
exports.VERSIONS_NDJSON_URL = exports.STATE_UV_VERSION = exports.STATE_UV_PATH = exports.TOOL_CACHE_NAME = void 0;
|
||||||
exports.REPO = "uv";
|
|
||||||
exports.OWNER = "astral-sh";
|
|
||||||
exports.TOOL_CACHE_NAME = "uv";
|
exports.TOOL_CACHE_NAME = "uv";
|
||||||
exports.STATE_UV_PATH = "uv-path";
|
exports.STATE_UV_PATH = "uv-path";
|
||||||
exports.STATE_UV_VERSION = "uv-version";
|
exports.STATE_UV_VERSION = "uv-version";
|
||||||
|
exports.VERSIONS_NDJSON_URL = "https://raw.githubusercontent.com/astral-sh/versions/main/v1/uv.ndjson";
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
@@ -96606,7 +97196,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|||||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.resolutionStrategy = exports.addProblemMatchers = exports.manifestFile = exports.githubToken = exports.pythonDir = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.cachePython = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.saveCache = exports.restoreCache = exports.enableCache = exports.checkSum = exports.activateEnvironment = exports.pythonVersion = exports.versionFile = exports.version = exports.workingDirectory = exports.CacheLocalSource = void 0;
|
exports.resolutionStrategy = exports.addProblemMatchers = exports.manifestFile = exports.githubToken = exports.pythonDir = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.cachePython = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.saveCache = exports.restoreCache = exports.enableCache = exports.checkSum = exports.venvPath = exports.activateEnvironment = exports.pythonVersion = exports.versionFile = exports.version = exports.workingDirectory = exports.CacheLocalSource = void 0;
|
||||||
exports.getUvPythonDir = getUvPythonDir;
|
exports.getUvPythonDir = getUvPythonDir;
|
||||||
const node_path_1 = __importDefault(__nccwpck_require__(6760));
|
const node_path_1 = __importDefault(__nccwpck_require__(6760));
|
||||||
const core = __importStar(__nccwpck_require__(7484));
|
const core = __importStar(__nccwpck_require__(7484));
|
||||||
@@ -96623,6 +97213,7 @@ exports.version = core.getInput("version");
|
|||||||
exports.versionFile = getVersionFile();
|
exports.versionFile = getVersionFile();
|
||||||
exports.pythonVersion = core.getInput("python-version");
|
exports.pythonVersion = core.getInput("python-version");
|
||||||
exports.activateEnvironment = core.getBooleanInput("activate-environment");
|
exports.activateEnvironment = core.getBooleanInput("activate-environment");
|
||||||
|
exports.venvPath = getVenvPath();
|
||||||
exports.checkSum = core.getInput("checksum");
|
exports.checkSum = core.getInput("checksum");
|
||||||
exports.enableCache = getEnableCache();
|
exports.enableCache = getEnableCache();
|
||||||
exports.restoreCache = core.getInput("restore-cache") === "true";
|
exports.restoreCache = core.getInput("restore-cache") === "true";
|
||||||
@@ -96649,6 +97240,17 @@ function getVersionFile() {
|
|||||||
}
|
}
|
||||||
return versionFileInput;
|
return versionFileInput;
|
||||||
}
|
}
|
||||||
|
function getVenvPath() {
|
||||||
|
const venvPathInput = core.getInput("venv-path");
|
||||||
|
if (venvPathInput !== "") {
|
||||||
|
if (!exports.activateEnvironment) {
|
||||||
|
core.warning("venv-path is only used when activate-environment is true");
|
||||||
|
}
|
||||||
|
const tildeExpanded = expandTilde(venvPathInput);
|
||||||
|
return normalizePath(resolveRelativePath(tildeExpanded));
|
||||||
|
}
|
||||||
|
return normalizePath(resolveRelativePath(".venv"));
|
||||||
|
}
|
||||||
function getEnableCache() {
|
function getEnableCache() {
|
||||||
const enableCacheInput = core.getInput("enable-cache");
|
const enableCacheInput = core.getInput("enable-cache");
|
||||||
if (enableCacheInput === "auto") {
|
if (enableCacheInput === "auto") {
|
||||||
@@ -96777,6 +97379,16 @@ function expandTilde(input) {
|
|||||||
}
|
}
|
||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
|
function normalizePath(inputPath) {
|
||||||
|
const normalized = node_path_1.default.normalize(inputPath);
|
||||||
|
const root = node_path_1.default.parse(normalized).root;
|
||||||
|
// Remove any trailing path separators, except when the whole path is the root.
|
||||||
|
let trimmed = normalized;
|
||||||
|
while (trimmed.length > root.length && trimmed.endsWith(node_path_1.default.sep)) {
|
||||||
|
trimmed = trimmed.slice(0, -1);
|
||||||
|
}
|
||||||
|
return trimmed;
|
||||||
|
}
|
||||||
function resolveRelativePath(inputPath) {
|
function resolveRelativePath(inputPath) {
|
||||||
const hasNegation = inputPath.startsWith("!");
|
const hasNegation = inputPath.startsWith("!");
|
||||||
const pathWithoutNegation = hasNegation ? inputPath.substring(1) : inputPath;
|
const pathWithoutNegation = hasNegation ? inputPath.substring(1) : inputPath;
|
||||||
@@ -96803,36 +97415,6 @@ function getResolutionStrategy() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 971:
|
|
||||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
||||||
exports.Octokit = void 0;
|
|
||||||
const core_1 = __nccwpck_require__(767);
|
|
||||||
const plugin_paginate_rest_1 = __nccwpck_require__(3779);
|
|
||||||
const plugin_rest_endpoint_methods_1 = __nccwpck_require__(9210);
|
|
||||||
const fetch_1 = __nccwpck_require__(3385);
|
|
||||||
const DEFAULTS = {
|
|
||||||
baseUrl: "https://api.github.com",
|
|
||||||
userAgent: "setup-uv",
|
|
||||||
};
|
|
||||||
const OctokitWithPlugins = core_1.Octokit.plugin(plugin_paginate_rest_1.paginateRest, plugin_rest_endpoint_methods_1.legacyRestEndpointMethods);
|
|
||||||
exports.Octokit = OctokitWithPlugins.defaults(function buildDefaults(options) {
|
|
||||||
return {
|
|
||||||
...DEFAULTS,
|
|
||||||
...options,
|
|
||||||
request: {
|
|
||||||
fetch: fetch_1.fetch,
|
|
||||||
...options.request,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 8361:
|
/***/ 8361:
|
||||||
@@ -96890,6 +97472,7 @@ function getArch() {
|
|||||||
arm64: "aarch64",
|
arm64: "aarch64",
|
||||||
ia32: "i686",
|
ia32: "i686",
|
||||||
ppc64: "powerpc64le",
|
ppc64: "powerpc64le",
|
||||||
|
riscv64: "riscv64gc",
|
||||||
s390x: "s390x",
|
s390x: "s390x",
|
||||||
x64: "x86_64",
|
x64: "x86_64",
|
||||||
};
|
};
|
||||||
@@ -96964,9 +97547,15 @@ function getLinuxOSNameVersion() {
|
|||||||
const content = node_fs_1.default.readFileSync(file, "utf8");
|
const content = node_fs_1.default.readFileSync(file, "utf8");
|
||||||
const id = parseOsReleaseValue(content, "ID");
|
const id = parseOsReleaseValue(content, "ID");
|
||||||
const versionId = parseOsReleaseValue(content, "VERSION_ID");
|
const versionId = parseOsReleaseValue(content, "VERSION_ID");
|
||||||
|
// Fallback for rolling releases (debian:unstable/testing, arch, etc.)
|
||||||
|
// that don't have VERSION_ID but have VERSION_CODENAME
|
||||||
|
const versionCodename = parseOsReleaseValue(content, "VERSION_CODENAME");
|
||||||
if (id && versionId) {
|
if (id && versionId) {
|
||||||
return `${id}-${versionId}`;
|
return `${id}-${versionId}`;
|
||||||
}
|
}
|
||||||
|
if (id && versionCodename) {
|
||||||
|
return `${id}-${versionCodename}`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
// Try next file
|
// Try next file
|
||||||
@@ -99136,184 +99725,6 @@ function parseParams (str) {
|
|||||||
module.exports = parseParams
|
module.exports = parseParams
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 1120:
|
|
||||||
/***/ ((module) => {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
var __webpack_unused_export__;
|
|
||||||
|
|
||||||
|
|
||||||
const NullObject = function NullObject () { }
|
|
||||||
NullObject.prototype = Object.create(null)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* RegExp to match *( ";" parameter ) in RFC 7231 sec 3.1.1.1
|
|
||||||
*
|
|
||||||
* parameter = token "=" ( token / quoted-string )
|
|
||||||
* token = 1*tchar
|
|
||||||
* tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*"
|
|
||||||
* / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
|
|
||||||
* / DIGIT / ALPHA
|
|
||||||
* ; any VCHAR, except delimiters
|
|
||||||
* quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE
|
|
||||||
* qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text
|
|
||||||
* obs-text = %x80-FF
|
|
||||||
* quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text )
|
|
||||||
*/
|
|
||||||
const paramRE = /; *([!#$%&'*+.^\w`|~-]+)=("(?:[\v\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\v\u0020-\u00ff])*"|[!#$%&'*+.^\w`|~-]+) */gu
|
|
||||||
|
|
||||||
/**
|
|
||||||
* RegExp to match quoted-pair in RFC 7230 sec 3.2.6
|
|
||||||
*
|
|
||||||
* quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text )
|
|
||||||
* obs-text = %x80-FF
|
|
||||||
*/
|
|
||||||
const quotedPairRE = /\\([\v\u0020-\u00ff])/gu
|
|
||||||
|
|
||||||
/**
|
|
||||||
* RegExp to match type in RFC 7231 sec 3.1.1.1
|
|
||||||
*
|
|
||||||
* media-type = type "/" subtype
|
|
||||||
* type = token
|
|
||||||
* subtype = token
|
|
||||||
*/
|
|
||||||
const mediaTypeRE = /^[!#$%&'*+.^\w|~-]+\/[!#$%&'*+.^\w|~-]+$/u
|
|
||||||
|
|
||||||
// default ContentType to prevent repeated object creation
|
|
||||||
const defaultContentType = { type: '', parameters: new NullObject() }
|
|
||||||
Object.freeze(defaultContentType.parameters)
|
|
||||||
Object.freeze(defaultContentType)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parse media type to object.
|
|
||||||
*
|
|
||||||
* @param {string|object} header
|
|
||||||
* @return {Object}
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function parse (header) {
|
|
||||||
if (typeof header !== 'string') {
|
|
||||||
throw new TypeError('argument header is required and must be a string')
|
|
||||||
}
|
|
||||||
|
|
||||||
let index = header.indexOf(';')
|
|
||||||
const type = index !== -1
|
|
||||||
? header.slice(0, index).trim()
|
|
||||||
: header.trim()
|
|
||||||
|
|
||||||
if (mediaTypeRE.test(type) === false) {
|
|
||||||
throw new TypeError('invalid media type')
|
|
||||||
}
|
|
||||||
|
|
||||||
const result = {
|
|
||||||
type: type.toLowerCase(),
|
|
||||||
parameters: new NullObject()
|
|
||||||
}
|
|
||||||
|
|
||||||
// parse parameters
|
|
||||||
if (index === -1) {
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
let key
|
|
||||||
let match
|
|
||||||
let value
|
|
||||||
|
|
||||||
paramRE.lastIndex = index
|
|
||||||
|
|
||||||
while ((match = paramRE.exec(header))) {
|
|
||||||
if (match.index !== index) {
|
|
||||||
throw new TypeError('invalid parameter format')
|
|
||||||
}
|
|
||||||
|
|
||||||
index += match[0].length
|
|
||||||
key = match[1].toLowerCase()
|
|
||||||
value = match[2]
|
|
||||||
|
|
||||||
if (value[0] === '"') {
|
|
||||||
// remove quotes and escapes
|
|
||||||
value = value
|
|
||||||
.slice(1, value.length - 1)
|
|
||||||
|
|
||||||
quotedPairRE.test(value) && (value = value.replace(quotedPairRE, '$1'))
|
|
||||||
}
|
|
||||||
|
|
||||||
result.parameters[key] = value
|
|
||||||
}
|
|
||||||
|
|
||||||
if (index !== header.length) {
|
|
||||||
throw new TypeError('invalid parameter format')
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
function safeParse (header) {
|
|
||||||
if (typeof header !== 'string') {
|
|
||||||
return defaultContentType
|
|
||||||
}
|
|
||||||
|
|
||||||
let index = header.indexOf(';')
|
|
||||||
const type = index !== -1
|
|
||||||
? header.slice(0, index).trim()
|
|
||||||
: header.trim()
|
|
||||||
|
|
||||||
if (mediaTypeRE.test(type) === false) {
|
|
||||||
return defaultContentType
|
|
||||||
}
|
|
||||||
|
|
||||||
const result = {
|
|
||||||
type: type.toLowerCase(),
|
|
||||||
parameters: new NullObject()
|
|
||||||
}
|
|
||||||
|
|
||||||
// parse parameters
|
|
||||||
if (index === -1) {
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
let key
|
|
||||||
let match
|
|
||||||
let value
|
|
||||||
|
|
||||||
paramRE.lastIndex = index
|
|
||||||
|
|
||||||
while ((match = paramRE.exec(header))) {
|
|
||||||
if (match.index !== index) {
|
|
||||||
return defaultContentType
|
|
||||||
}
|
|
||||||
|
|
||||||
index += match[0].length
|
|
||||||
key = match[1].toLowerCase()
|
|
||||||
value = match[2]
|
|
||||||
|
|
||||||
if (value[0] === '"') {
|
|
||||||
// remove quotes and escapes
|
|
||||||
value = value
|
|
||||||
.slice(1, value.length - 1)
|
|
||||||
|
|
||||||
quotedPairRE.test(value) && (value = value.replace(quotedPairRE, '$1'))
|
|
||||||
}
|
|
||||||
|
|
||||||
result.parameters[key] = value
|
|
||||||
}
|
|
||||||
|
|
||||||
if (index !== header.length) {
|
|
||||||
return defaultContentType
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
__webpack_unused_export__ = { parse, safeParse }
|
|
||||||
__webpack_unused_export__ = parse
|
|
||||||
module.exports.xL = safeParse
|
|
||||||
__webpack_unused_export__ = defaultContentType
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 7106:
|
/***/ 7106:
|
||||||
@@ -99465,7 +99876,7 @@ function getStringEnd(str, seek) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// dist/date.js
|
// dist/date.js
|
||||||
var DATE_TIME_RE = /^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}:\d{2}(?:\.\d+)?)?(Z|[-+]\d{2}:\d{2})?$/i;
|
var DATE_TIME_RE = /^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i;
|
||||||
var TomlDate = class _TomlDate extends Date {
|
var TomlDate = class _TomlDate extends Date {
|
||||||
#hasDate = false;
|
#hasDate = false;
|
||||||
#hasTime = false;
|
#hasTime = false;
|
||||||
@@ -99560,13 +99971,14 @@ var TomlDate = class _TomlDate extends Date {
|
|||||||
var INT_REGEX = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/;
|
var INT_REGEX = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/;
|
||||||
var FLOAT_REGEX = /^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/;
|
var FLOAT_REGEX = /^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/;
|
||||||
var LEADING_ZERO = /^[+-]?0[0-9_]/;
|
var LEADING_ZERO = /^[+-]?0[0-9_]/;
|
||||||
var ESCAPE_REGEX = /^[0-9a-f]{4,8}$/i;
|
var ESCAPE_REGEX = /^[0-9a-f]{2,8}$/i;
|
||||||
var ESC_MAP = {
|
var ESC_MAP = {
|
||||||
b: "\b",
|
b: "\b",
|
||||||
t: " ",
|
t: " ",
|
||||||
n: "\n",
|
n: "\n",
|
||||||
f: "\f",
|
f: "\f",
|
||||||
r: "\r",
|
r: "\r",
|
||||||
|
e: "\x1B",
|
||||||
'"': '"',
|
'"': '"',
|
||||||
"\\": "\\"
|
"\\": "\\"
|
||||||
};
|
};
|
||||||
@@ -99601,8 +100013,8 @@ function parseString(str, ptr = 0, endPtr = str.length) {
|
|||||||
}
|
}
|
||||||
if (isEscape) {
|
if (isEscape) {
|
||||||
isEscape = false;
|
isEscape = false;
|
||||||
if (c === "u" || c === "U") {
|
if (c === "x" || c === "u" || c === "U") {
|
||||||
let code = str.slice(ptr, ptr += c === "u" ? 4 : 8);
|
let code = str.slice(ptr, ptr += c === "x" ? 2 : c === "u" ? 4 : 8);
|
||||||
if (!ESCAPE_REGEX.test(code)) {
|
if (!ESCAPE_REGEX.test(code)) {
|
||||||
throw new TomlError("invalid unicode escape", {
|
throw new TomlError("invalid unicode escape", {
|
||||||
toml: str,
|
toml: str,
|
||||||
@@ -99695,24 +100107,14 @@ function parseValue(value, toml, ptr, integersAsBigInt) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// dist/extract.js
|
// dist/extract.js
|
||||||
function sliceAndTrimEndOf(str, startPtr, endPtr, allowNewLines) {
|
function sliceAndTrimEndOf(str, startPtr, endPtr) {
|
||||||
let value = str.slice(startPtr, endPtr);
|
let value = str.slice(startPtr, endPtr);
|
||||||
let commentIdx = value.indexOf("#");
|
let commentIdx = value.indexOf("#");
|
||||||
if (commentIdx > -1) {
|
if (commentIdx > -1) {
|
||||||
skipComment(str, commentIdx);
|
skipComment(str, commentIdx);
|
||||||
value = value.slice(0, commentIdx);
|
value = value.slice(0, commentIdx);
|
||||||
}
|
}
|
||||||
let trimmed = value.trimEnd();
|
return [value.trimEnd(), commentIdx];
|
||||||
if (!allowNewLines) {
|
|
||||||
let newlineIdx = value.indexOf("\n", trimmed.length);
|
|
||||||
if (newlineIdx > -1) {
|
|
||||||
throw new TomlError("newlines are not allowed in inline tables", {
|
|
||||||
toml: str,
|
|
||||||
ptr: startPtr + newlineIdx
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return [trimmed, commentIdx];
|
|
||||||
}
|
}
|
||||||
function extractValue(str, ptr, end, depth, integersAsBigInt) {
|
function extractValue(str, ptr, end, depth, integersAsBigInt) {
|
||||||
if (depth === 0) {
|
if (depth === 0) {
|
||||||
@@ -99724,24 +100126,25 @@ function extractValue(str, ptr, end, depth, integersAsBigInt) {
|
|||||||
let c = str[ptr];
|
let c = str[ptr];
|
||||||
if (c === "[" || c === "{") {
|
if (c === "[" || c === "{") {
|
||||||
let [value, endPtr2] = c === "[" ? parseArray(str, ptr, depth, integersAsBigInt) : parseInlineTable(str, ptr, depth, integersAsBigInt);
|
let [value, endPtr2] = c === "[" ? parseArray(str, ptr, depth, integersAsBigInt) : parseInlineTable(str, ptr, depth, integersAsBigInt);
|
||||||
let newPtr = end ? skipUntil(str, endPtr2, ",", end) : endPtr2;
|
if (end) {
|
||||||
if (endPtr2 - newPtr && end === "}") {
|
endPtr2 = skipVoid(str, endPtr2);
|
||||||
let nextNewLine = indexOfNewline(str, endPtr2, newPtr);
|
if (str[endPtr2] === ",")
|
||||||
if (nextNewLine > -1) {
|
endPtr2++;
|
||||||
throw new TomlError("newlines are not allowed in inline tables", {
|
else if (str[endPtr2] !== end) {
|
||||||
|
throw new TomlError("expected comma or end of structure", {
|
||||||
toml: str,
|
toml: str,
|
||||||
ptr: nextNewLine
|
ptr: endPtr2
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return [value, newPtr];
|
return [value, endPtr2];
|
||||||
}
|
}
|
||||||
let endPtr;
|
let endPtr;
|
||||||
if (c === '"' || c === "'") {
|
if (c === '"' || c === "'") {
|
||||||
endPtr = getStringEnd(str, ptr);
|
endPtr = getStringEnd(str, ptr);
|
||||||
let parsed = parseString(str, ptr, endPtr);
|
let parsed = parseString(str, ptr, endPtr);
|
||||||
if (end) {
|
if (end) {
|
||||||
endPtr = skipVoid(str, endPtr, end !== "]");
|
endPtr = skipVoid(str, endPtr);
|
||||||
if (str[endPtr] && str[endPtr] !== "," && str[endPtr] !== end && str[endPtr] !== "\n" && str[endPtr] !== "\r") {
|
if (str[endPtr] && str[endPtr] !== "," && str[endPtr] !== end && str[endPtr] !== "\n" && str[endPtr] !== "\r") {
|
||||||
throw new TomlError("unexpected character encountered", {
|
throw new TomlError("unexpected character encountered", {
|
||||||
toml: str,
|
toml: str,
|
||||||
@@ -99753,7 +100156,7 @@ function extractValue(str, ptr, end, depth, integersAsBigInt) {
|
|||||||
return [parsed, endPtr];
|
return [parsed, endPtr];
|
||||||
}
|
}
|
||||||
endPtr = skipUntil(str, ptr, ",", end);
|
endPtr = skipUntil(str, ptr, ",", end);
|
||||||
let slice = sliceAndTrimEndOf(str, ptr, endPtr - +(str[endPtr - 1] === ","), end === "]");
|
let slice = sliceAndTrimEndOf(str, ptr, endPtr - +(str[endPtr - 1] === ","));
|
||||||
if (!slice[0]) {
|
if (!slice[0]) {
|
||||||
throw new TomlError("incomplete key-value declaration: no value specified", {
|
throw new TomlError("incomplete key-value declaration: no value specified", {
|
||||||
toml: str,
|
toml: str,
|
||||||
@@ -99843,17 +100246,16 @@ function parseInlineTable(str, ptr, depth, integersAsBigInt) {
|
|||||||
let res = {};
|
let res = {};
|
||||||
let seen = /* @__PURE__ */ new Set();
|
let seen = /* @__PURE__ */ new Set();
|
||||||
let c;
|
let c;
|
||||||
let comma = 0;
|
|
||||||
ptr++;
|
ptr++;
|
||||||
while ((c = str[ptr++]) !== "}" && c) {
|
while ((c = str[ptr++]) !== "}" && c) {
|
||||||
let err = { toml: str, ptr: ptr - 1 };
|
if (c === ",") {
|
||||||
if (c === "\n") {
|
throw new TomlError("expected value, found comma", {
|
||||||
throw new TomlError("newlines are not allowed in inline tables", err);
|
toml: str,
|
||||||
} else if (c === "#") {
|
ptr: ptr - 1
|
||||||
throw new TomlError("inline tables cannot contain comments", err);
|
});
|
||||||
} else if (c === ",") {
|
} else if (c === "#")
|
||||||
throw new TomlError("expected key-value, found comma", err);
|
ptr = skipComment(str, ptr);
|
||||||
} else if (c !== " " && c !== " ") {
|
else if (c !== " " && c !== " " && c !== "\n" && c !== "\r") {
|
||||||
let k;
|
let k;
|
||||||
let t = res;
|
let t = res;
|
||||||
let hasOwn = false;
|
let hasOwn = false;
|
||||||
@@ -99882,15 +100284,8 @@ function parseInlineTable(str, ptr, depth, integersAsBigInt) {
|
|||||||
seen.add(value);
|
seen.add(value);
|
||||||
t[k] = value;
|
t[k] = value;
|
||||||
ptr = valueEndPtr;
|
ptr = valueEndPtr;
|
||||||
comma = str[ptr - 1] === "," ? ptr - 1 : 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (comma) {
|
|
||||||
throw new TomlError("trailing commas are not allowed in inline tables", {
|
|
||||||
toml: str,
|
|
||||||
ptr: comma
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (!c) {
|
if (!c) {
|
||||||
throw new TomlError("unfinished table encountered", {
|
throw new TomlError("unfinished table encountered", {
|
||||||
toml: str,
|
toml: str,
|
||||||
@@ -100142,14 +100537,13 @@ function stringifyArrayTable(array, key, depth, numberAsFloat) {
|
|||||||
}
|
}
|
||||||
let res = "";
|
let res = "";
|
||||||
for (let i = 0; i < array.length; i++) {
|
for (let i = 0; i < array.length; i++) {
|
||||||
res += `[[${key}]]
|
res += `${res && "\n"}[[${key}]]
|
||||||
`;
|
`;
|
||||||
res += stringifyTable(array[i], key, depth, numberAsFloat);
|
res += stringifyTable(0, array[i], key, depth, numberAsFloat);
|
||||||
res += "\n\n";
|
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
function stringifyTable(obj, prefix, depth, numberAsFloat) {
|
function stringifyTable(tableKey, obj, prefix, depth, numberAsFloat) {
|
||||||
if (depth === 0) {
|
if (depth === 0) {
|
||||||
throw new Error("Could not stringify the object: maximum object depth exceeded");
|
throw new Error("Could not stringify the object: maximum object depth exceeded");
|
||||||
}
|
}
|
||||||
@@ -100165,13 +100559,10 @@ function stringifyTable(obj, prefix, depth, numberAsFloat) {
|
|||||||
}
|
}
|
||||||
let key = BARE_KEY.test(k) ? k : formatString(k);
|
let key = BARE_KEY.test(k) ? k : formatString(k);
|
||||||
if (type === "array" && isArrayOfTables(obj[k])) {
|
if (type === "array" && isArrayOfTables(obj[k])) {
|
||||||
tables += stringifyArrayTable(obj[k], prefix ? `${prefix}.${key}` : key, depth - 1, numberAsFloat);
|
tables += (tables && "\n") + stringifyArrayTable(obj[k], prefix ? `${prefix}.${key}` : key, depth - 1, numberAsFloat);
|
||||||
} else if (type === "object") {
|
} else if (type === "object") {
|
||||||
let tblKey = prefix ? `${prefix}.${key}` : key;
|
let tblKey = prefix ? `${prefix}.${key}` : key;
|
||||||
tables += `[${tblKey}]
|
tables += (tables && "\n") + stringifyTable(tblKey, obj[k], tblKey, depth - 1, numberAsFloat);
|
||||||
`;
|
|
||||||
tables += stringifyTable(obj[k], tblKey, depth - 1, numberAsFloat);
|
|
||||||
tables += "\n\n";
|
|
||||||
} else {
|
} else {
|
||||||
preamble += key;
|
preamble += key;
|
||||||
preamble += " = ";
|
preamble += " = ";
|
||||||
@@ -100180,14 +100571,20 @@ function stringifyTable(obj, prefix, depth, numberAsFloat) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return `${preamble}
|
if (tableKey && (preamble || !tables))
|
||||||
${tables}`.trim();
|
preamble = preamble ? `[${tableKey}]
|
||||||
|
${preamble}` : `[${tableKey}]`;
|
||||||
|
return preamble && tables ? `${preamble}
|
||||||
|
${tables}` : preamble || tables;
|
||||||
}
|
}
|
||||||
function stringify(obj, { maxDepth = 1e3, numbersAsFloat = false } = {}) {
|
function stringify(obj, { maxDepth = 1e3, numbersAsFloat = false } = {}) {
|
||||||
if (extendedTypeOf(obj) !== "object") {
|
if (extendedTypeOf(obj) !== "object") {
|
||||||
throw new TypeError("stringify can only be called with an object");
|
throw new TypeError("stringify can only be called with an object");
|
||||||
}
|
}
|
||||||
return stringifyTable(obj, "", maxDepth, numbersAsFloat);
|
let str = stringifyTable(0, obj, "", maxDepth, numbersAsFloat);
|
||||||
|
if (str[str.length - 1] !== "\n")
|
||||||
|
return str + "\n";
|
||||||
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
// dist/index.js
|
// dist/index.js
|
||||||
@@ -100223,3986 +100620,6 @@ var index_default = { parse, stringify, TomlDate, TomlError };
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 767:
|
|
||||||
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
// ESM COMPAT FLAG
|
|
||||||
__nccwpck_require__.r(__webpack_exports__);
|
|
||||||
|
|
||||||
// EXPORTS
|
|
||||||
__nccwpck_require__.d(__webpack_exports__, {
|
|
||||||
Octokit: () => (/* binding */ Octokit)
|
|
||||||
});
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/universal-user-agent/index.js
|
|
||||||
function getUserAgent() {
|
|
||||||
if (typeof navigator === "object" && "userAgent" in navigator) {
|
|
||||||
return navigator.userAgent;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof process === "object" && process.version !== undefined) {
|
|
||||||
return `Node.js/${process.version.substr(1)} (${process.platform}; ${
|
|
||||||
process.arch
|
|
||||||
})`;
|
|
||||||
}
|
|
||||||
|
|
||||||
return "<environment undetectable>";
|
|
||||||
}
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/before-after-hook/lib/register.js
|
|
||||||
// @ts-check
|
|
||||||
|
|
||||||
function register(state, name, method, options) {
|
|
||||||
if (typeof method !== "function") {
|
|
||||||
throw new Error("method for before hook must be a function");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!options) {
|
|
||||||
options = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Array.isArray(name)) {
|
|
||||||
return name.reverse().reduce((callback, name) => {
|
|
||||||
return register.bind(null, state, name, callback, options);
|
|
||||||
}, method)();
|
|
||||||
}
|
|
||||||
|
|
||||||
return Promise.resolve().then(() => {
|
|
||||||
if (!state.registry[name]) {
|
|
||||||
return method(options);
|
|
||||||
}
|
|
||||||
|
|
||||||
return state.registry[name].reduce((method, registered) => {
|
|
||||||
return registered.hook.bind(null, method, options);
|
|
||||||
}, method)();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/before-after-hook/lib/add.js
|
|
||||||
// @ts-check
|
|
||||||
|
|
||||||
function addHook(state, kind, name, hook) {
|
|
||||||
const orig = hook;
|
|
||||||
if (!state.registry[name]) {
|
|
||||||
state.registry[name] = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (kind === "before") {
|
|
||||||
hook = (method, options) => {
|
|
||||||
return Promise.resolve()
|
|
||||||
.then(orig.bind(null, options))
|
|
||||||
.then(method.bind(null, options));
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (kind === "after") {
|
|
||||||
hook = (method, options) => {
|
|
||||||
let result;
|
|
||||||
return Promise.resolve()
|
|
||||||
.then(method.bind(null, options))
|
|
||||||
.then((result_) => {
|
|
||||||
result = result_;
|
|
||||||
return orig(result, options);
|
|
||||||
})
|
|
||||||
.then(() => {
|
|
||||||
return result;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (kind === "error") {
|
|
||||||
hook = (method, options) => {
|
|
||||||
return Promise.resolve()
|
|
||||||
.then(method.bind(null, options))
|
|
||||||
.catch((error) => {
|
|
||||||
return orig(error, options);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
state.registry[name].push({
|
|
||||||
hook: hook,
|
|
||||||
orig: orig,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/before-after-hook/lib/remove.js
|
|
||||||
// @ts-check
|
|
||||||
|
|
||||||
function removeHook(state, name, method) {
|
|
||||||
if (!state.registry[name]) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const index = state.registry[name]
|
|
||||||
.map((registered) => {
|
|
||||||
return registered.orig;
|
|
||||||
})
|
|
||||||
.indexOf(method);
|
|
||||||
|
|
||||||
if (index === -1) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
state.registry[name].splice(index, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/before-after-hook/index.js
|
|
||||||
// @ts-check
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// bind with array of arguments: https://stackoverflow.com/a/21792913
|
|
||||||
const bind = Function.bind;
|
|
||||||
const bindable = bind.bind(bind);
|
|
||||||
|
|
||||||
function bindApi(hook, state, name) {
|
|
||||||
const removeHookRef = bindable(removeHook, null).apply(
|
|
||||||
null,
|
|
||||||
name ? [state, name] : [state]
|
|
||||||
);
|
|
||||||
hook.api = { remove: removeHookRef };
|
|
||||||
hook.remove = removeHookRef;
|
|
||||||
["before", "error", "after", "wrap"].forEach((kind) => {
|
|
||||||
const args = name ? [state, kind, name] : [state, kind];
|
|
||||||
hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function Singular() {
|
|
||||||
const singularHookName = Symbol("Singular");
|
|
||||||
const singularHookState = {
|
|
||||||
registry: {},
|
|
||||||
};
|
|
||||||
const singularHook = register.bind(null, singularHookState, singularHookName);
|
|
||||||
bindApi(singularHook, singularHookState, singularHookName);
|
|
||||||
return singularHook;
|
|
||||||
}
|
|
||||||
|
|
||||||
function Collection() {
|
|
||||||
const state = {
|
|
||||||
registry: {},
|
|
||||||
};
|
|
||||||
|
|
||||||
const hook = register.bind(null, state);
|
|
||||||
bindApi(hook, state);
|
|
||||||
|
|
||||||
return hook;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* harmony default export */ const before_after_hook = ({ Singular, Collection });
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/endpoint/dist-bundle/index.js
|
|
||||||
// pkg/dist-src/defaults.js
|
|
||||||
|
|
||||||
|
|
||||||
// pkg/dist-src/version.js
|
|
||||||
var VERSION = "0.0.0-development";
|
|
||||||
|
|
||||||
// pkg/dist-src/defaults.js
|
|
||||||
var userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;
|
|
||||||
var DEFAULTS = {
|
|
||||||
method: "GET",
|
|
||||||
baseUrl: "https://api.github.com",
|
|
||||||
headers: {
|
|
||||||
accept: "application/vnd.github.v3+json",
|
|
||||||
"user-agent": userAgent
|
|
||||||
},
|
|
||||||
mediaType: {
|
|
||||||
format: ""
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// pkg/dist-src/util/lowercase-keys.js
|
|
||||||
function lowercaseKeys(object) {
|
|
||||||
if (!object) {
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
return Object.keys(object).reduce((newObj, key) => {
|
|
||||||
newObj[key.toLowerCase()] = object[key];
|
|
||||||
return newObj;
|
|
||||||
}, {});
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/util/is-plain-object.js
|
|
||||||
function isPlainObject(value) {
|
|
||||||
if (typeof value !== "object" || value === null) return false;
|
|
||||||
if (Object.prototype.toString.call(value) !== "[object Object]") return false;
|
|
||||||
const proto = Object.getPrototypeOf(value);
|
|
||||||
if (proto === null) return true;
|
|
||||||
const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor;
|
|
||||||
return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/util/merge-deep.js
|
|
||||||
function mergeDeep(defaults, options) {
|
|
||||||
const result = Object.assign({}, defaults);
|
|
||||||
Object.keys(options).forEach((key) => {
|
|
||||||
if (isPlainObject(options[key])) {
|
|
||||||
if (!(key in defaults)) Object.assign(result, { [key]: options[key] });
|
|
||||||
else result[key] = mergeDeep(defaults[key], options[key]);
|
|
||||||
} else {
|
|
||||||
Object.assign(result, { [key]: options[key] });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/util/remove-undefined-properties.js
|
|
||||||
function removeUndefinedProperties(obj) {
|
|
||||||
for (const key in obj) {
|
|
||||||
if (obj[key] === void 0) {
|
|
||||||
delete obj[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/merge.js
|
|
||||||
function merge(defaults, route, options) {
|
|
||||||
if (typeof route === "string") {
|
|
||||||
let [method, url] = route.split(" ");
|
|
||||||
options = Object.assign(url ? { method, url } : { url: method }, options);
|
|
||||||
} else {
|
|
||||||
options = Object.assign({}, route);
|
|
||||||
}
|
|
||||||
options.headers = lowercaseKeys(options.headers);
|
|
||||||
removeUndefinedProperties(options);
|
|
||||||
removeUndefinedProperties(options.headers);
|
|
||||||
const mergedOptions = mergeDeep(defaults || {}, options);
|
|
||||||
if (options.url === "/graphql") {
|
|
||||||
if (defaults && defaults.mediaType.previews?.length) {
|
|
||||||
mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(
|
|
||||||
(preview) => !mergedOptions.mediaType.previews.includes(preview)
|
|
||||||
).concat(mergedOptions.mediaType.previews);
|
|
||||||
}
|
|
||||||
mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, ""));
|
|
||||||
}
|
|
||||||
return mergedOptions;
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/util/add-query-parameters.js
|
|
||||||
function addQueryParameters(url, parameters) {
|
|
||||||
const separator = /\?/.test(url) ? "&" : "?";
|
|
||||||
const names = Object.keys(parameters);
|
|
||||||
if (names.length === 0) {
|
|
||||||
return url;
|
|
||||||
}
|
|
||||||
return url + separator + names.map((name) => {
|
|
||||||
if (name === "q") {
|
|
||||||
return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+");
|
|
||||||
}
|
|
||||||
return `${name}=${encodeURIComponent(parameters[name])}`;
|
|
||||||
}).join("&");
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/util/extract-url-variable-names.js
|
|
||||||
var urlVariableRegex = /\{[^{}}]+\}/g;
|
|
||||||
function removeNonChars(variableName) {
|
|
||||||
return variableName.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g, "").split(/,/);
|
|
||||||
}
|
|
||||||
function extractUrlVariableNames(url) {
|
|
||||||
const matches = url.match(urlVariableRegex);
|
|
||||||
if (!matches) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/util/omit.js
|
|
||||||
function omit(object, keysToOmit) {
|
|
||||||
const result = { __proto__: null };
|
|
||||||
for (const key of Object.keys(object)) {
|
|
||||||
if (keysToOmit.indexOf(key) === -1) {
|
|
||||||
result[key] = object[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/util/url-template.js
|
|
||||||
function encodeReserved(str) {
|
|
||||||
return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) {
|
|
||||||
if (!/%[0-9A-Fa-f]/.test(part)) {
|
|
||||||
part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]");
|
|
||||||
}
|
|
||||||
return part;
|
|
||||||
}).join("");
|
|
||||||
}
|
|
||||||
function encodeUnreserved(str) {
|
|
||||||
return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
|
|
||||||
return "%" + c.charCodeAt(0).toString(16).toUpperCase();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
function encodeValue(operator, value, key) {
|
|
||||||
value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value);
|
|
||||||
if (key) {
|
|
||||||
return encodeUnreserved(key) + "=" + value;
|
|
||||||
} else {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function isDefined(value) {
|
|
||||||
return value !== void 0 && value !== null;
|
|
||||||
}
|
|
||||||
function isKeyOperator(operator) {
|
|
||||||
return operator === ";" || operator === "&" || operator === "?";
|
|
||||||
}
|
|
||||||
function getValues(context, operator, key, modifier) {
|
|
||||||
var value = context[key], result = [];
|
|
||||||
if (isDefined(value) && value !== "") {
|
|
||||||
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
||||||
value = value.toString();
|
|
||||||
if (modifier && modifier !== "*") {
|
|
||||||
value = value.substring(0, parseInt(modifier, 10));
|
|
||||||
}
|
|
||||||
result.push(
|
|
||||||
encodeValue(operator, value, isKeyOperator(operator) ? key : "")
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
if (modifier === "*") {
|
|
||||||
if (Array.isArray(value)) {
|
|
||||||
value.filter(isDefined).forEach(function(value2) {
|
|
||||||
result.push(
|
|
||||||
encodeValue(operator, value2, isKeyOperator(operator) ? key : "")
|
|
||||||
);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
Object.keys(value).forEach(function(k) {
|
|
||||||
if (isDefined(value[k])) {
|
|
||||||
result.push(encodeValue(operator, value[k], k));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
const tmp = [];
|
|
||||||
if (Array.isArray(value)) {
|
|
||||||
value.filter(isDefined).forEach(function(value2) {
|
|
||||||
tmp.push(encodeValue(operator, value2));
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
Object.keys(value).forEach(function(k) {
|
|
||||||
if (isDefined(value[k])) {
|
|
||||||
tmp.push(encodeUnreserved(k));
|
|
||||||
tmp.push(encodeValue(operator, value[k].toString()));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (isKeyOperator(operator)) {
|
|
||||||
result.push(encodeUnreserved(key) + "=" + tmp.join(","));
|
|
||||||
} else if (tmp.length !== 0) {
|
|
||||||
result.push(tmp.join(","));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (operator === ";") {
|
|
||||||
if (isDefined(value)) {
|
|
||||||
result.push(encodeUnreserved(key));
|
|
||||||
}
|
|
||||||
} else if (value === "" && (operator === "&" || operator === "?")) {
|
|
||||||
result.push(encodeUnreserved(key) + "=");
|
|
||||||
} else if (value === "") {
|
|
||||||
result.push("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
function parseUrl(template) {
|
|
||||||
return {
|
|
||||||
expand: expand.bind(null, template)
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function expand(template, context) {
|
|
||||||
var operators = ["+", "#", ".", "/", ";", "?", "&"];
|
|
||||||
template = template.replace(
|
|
||||||
/\{([^\{\}]+)\}|([^\{\}]+)/g,
|
|
||||||
function(_, expression, literal) {
|
|
||||||
if (expression) {
|
|
||||||
let operator = "";
|
|
||||||
const values = [];
|
|
||||||
if (operators.indexOf(expression.charAt(0)) !== -1) {
|
|
||||||
operator = expression.charAt(0);
|
|
||||||
expression = expression.substr(1);
|
|
||||||
}
|
|
||||||
expression.split(/,/g).forEach(function(variable) {
|
|
||||||
var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable);
|
|
||||||
values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));
|
|
||||||
});
|
|
||||||
if (operator && operator !== "+") {
|
|
||||||
var separator = ",";
|
|
||||||
if (operator === "?") {
|
|
||||||
separator = "&";
|
|
||||||
} else if (operator !== "#") {
|
|
||||||
separator = operator;
|
|
||||||
}
|
|
||||||
return (values.length !== 0 ? operator : "") + values.join(separator);
|
|
||||||
} else {
|
|
||||||
return values.join(",");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return encodeReserved(literal);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
if (template === "/") {
|
|
||||||
return template;
|
|
||||||
} else {
|
|
||||||
return template.replace(/\/$/, "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/parse.js
|
|
||||||
function parse(options) {
|
|
||||||
let method = options.method.toUpperCase();
|
|
||||||
let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}");
|
|
||||||
let headers = Object.assign({}, options.headers);
|
|
||||||
let body;
|
|
||||||
let parameters = omit(options, [
|
|
||||||
"method",
|
|
||||||
"baseUrl",
|
|
||||||
"url",
|
|
||||||
"headers",
|
|
||||||
"request",
|
|
||||||
"mediaType"
|
|
||||||
]);
|
|
||||||
const urlVariableNames = extractUrlVariableNames(url);
|
|
||||||
url = parseUrl(url).expand(parameters);
|
|
||||||
if (!/^http/.test(url)) {
|
|
||||||
url = options.baseUrl + url;
|
|
||||||
}
|
|
||||||
const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl");
|
|
||||||
const remainingParameters = omit(parameters, omittedParameters);
|
|
||||||
const isBinaryRequest = /application\/octet-stream/i.test(headers.accept);
|
|
||||||
if (!isBinaryRequest) {
|
|
||||||
if (options.mediaType.format) {
|
|
||||||
headers.accept = headers.accept.split(/,/).map(
|
|
||||||
(format) => format.replace(
|
|
||||||
/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,
|
|
||||||
`application/vnd$1$2.${options.mediaType.format}`
|
|
||||||
)
|
|
||||||
).join(",");
|
|
||||||
}
|
|
||||||
if (url.endsWith("/graphql")) {
|
|
||||||
if (options.mediaType.previews?.length) {
|
|
||||||
const previewsFromAcceptHeader = headers.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g) || [];
|
|
||||||
headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => {
|
|
||||||
const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json";
|
|
||||||
return `application/vnd.github.${preview}-preview${format}`;
|
|
||||||
}).join(",");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (["GET", "HEAD"].includes(method)) {
|
|
||||||
url = addQueryParameters(url, remainingParameters);
|
|
||||||
} else {
|
|
||||||
if ("data" in remainingParameters) {
|
|
||||||
body = remainingParameters.data;
|
|
||||||
} else {
|
|
||||||
if (Object.keys(remainingParameters).length) {
|
|
||||||
body = remainingParameters;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!headers["content-type"] && typeof body !== "undefined") {
|
|
||||||
headers["content-type"] = "application/json; charset=utf-8";
|
|
||||||
}
|
|
||||||
if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") {
|
|
||||||
body = "";
|
|
||||||
}
|
|
||||||
return Object.assign(
|
|
||||||
{ method, url, headers },
|
|
||||||
typeof body !== "undefined" ? { body } : null,
|
|
||||||
options.request ? { request: options.request } : null
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/endpoint-with-defaults.js
|
|
||||||
function endpointWithDefaults(defaults, route, options) {
|
|
||||||
return parse(merge(defaults, route, options));
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/with-defaults.js
|
|
||||||
function withDefaults(oldDefaults, newDefaults) {
|
|
||||||
const DEFAULTS2 = merge(oldDefaults, newDefaults);
|
|
||||||
const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2);
|
|
||||||
return Object.assign(endpoint2, {
|
|
||||||
DEFAULTS: DEFAULTS2,
|
|
||||||
defaults: withDefaults.bind(null, DEFAULTS2),
|
|
||||||
merge: merge.bind(null, DEFAULTS2),
|
|
||||||
parse
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/index.js
|
|
||||||
var endpoint = withDefaults(null, DEFAULTS);
|
|
||||||
|
|
||||||
|
|
||||||
// EXTERNAL MODULE: ./node_modules/fast-content-type-parse/index.js
|
|
||||||
var fast_content_type_parse = __nccwpck_require__(1120);
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/request-error/dist-src/index.js
|
|
||||||
class RequestError extends Error {
|
|
||||||
name;
|
|
||||||
/**
|
|
||||||
* http status code
|
|
||||||
*/
|
|
||||||
status;
|
|
||||||
/**
|
|
||||||
* Request options that lead to the error.
|
|
||||||
*/
|
|
||||||
request;
|
|
||||||
/**
|
|
||||||
* Response object if a response was received
|
|
||||||
*/
|
|
||||||
response;
|
|
||||||
constructor(message, statusCode, options) {
|
|
||||||
super(message, { cause: options.cause });
|
|
||||||
this.name = "HttpError";
|
|
||||||
this.status = Number.parseInt(statusCode);
|
|
||||||
if (Number.isNaN(this.status)) {
|
|
||||||
this.status = 0;
|
|
||||||
}
|
|
||||||
/* v8 ignore else -- @preserve -- Bug with vitest coverage where it sees an else branch that doesn't exist */
|
|
||||||
if ("response" in options) {
|
|
||||||
this.response = options.response;
|
|
||||||
}
|
|
||||||
const requestCopy = Object.assign({}, options.request);
|
|
||||||
if (options.request.headers.authorization) {
|
|
||||||
requestCopy.headers = Object.assign({}, options.request.headers, {
|
|
||||||
authorization: options.request.headers.authorization.replace(
|
|
||||||
/(?<! ) .*$/,
|
|
||||||
" [REDACTED]"
|
|
||||||
)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
requestCopy.url = requestCopy.url.replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]").replace(/\baccess_token=\w+/g, "access_token=[REDACTED]");
|
|
||||||
this.request = requestCopy;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/request/dist-bundle/index.js
|
|
||||||
// pkg/dist-src/index.js
|
|
||||||
|
|
||||||
|
|
||||||
// pkg/dist-src/defaults.js
|
|
||||||
|
|
||||||
|
|
||||||
// pkg/dist-src/version.js
|
|
||||||
var dist_bundle_VERSION = "10.0.7";
|
|
||||||
|
|
||||||
// pkg/dist-src/defaults.js
|
|
||||||
var defaults_default = {
|
|
||||||
headers: {
|
|
||||||
"user-agent": `octokit-request.js/${dist_bundle_VERSION} ${getUserAgent()}`
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// pkg/dist-src/fetch-wrapper.js
|
|
||||||
|
|
||||||
|
|
||||||
// pkg/dist-src/is-plain-object.js
|
|
||||||
function dist_bundle_isPlainObject(value) {
|
|
||||||
if (typeof value !== "object" || value === null) return false;
|
|
||||||
if (Object.prototype.toString.call(value) !== "[object Object]") return false;
|
|
||||||
const proto = Object.getPrototypeOf(value);
|
|
||||||
if (proto === null) return true;
|
|
||||||
const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor;
|
|
||||||
return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/fetch-wrapper.js
|
|
||||||
|
|
||||||
var noop = () => "";
|
|
||||||
async function fetchWrapper(requestOptions) {
|
|
||||||
const fetch = requestOptions.request?.fetch || globalThis.fetch;
|
|
||||||
if (!fetch) {
|
|
||||||
throw new Error(
|
|
||||||
"fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
const log = requestOptions.request?.log || console;
|
|
||||||
const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false;
|
|
||||||
const body = dist_bundle_isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body) ? JSON.stringify(requestOptions.body) : requestOptions.body;
|
|
||||||
const requestHeaders = Object.fromEntries(
|
|
||||||
Object.entries(requestOptions.headers).map(([name, value]) => [
|
|
||||||
name,
|
|
||||||
String(value)
|
|
||||||
])
|
|
||||||
);
|
|
||||||
let fetchResponse;
|
|
||||||
try {
|
|
||||||
fetchResponse = await fetch(requestOptions.url, {
|
|
||||||
method: requestOptions.method,
|
|
||||||
body,
|
|
||||||
redirect: requestOptions.request?.redirect,
|
|
||||||
headers: requestHeaders,
|
|
||||||
signal: requestOptions.request?.signal,
|
|
||||||
// duplex must be set if request.body is ReadableStream or Async Iterables.
|
|
||||||
// See https://fetch.spec.whatwg.org/#dom-requestinit-duplex.
|
|
||||||
...requestOptions.body && { duplex: "half" }
|
|
||||||
});
|
|
||||||
} catch (error) {
|
|
||||||
let message = "Unknown Error";
|
|
||||||
if (error instanceof Error) {
|
|
||||||
if (error.name === "AbortError") {
|
|
||||||
error.status = 500;
|
|
||||||
throw error;
|
|
||||||
}
|
|
||||||
message = error.message;
|
|
||||||
if (error.name === "TypeError" && "cause" in error) {
|
|
||||||
if (error.cause instanceof Error) {
|
|
||||||
message = error.cause.message;
|
|
||||||
} else if (typeof error.cause === "string") {
|
|
||||||
message = error.cause;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const requestError = new RequestError(message, 500, {
|
|
||||||
request: requestOptions
|
|
||||||
});
|
|
||||||
requestError.cause = error;
|
|
||||||
throw requestError;
|
|
||||||
}
|
|
||||||
const status = fetchResponse.status;
|
|
||||||
const url = fetchResponse.url;
|
|
||||||
const responseHeaders = {};
|
|
||||||
for (const [key, value] of fetchResponse.headers) {
|
|
||||||
responseHeaders[key] = value;
|
|
||||||
}
|
|
||||||
const octokitResponse = {
|
|
||||||
url,
|
|
||||||
status,
|
|
||||||
headers: responseHeaders,
|
|
||||||
data: ""
|
|
||||||
};
|
|
||||||
if ("deprecation" in responseHeaders) {
|
|
||||||
const matches = responseHeaders.link && responseHeaders.link.match(/<([^<>]+)>; rel="deprecation"/);
|
|
||||||
const deprecationLink = matches && matches.pop();
|
|
||||||
log.warn(
|
|
||||||
`[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${responseHeaders.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (status === 204 || status === 205) {
|
|
||||||
return octokitResponse;
|
|
||||||
}
|
|
||||||
if (requestOptions.method === "HEAD") {
|
|
||||||
if (status < 400) {
|
|
||||||
return octokitResponse;
|
|
||||||
}
|
|
||||||
throw new RequestError(fetchResponse.statusText, status, {
|
|
||||||
response: octokitResponse,
|
|
||||||
request: requestOptions
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (status === 304) {
|
|
||||||
octokitResponse.data = await getResponseData(fetchResponse);
|
|
||||||
throw new RequestError("Not modified", status, {
|
|
||||||
response: octokitResponse,
|
|
||||||
request: requestOptions
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (status >= 400) {
|
|
||||||
octokitResponse.data = await getResponseData(fetchResponse);
|
|
||||||
throw new RequestError(toErrorMessage(octokitResponse.data), status, {
|
|
||||||
response: octokitResponse,
|
|
||||||
request: requestOptions
|
|
||||||
});
|
|
||||||
}
|
|
||||||
octokitResponse.data = parseSuccessResponseBody ? await getResponseData(fetchResponse) : fetchResponse.body;
|
|
||||||
return octokitResponse;
|
|
||||||
}
|
|
||||||
async function getResponseData(response) {
|
|
||||||
const contentType = response.headers.get("content-type");
|
|
||||||
if (!contentType) {
|
|
||||||
return response.text().catch(noop);
|
|
||||||
}
|
|
||||||
const mimetype = (0,fast_content_type_parse/* safeParse */.xL)(contentType);
|
|
||||||
if (isJSONResponse(mimetype)) {
|
|
||||||
let text = "";
|
|
||||||
try {
|
|
||||||
text = await response.text();
|
|
||||||
return JSON.parse(text);
|
|
||||||
} catch (err) {
|
|
||||||
return text;
|
|
||||||
}
|
|
||||||
} else if (mimetype.type.startsWith("text/") || mimetype.parameters.charset?.toLowerCase() === "utf-8") {
|
|
||||||
return response.text().catch(noop);
|
|
||||||
} else {
|
|
||||||
return response.arrayBuffer().catch(
|
|
||||||
/* v8 ignore next -- @preserve */
|
|
||||||
() => new ArrayBuffer(0)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function isJSONResponse(mimetype) {
|
|
||||||
return mimetype.type === "application/json" || mimetype.type === "application/scim+json";
|
|
||||||
}
|
|
||||||
function toErrorMessage(data) {
|
|
||||||
if (typeof data === "string") {
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
if (data instanceof ArrayBuffer) {
|
|
||||||
return "Unknown error";
|
|
||||||
}
|
|
||||||
if ("message" in data) {
|
|
||||||
const suffix = "documentation_url" in data ? ` - ${data.documentation_url}` : "";
|
|
||||||
return Array.isArray(data.errors) ? `${data.message}: ${data.errors.map((v) => JSON.stringify(v)).join(", ")}${suffix}` : `${data.message}${suffix}`;
|
|
||||||
}
|
|
||||||
return `Unknown error: ${JSON.stringify(data)}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/with-defaults.js
|
|
||||||
function dist_bundle_withDefaults(oldEndpoint, newDefaults) {
|
|
||||||
const endpoint2 = oldEndpoint.defaults(newDefaults);
|
|
||||||
const newApi = function(route, parameters) {
|
|
||||||
const endpointOptions = endpoint2.merge(route, parameters);
|
|
||||||
if (!endpointOptions.request || !endpointOptions.request.hook) {
|
|
||||||
return fetchWrapper(endpoint2.parse(endpointOptions));
|
|
||||||
}
|
|
||||||
const request2 = (route2, parameters2) => {
|
|
||||||
return fetchWrapper(
|
|
||||||
endpoint2.parse(endpoint2.merge(route2, parameters2))
|
|
||||||
);
|
|
||||||
};
|
|
||||||
Object.assign(request2, {
|
|
||||||
endpoint: endpoint2,
|
|
||||||
defaults: dist_bundle_withDefaults.bind(null, endpoint2)
|
|
||||||
});
|
|
||||||
return endpointOptions.request.hook(request2, endpointOptions);
|
|
||||||
};
|
|
||||||
return Object.assign(newApi, {
|
|
||||||
endpoint: endpoint2,
|
|
||||||
defaults: dist_bundle_withDefaults.bind(null, endpoint2)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/index.js
|
|
||||||
var request = dist_bundle_withDefaults(endpoint, defaults_default);
|
|
||||||
|
|
||||||
/* v8 ignore next -- @preserve */
|
|
||||||
/* v8 ignore else -- @preserve */
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/graphql/dist-bundle/index.js
|
|
||||||
// pkg/dist-src/index.js
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// pkg/dist-src/version.js
|
|
||||||
var graphql_dist_bundle_VERSION = "0.0.0-development";
|
|
||||||
|
|
||||||
// pkg/dist-src/with-defaults.js
|
|
||||||
|
|
||||||
|
|
||||||
// pkg/dist-src/graphql.js
|
|
||||||
|
|
||||||
|
|
||||||
// pkg/dist-src/error.js
|
|
||||||
function _buildMessageForResponseErrors(data) {
|
|
||||||
return `Request failed due to following response errors:
|
|
||||||
` + data.errors.map((e) => ` - ${e.message}`).join("\n");
|
|
||||||
}
|
|
||||||
var GraphqlResponseError = class extends Error {
|
|
||||||
constructor(request2, headers, response) {
|
|
||||||
super(_buildMessageForResponseErrors(response));
|
|
||||||
this.request = request2;
|
|
||||||
this.headers = headers;
|
|
||||||
this.response = response;
|
|
||||||
this.errors = response.errors;
|
|
||||||
this.data = response.data;
|
|
||||||
if (Error.captureStackTrace) {
|
|
||||||
Error.captureStackTrace(this, this.constructor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
name = "GraphqlResponseError";
|
|
||||||
errors;
|
|
||||||
data;
|
|
||||||
};
|
|
||||||
|
|
||||||
// pkg/dist-src/graphql.js
|
|
||||||
var NON_VARIABLE_OPTIONS = [
|
|
||||||
"method",
|
|
||||||
"baseUrl",
|
|
||||||
"url",
|
|
||||||
"headers",
|
|
||||||
"request",
|
|
||||||
"query",
|
|
||||||
"mediaType",
|
|
||||||
"operationName"
|
|
||||||
];
|
|
||||||
var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"];
|
|
||||||
var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/;
|
|
||||||
function graphql(request2, query, options) {
|
|
||||||
if (options) {
|
|
||||||
if (typeof query === "string" && "query" in options) {
|
|
||||||
return Promise.reject(
|
|
||||||
new Error(`[@octokit/graphql] "query" cannot be used as variable name`)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
for (const key in options) {
|
|
||||||
if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;
|
|
||||||
return Promise.reject(
|
|
||||||
new Error(
|
|
||||||
`[@octokit/graphql] "${key}" cannot be used as variable name`
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query;
|
|
||||||
const requestOptions = Object.keys(
|
|
||||||
parsedOptions
|
|
||||||
).reduce((result, key) => {
|
|
||||||
if (NON_VARIABLE_OPTIONS.includes(key)) {
|
|
||||||
result[key] = parsedOptions[key];
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
if (!result.variables) {
|
|
||||||
result.variables = {};
|
|
||||||
}
|
|
||||||
result.variables[key] = parsedOptions[key];
|
|
||||||
return result;
|
|
||||||
}, {});
|
|
||||||
const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl;
|
|
||||||
if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {
|
|
||||||
requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql");
|
|
||||||
}
|
|
||||||
return request2(requestOptions).then((response) => {
|
|
||||||
if (response.data.errors) {
|
|
||||||
const headers = {};
|
|
||||||
for (const key of Object.keys(response.headers)) {
|
|
||||||
headers[key] = response.headers[key];
|
|
||||||
}
|
|
||||||
throw new GraphqlResponseError(
|
|
||||||
requestOptions,
|
|
||||||
headers,
|
|
||||||
response.data
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return response.data.data;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/with-defaults.js
|
|
||||||
function graphql_dist_bundle_withDefaults(request2, newDefaults) {
|
|
||||||
const newRequest = request2.defaults(newDefaults);
|
|
||||||
const newApi = (query, options) => {
|
|
||||||
return graphql(newRequest, query, options);
|
|
||||||
};
|
|
||||||
return Object.assign(newApi, {
|
|
||||||
defaults: graphql_dist_bundle_withDefaults.bind(null, newRequest),
|
|
||||||
endpoint: newRequest.endpoint
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/index.js
|
|
||||||
var graphql2 = graphql_dist_bundle_withDefaults(request, {
|
|
||||||
headers: {
|
|
||||||
"user-agent": `octokit-graphql.js/${graphql_dist_bundle_VERSION} ${getUserAgent()}`
|
|
||||||
},
|
|
||||||
method: "POST",
|
|
||||||
url: "/graphql"
|
|
||||||
});
|
|
||||||
function withCustomRequest(customRequest) {
|
|
||||||
return graphql_dist_bundle_withDefaults(customRequest, {
|
|
||||||
method: "POST",
|
|
||||||
url: "/graphql"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/auth-token/dist-bundle/index.js
|
|
||||||
// pkg/dist-src/is-jwt.js
|
|
||||||
var b64url = "(?:[a-zA-Z0-9_-]+)";
|
|
||||||
var sep = "\\.";
|
|
||||||
var jwtRE = new RegExp(`^${b64url}${sep}${b64url}${sep}${b64url}$`);
|
|
||||||
var isJWT = jwtRE.test.bind(jwtRE);
|
|
||||||
|
|
||||||
// pkg/dist-src/auth.js
|
|
||||||
async function auth(token) {
|
|
||||||
const isApp = isJWT(token);
|
|
||||||
const isInstallation = token.startsWith("v1.") || token.startsWith("ghs_");
|
|
||||||
const isUserToServer = token.startsWith("ghu_");
|
|
||||||
const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth";
|
|
||||||
return {
|
|
||||||
type: "token",
|
|
||||||
token,
|
|
||||||
tokenType
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/with-authorization-prefix.js
|
|
||||||
function withAuthorizationPrefix(token) {
|
|
||||||
if (token.split(/\./).length === 3) {
|
|
||||||
return `bearer ${token}`;
|
|
||||||
}
|
|
||||||
return `token ${token}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/hook.js
|
|
||||||
async function hook(token, request, route, parameters) {
|
|
||||||
const endpoint = request.endpoint.merge(
|
|
||||||
route,
|
|
||||||
parameters
|
|
||||||
);
|
|
||||||
endpoint.headers.authorization = withAuthorizationPrefix(token);
|
|
||||||
return request(endpoint);
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/index.js
|
|
||||||
var createTokenAuth = function createTokenAuth2(token) {
|
|
||||||
if (!token) {
|
|
||||||
throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");
|
|
||||||
}
|
|
||||||
if (typeof token !== "string") {
|
|
||||||
throw new Error(
|
|
||||||
"[@octokit/auth-token] Token passed to createTokenAuth is not a string"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
token = token.replace(/^(token|bearer) +/i, "");
|
|
||||||
return Object.assign(auth.bind(null, token), {
|
|
||||||
hook: hook.bind(null, token)
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/core/dist-src/version.js
|
|
||||||
const version_VERSION = "7.0.6";
|
|
||||||
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/core/dist-src/index.js
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const dist_src_noop = () => {
|
|
||||||
};
|
|
||||||
const consoleWarn = console.warn.bind(console);
|
|
||||||
const consoleError = console.error.bind(console);
|
|
||||||
function createLogger(logger = {}) {
|
|
||||||
if (typeof logger.debug !== "function") {
|
|
||||||
logger.debug = dist_src_noop;
|
|
||||||
}
|
|
||||||
if (typeof logger.info !== "function") {
|
|
||||||
logger.info = dist_src_noop;
|
|
||||||
}
|
|
||||||
if (typeof logger.warn !== "function") {
|
|
||||||
logger.warn = consoleWarn;
|
|
||||||
}
|
|
||||||
if (typeof logger.error !== "function") {
|
|
||||||
logger.error = consoleError;
|
|
||||||
}
|
|
||||||
return logger;
|
|
||||||
}
|
|
||||||
const userAgentTrail = `octokit-core.js/${version_VERSION} ${getUserAgent()}`;
|
|
||||||
class Octokit {
|
|
||||||
static VERSION = version_VERSION;
|
|
||||||
static defaults(defaults) {
|
|
||||||
const OctokitWithDefaults = class extends this {
|
|
||||||
constructor(...args) {
|
|
||||||
const options = args[0] || {};
|
|
||||||
if (typeof defaults === "function") {
|
|
||||||
super(defaults(options));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
super(
|
|
||||||
Object.assign(
|
|
||||||
{},
|
|
||||||
defaults,
|
|
||||||
options,
|
|
||||||
options.userAgent && defaults.userAgent ? {
|
|
||||||
userAgent: `${options.userAgent} ${defaults.userAgent}`
|
|
||||||
} : null
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return OctokitWithDefaults;
|
|
||||||
}
|
|
||||||
static plugins = [];
|
|
||||||
/**
|
|
||||||
* Attach a plugin (or many) to your Octokit instance.
|
|
||||||
*
|
|
||||||
* @example
|
|
||||||
* const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)
|
|
||||||
*/
|
|
||||||
static plugin(...newPlugins) {
|
|
||||||
const currentPlugins = this.plugins;
|
|
||||||
const NewOctokit = class extends this {
|
|
||||||
static plugins = currentPlugins.concat(
|
|
||||||
newPlugins.filter((plugin) => !currentPlugins.includes(plugin))
|
|
||||||
);
|
|
||||||
};
|
|
||||||
return NewOctokit;
|
|
||||||
}
|
|
||||||
constructor(options = {}) {
|
|
||||||
const hook = new before_after_hook.Collection();
|
|
||||||
const requestDefaults = {
|
|
||||||
baseUrl: request.endpoint.DEFAULTS.baseUrl,
|
|
||||||
headers: {},
|
|
||||||
request: Object.assign({}, options.request, {
|
|
||||||
// @ts-ignore internal usage only, no need to type
|
|
||||||
hook: hook.bind(null, "request")
|
|
||||||
}),
|
|
||||||
mediaType: {
|
|
||||||
previews: [],
|
|
||||||
format: ""
|
|
||||||
}
|
|
||||||
};
|
|
||||||
requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail;
|
|
||||||
if (options.baseUrl) {
|
|
||||||
requestDefaults.baseUrl = options.baseUrl;
|
|
||||||
}
|
|
||||||
if (options.previews) {
|
|
||||||
requestDefaults.mediaType.previews = options.previews;
|
|
||||||
}
|
|
||||||
if (options.timeZone) {
|
|
||||||
requestDefaults.headers["time-zone"] = options.timeZone;
|
|
||||||
}
|
|
||||||
this.request = request.defaults(requestDefaults);
|
|
||||||
this.graphql = withCustomRequest(this.request).defaults(requestDefaults);
|
|
||||||
this.log = createLogger(options.log);
|
|
||||||
this.hook = hook;
|
|
||||||
if (!options.authStrategy) {
|
|
||||||
if (!options.auth) {
|
|
||||||
this.auth = async () => ({
|
|
||||||
type: "unauthenticated"
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
const auth = createTokenAuth(options.auth);
|
|
||||||
hook.wrap("request", auth.hook);
|
|
||||||
this.auth = auth;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
const { authStrategy, ...otherOptions } = options;
|
|
||||||
const auth = authStrategy(
|
|
||||||
Object.assign(
|
|
||||||
{
|
|
||||||
request: this.request,
|
|
||||||
log: this.log,
|
|
||||||
// we pass the current octokit instance as well as its constructor options
|
|
||||||
// to allow for authentication strategies that return a new octokit instance
|
|
||||||
// that shares the same internal state as the current one. The original
|
|
||||||
// requirement for this was the "event-octokit" authentication strategy
|
|
||||||
// of https://github.com/probot/octokit-auth-probot.
|
|
||||||
octokit: this,
|
|
||||||
octokitOptions: otherOptions
|
|
||||||
},
|
|
||||||
options.auth
|
|
||||||
)
|
|
||||||
);
|
|
||||||
hook.wrap("request", auth.hook);
|
|
||||||
this.auth = auth;
|
|
||||||
}
|
|
||||||
const classConstructor = this.constructor;
|
|
||||||
for (let i = 0; i < classConstructor.plugins.length; ++i) {
|
|
||||||
Object.assign(this, classConstructor.plugins[i](this, options));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// assigned during constructor
|
|
||||||
request;
|
|
||||||
graphql;
|
|
||||||
log;
|
|
||||||
hook;
|
|
||||||
// TODO: type `octokit.auth` based on passed options.authStrategy
|
|
||||||
auth;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 3779:
|
|
||||||
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
__nccwpck_require__.r(__webpack_exports__);
|
|
||||||
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
||||||
/* harmony export */ composePaginateRest: () => (/* binding */ composePaginateRest),
|
|
||||||
/* harmony export */ isPaginatingEndpoint: () => (/* binding */ isPaginatingEndpoint),
|
|
||||||
/* harmony export */ paginateRest: () => (/* binding */ paginateRest),
|
|
||||||
/* harmony export */ paginatingEndpoints: () => (/* binding */ paginatingEndpoints)
|
|
||||||
/* harmony export */ });
|
|
||||||
// pkg/dist-src/version.js
|
|
||||||
var VERSION = "0.0.0-development";
|
|
||||||
|
|
||||||
// pkg/dist-src/normalize-paginated-list-response.js
|
|
||||||
function normalizePaginatedListResponse(response) {
|
|
||||||
if (!response.data) {
|
|
||||||
return {
|
|
||||||
...response,
|
|
||||||
data: []
|
|
||||||
};
|
|
||||||
}
|
|
||||||
const responseNeedsNormalization = ("total_count" in response.data || "total_commits" in response.data) && !("url" in response.data);
|
|
||||||
if (!responseNeedsNormalization) return response;
|
|
||||||
const incompleteResults = response.data.incomplete_results;
|
|
||||||
const repositorySelection = response.data.repository_selection;
|
|
||||||
const totalCount = response.data.total_count;
|
|
||||||
const totalCommits = response.data.total_commits;
|
|
||||||
delete response.data.incomplete_results;
|
|
||||||
delete response.data.repository_selection;
|
|
||||||
delete response.data.total_count;
|
|
||||||
delete response.data.total_commits;
|
|
||||||
const namespaceKey = Object.keys(response.data)[0];
|
|
||||||
const data = response.data[namespaceKey];
|
|
||||||
response.data = data;
|
|
||||||
if (typeof incompleteResults !== "undefined") {
|
|
||||||
response.data.incomplete_results = incompleteResults;
|
|
||||||
}
|
|
||||||
if (typeof repositorySelection !== "undefined") {
|
|
||||||
response.data.repository_selection = repositorySelection;
|
|
||||||
}
|
|
||||||
response.data.total_count = totalCount;
|
|
||||||
response.data.total_commits = totalCommits;
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/iterator.js
|
|
||||||
function iterator(octokit, route, parameters) {
|
|
||||||
const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);
|
|
||||||
const requestMethod = typeof route === "function" ? route : octokit.request;
|
|
||||||
const method = options.method;
|
|
||||||
const headers = options.headers;
|
|
||||||
let url = options.url;
|
|
||||||
return {
|
|
||||||
[Symbol.asyncIterator]: () => ({
|
|
||||||
async next() {
|
|
||||||
if (!url) return { done: true };
|
|
||||||
try {
|
|
||||||
const response = await requestMethod({ method, url, headers });
|
|
||||||
const normalizedResponse = normalizePaginatedListResponse(response);
|
|
||||||
url = ((normalizedResponse.headers.link || "").match(
|
|
||||||
/<([^<>]+)>;\s*rel="next"/
|
|
||||||
) || [])[1];
|
|
||||||
if (!url && "total_commits" in normalizedResponse.data) {
|
|
||||||
const parsedUrl = new URL(normalizedResponse.url);
|
|
||||||
const params = parsedUrl.searchParams;
|
|
||||||
const page = parseInt(params.get("page") || "1", 10);
|
|
||||||
const per_page = parseInt(params.get("per_page") || "250", 10);
|
|
||||||
if (page * per_page < normalizedResponse.data.total_commits) {
|
|
||||||
params.set("page", String(page + 1));
|
|
||||||
url = parsedUrl.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return { value: normalizedResponse };
|
|
||||||
} catch (error) {
|
|
||||||
if (error.status !== 409) throw error;
|
|
||||||
url = "";
|
|
||||||
return {
|
|
||||||
value: {
|
|
||||||
status: 200,
|
|
||||||
headers: {},
|
|
||||||
data: []
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/paginate.js
|
|
||||||
function paginate(octokit, route, parameters, mapFn) {
|
|
||||||
if (typeof parameters === "function") {
|
|
||||||
mapFn = parameters;
|
|
||||||
parameters = void 0;
|
|
||||||
}
|
|
||||||
return gather(
|
|
||||||
octokit,
|
|
||||||
[],
|
|
||||||
iterator(octokit, route, parameters)[Symbol.asyncIterator](),
|
|
||||||
mapFn
|
|
||||||
);
|
|
||||||
}
|
|
||||||
function gather(octokit, results, iterator2, mapFn) {
|
|
||||||
return iterator2.next().then((result) => {
|
|
||||||
if (result.done) {
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
let earlyExit = false;
|
|
||||||
function done() {
|
|
||||||
earlyExit = true;
|
|
||||||
}
|
|
||||||
results = results.concat(
|
|
||||||
mapFn ? mapFn(result.value, done) : result.value.data
|
|
||||||
);
|
|
||||||
if (earlyExit) {
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
return gather(octokit, results, iterator2, mapFn);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/compose-paginate.js
|
|
||||||
var composePaginateRest = Object.assign(paginate, {
|
|
||||||
iterator
|
|
||||||
});
|
|
||||||
|
|
||||||
// pkg/dist-src/generated/paginating-endpoints.js
|
|
||||||
var paginatingEndpoints = [
|
|
||||||
"GET /advisories",
|
|
||||||
"GET /app/hook/deliveries",
|
|
||||||
"GET /app/installation-requests",
|
|
||||||
"GET /app/installations",
|
|
||||||
"GET /assignments/{assignment_id}/accepted_assignments",
|
|
||||||
"GET /classrooms",
|
|
||||||
"GET /classrooms/{classroom_id}/assignments",
|
|
||||||
"GET /enterprises/{enterprise}/code-security/configurations",
|
|
||||||
"GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories",
|
|
||||||
"GET /enterprises/{enterprise}/dependabot/alerts",
|
|
||||||
"GET /enterprises/{enterprise}/teams",
|
|
||||||
"GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships",
|
|
||||||
"GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations",
|
|
||||||
"GET /events",
|
|
||||||
"GET /gists",
|
|
||||||
"GET /gists/public",
|
|
||||||
"GET /gists/starred",
|
|
||||||
"GET /gists/{gist_id}/comments",
|
|
||||||
"GET /gists/{gist_id}/commits",
|
|
||||||
"GET /gists/{gist_id}/forks",
|
|
||||||
"GET /installation/repositories",
|
|
||||||
"GET /issues",
|
|
||||||
"GET /licenses",
|
|
||||||
"GET /marketplace_listing/plans",
|
|
||||||
"GET /marketplace_listing/plans/{plan_id}/accounts",
|
|
||||||
"GET /marketplace_listing/stubbed/plans",
|
|
||||||
"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts",
|
|
||||||
"GET /networks/{owner}/{repo}/events",
|
|
||||||
"GET /notifications",
|
|
||||||
"GET /organizations",
|
|
||||||
"GET /organizations/{org}/dependabot/repository-access",
|
|
||||||
"GET /orgs/{org}/actions/cache/usage-by-repository",
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners",
|
|
||||||
"GET /orgs/{org}/actions/permissions/repositories",
|
|
||||||
"GET /orgs/{org}/actions/permissions/self-hosted-runners/repositories",
|
|
||||||
"GET /orgs/{org}/actions/runner-groups",
|
|
||||||
"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners",
|
|
||||||
"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories",
|
|
||||||
"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners",
|
|
||||||
"GET /orgs/{org}/actions/runners",
|
|
||||||
"GET /orgs/{org}/actions/secrets",
|
|
||||||
"GET /orgs/{org}/actions/secrets/{secret_name}/repositories",
|
|
||||||
"GET /orgs/{org}/actions/variables",
|
|
||||||
"GET /orgs/{org}/actions/variables/{name}/repositories",
|
|
||||||
"GET /orgs/{org}/attestations/repositories",
|
|
||||||
"GET /orgs/{org}/attestations/{subject_digest}",
|
|
||||||
"GET /orgs/{org}/blocks",
|
|
||||||
"GET /orgs/{org}/campaigns",
|
|
||||||
"GET /orgs/{org}/code-scanning/alerts",
|
|
||||||
"GET /orgs/{org}/code-security/configurations",
|
|
||||||
"GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories",
|
|
||||||
"GET /orgs/{org}/codespaces",
|
|
||||||
"GET /orgs/{org}/codespaces/secrets",
|
|
||||||
"GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories",
|
|
||||||
"GET /orgs/{org}/copilot/billing/seats",
|
|
||||||
"GET /orgs/{org}/copilot/metrics",
|
|
||||||
"GET /orgs/{org}/dependabot/alerts",
|
|
||||||
"GET /orgs/{org}/dependabot/secrets",
|
|
||||||
"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories",
|
|
||||||
"GET /orgs/{org}/events",
|
|
||||||
"GET /orgs/{org}/failed_invitations",
|
|
||||||
"GET /orgs/{org}/hooks",
|
|
||||||
"GET /orgs/{org}/hooks/{hook_id}/deliveries",
|
|
||||||
"GET /orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}",
|
|
||||||
"GET /orgs/{org}/insights/api/subject-stats",
|
|
||||||
"GET /orgs/{org}/insights/api/user-stats/{user_id}",
|
|
||||||
"GET /orgs/{org}/installations",
|
|
||||||
"GET /orgs/{org}/invitations",
|
|
||||||
"GET /orgs/{org}/invitations/{invitation_id}/teams",
|
|
||||||
"GET /orgs/{org}/issues",
|
|
||||||
"GET /orgs/{org}/members",
|
|
||||||
"GET /orgs/{org}/members/{username}/codespaces",
|
|
||||||
"GET /orgs/{org}/migrations",
|
|
||||||
"GET /orgs/{org}/migrations/{migration_id}/repositories",
|
|
||||||
"GET /orgs/{org}/organization-roles/{role_id}/teams",
|
|
||||||
"GET /orgs/{org}/organization-roles/{role_id}/users",
|
|
||||||
"GET /orgs/{org}/outside_collaborators",
|
|
||||||
"GET /orgs/{org}/packages",
|
|
||||||
"GET /orgs/{org}/packages/{package_type}/{package_name}/versions",
|
|
||||||
"GET /orgs/{org}/personal-access-token-requests",
|
|
||||||
"GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories",
|
|
||||||
"GET /orgs/{org}/personal-access-tokens",
|
|
||||||
"GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories",
|
|
||||||
"GET /orgs/{org}/private-registries",
|
|
||||||
"GET /orgs/{org}/projects",
|
|
||||||
"GET /orgs/{org}/projectsV2",
|
|
||||||
"GET /orgs/{org}/projectsV2/{project_number}/fields",
|
|
||||||
"GET /orgs/{org}/projectsV2/{project_number}/items",
|
|
||||||
"GET /orgs/{org}/properties/values",
|
|
||||||
"GET /orgs/{org}/public_members",
|
|
||||||
"GET /orgs/{org}/repos",
|
|
||||||
"GET /orgs/{org}/rulesets",
|
|
||||||
"GET /orgs/{org}/rulesets/rule-suites",
|
|
||||||
"GET /orgs/{org}/rulesets/{ruleset_id}/history",
|
|
||||||
"GET /orgs/{org}/secret-scanning/alerts",
|
|
||||||
"GET /orgs/{org}/security-advisories",
|
|
||||||
"GET /orgs/{org}/settings/immutable-releases/repositories",
|
|
||||||
"GET /orgs/{org}/settings/network-configurations",
|
|
||||||
"GET /orgs/{org}/team/{team_slug}/copilot/metrics",
|
|
||||||
"GET /orgs/{org}/teams",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/invitations",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/members",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/projects",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/repos",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/teams",
|
|
||||||
"GET /projects/{project_id}/collaborators",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/artifacts",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/caches",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/organization-secrets",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/organization-variables",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runners",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/secrets",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/variables",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/workflows",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs",
|
|
||||||
"GET /repos/{owner}/{repo}/activity",
|
|
||||||
"GET /repos/{owner}/{repo}/assignees",
|
|
||||||
"GET /repos/{owner}/{repo}/attestations/{subject_digest}",
|
|
||||||
"GET /repos/{owner}/{repo}/branches",
|
|
||||||
"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations",
|
|
||||||
"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs",
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/alerts",
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/analyses",
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces",
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/devcontainers",
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/secrets",
|
|
||||||
"GET /repos/{owner}/{repo}/collaborators",
|
|
||||||
"GET /repos/{owner}/{repo}/comments",
|
|
||||||
"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions",
|
|
||||||
"GET /repos/{owner}/{repo}/commits",
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments",
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls",
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{ref}/check-runs",
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{ref}/check-suites",
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{ref}/status",
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{ref}/statuses",
|
|
||||||
"GET /repos/{owner}/{repo}/compare/{basehead}",
|
|
||||||
"GET /repos/{owner}/{repo}/compare/{base}...{head}",
|
|
||||||
"GET /repos/{owner}/{repo}/contributors",
|
|
||||||
"GET /repos/{owner}/{repo}/dependabot/alerts",
|
|
||||||
"GET /repos/{owner}/{repo}/dependabot/secrets",
|
|
||||||
"GET /repos/{owner}/{repo}/deployments",
|
|
||||||
"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses",
|
|
||||||
"GET /repos/{owner}/{repo}/environments",
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies",
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps",
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/secrets",
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/variables",
|
|
||||||
"GET /repos/{owner}/{repo}/events",
|
|
||||||
"GET /repos/{owner}/{repo}/forks",
|
|
||||||
"GET /repos/{owner}/{repo}/hooks",
|
|
||||||
"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries",
|
|
||||||
"GET /repos/{owner}/{repo}/invitations",
|
|
||||||
"GET /repos/{owner}/{repo}/issues",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/comments",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/events",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/comments",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/events",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/labels",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline",
|
|
||||||
"GET /repos/{owner}/{repo}/keys",
|
|
||||||
"GET /repos/{owner}/{repo}/labels",
|
|
||||||
"GET /repos/{owner}/{repo}/milestones",
|
|
||||||
"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels",
|
|
||||||
"GET /repos/{owner}/{repo}/notifications",
|
|
||||||
"GET /repos/{owner}/{repo}/pages/builds",
|
|
||||||
"GET /repos/{owner}/{repo}/projects",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/comments",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/files",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments",
|
|
||||||
"GET /repos/{owner}/{repo}/releases",
|
|
||||||
"GET /repos/{owner}/{repo}/releases/{release_id}/assets",
|
|
||||||
"GET /repos/{owner}/{repo}/releases/{release_id}/reactions",
|
|
||||||
"GET /repos/{owner}/{repo}/rules/branches/{branch}",
|
|
||||||
"GET /repos/{owner}/{repo}/rulesets",
|
|
||||||
"GET /repos/{owner}/{repo}/rulesets/rule-suites",
|
|
||||||
"GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history",
|
|
||||||
"GET /repos/{owner}/{repo}/secret-scanning/alerts",
|
|
||||||
"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations",
|
|
||||||
"GET /repos/{owner}/{repo}/security-advisories",
|
|
||||||
"GET /repos/{owner}/{repo}/stargazers",
|
|
||||||
"GET /repos/{owner}/{repo}/subscribers",
|
|
||||||
"GET /repos/{owner}/{repo}/tags",
|
|
||||||
"GET /repos/{owner}/{repo}/teams",
|
|
||||||
"GET /repos/{owner}/{repo}/topics",
|
|
||||||
"GET /repositories",
|
|
||||||
"GET /search/code",
|
|
||||||
"GET /search/commits",
|
|
||||||
"GET /search/issues",
|
|
||||||
"GET /search/labels",
|
|
||||||
"GET /search/repositories",
|
|
||||||
"GET /search/topics",
|
|
||||||
"GET /search/users",
|
|
||||||
"GET /teams/{team_id}/discussions",
|
|
||||||
"GET /teams/{team_id}/discussions/{discussion_number}/comments",
|
|
||||||
"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions",
|
|
||||||
"GET /teams/{team_id}/discussions/{discussion_number}/reactions",
|
|
||||||
"GET /teams/{team_id}/invitations",
|
|
||||||
"GET /teams/{team_id}/members",
|
|
||||||
"GET /teams/{team_id}/projects",
|
|
||||||
"GET /teams/{team_id}/repos",
|
|
||||||
"GET /teams/{team_id}/teams",
|
|
||||||
"GET /user/blocks",
|
|
||||||
"GET /user/codespaces",
|
|
||||||
"GET /user/codespaces/secrets",
|
|
||||||
"GET /user/emails",
|
|
||||||
"GET /user/followers",
|
|
||||||
"GET /user/following",
|
|
||||||
"GET /user/gpg_keys",
|
|
||||||
"GET /user/installations",
|
|
||||||
"GET /user/installations/{installation_id}/repositories",
|
|
||||||
"GET /user/issues",
|
|
||||||
"GET /user/keys",
|
|
||||||
"GET /user/marketplace_purchases",
|
|
||||||
"GET /user/marketplace_purchases/stubbed",
|
|
||||||
"GET /user/memberships/orgs",
|
|
||||||
"GET /user/migrations",
|
|
||||||
"GET /user/migrations/{migration_id}/repositories",
|
|
||||||
"GET /user/orgs",
|
|
||||||
"GET /user/packages",
|
|
||||||
"GET /user/packages/{package_type}/{package_name}/versions",
|
|
||||||
"GET /user/public_emails",
|
|
||||||
"GET /user/repos",
|
|
||||||
"GET /user/repository_invitations",
|
|
||||||
"GET /user/social_accounts",
|
|
||||||
"GET /user/ssh_signing_keys",
|
|
||||||
"GET /user/starred",
|
|
||||||
"GET /user/subscriptions",
|
|
||||||
"GET /user/teams",
|
|
||||||
"GET /users",
|
|
||||||
"GET /users/{username}/attestations/{subject_digest}",
|
|
||||||
"GET /users/{username}/events",
|
|
||||||
"GET /users/{username}/events/orgs/{org}",
|
|
||||||
"GET /users/{username}/events/public",
|
|
||||||
"GET /users/{username}/followers",
|
|
||||||
"GET /users/{username}/following",
|
|
||||||
"GET /users/{username}/gists",
|
|
||||||
"GET /users/{username}/gpg_keys",
|
|
||||||
"GET /users/{username}/keys",
|
|
||||||
"GET /users/{username}/orgs",
|
|
||||||
"GET /users/{username}/packages",
|
|
||||||
"GET /users/{username}/projects",
|
|
||||||
"GET /users/{username}/projectsV2",
|
|
||||||
"GET /users/{username}/projectsV2/{project_number}/fields",
|
|
||||||
"GET /users/{username}/projectsV2/{project_number}/items",
|
|
||||||
"GET /users/{username}/received_events",
|
|
||||||
"GET /users/{username}/received_events/public",
|
|
||||||
"GET /users/{username}/repos",
|
|
||||||
"GET /users/{username}/social_accounts",
|
|
||||||
"GET /users/{username}/ssh_signing_keys",
|
|
||||||
"GET /users/{username}/starred",
|
|
||||||
"GET /users/{username}/subscriptions"
|
|
||||||
];
|
|
||||||
|
|
||||||
// pkg/dist-src/paginating-endpoints.js
|
|
||||||
function isPaginatingEndpoint(arg) {
|
|
||||||
if (typeof arg === "string") {
|
|
||||||
return paginatingEndpoints.includes(arg);
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/index.js
|
|
||||||
function paginateRest(octokit) {
|
|
||||||
return {
|
|
||||||
paginate: Object.assign(paginate.bind(null, octokit), {
|
|
||||||
iterator: iterator.bind(null, octokit)
|
|
||||||
})
|
|
||||||
};
|
|
||||||
}
|
|
||||||
paginateRest.VERSION = VERSION;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 9210:
|
|
||||||
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
// ESM COMPAT FLAG
|
|
||||||
__nccwpck_require__.r(__webpack_exports__);
|
|
||||||
|
|
||||||
// EXPORTS
|
|
||||||
__nccwpck_require__.d(__webpack_exports__, {
|
|
||||||
legacyRestEndpointMethods: () => (/* binding */ legacyRestEndpointMethods),
|
|
||||||
restEndpointMethods: () => (/* binding */ restEndpointMethods)
|
|
||||||
});
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js
|
|
||||||
const VERSION = "17.0.0";
|
|
||||||
|
|
||||||
//# sourceMappingURL=version.js.map
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js
|
|
||||||
const Endpoints = {
|
|
||||||
actions: {
|
|
||||||
addCustomLabelsToSelfHostedRunnerForOrg: [
|
|
||||||
"POST /orgs/{org}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
addCustomLabelsToSelfHostedRunnerForRepo: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
addRepoAccessToSelfHostedRunnerGroupInOrg: [
|
|
||||||
"PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
addSelectedRepoToOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
addSelectedRepoToOrgVariable: [
|
|
||||||
"PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
approveWorkflowRun: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"
|
|
||||||
],
|
|
||||||
cancelWorkflowRun: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"
|
|
||||||
],
|
|
||||||
createEnvironmentVariable: [
|
|
||||||
"POST /repos/{owner}/{repo}/environments/{environment_name}/variables"
|
|
||||||
],
|
|
||||||
createHostedRunnerForOrg: ["POST /orgs/{org}/actions/hosted-runners"],
|
|
||||||
createOrUpdateEnvironmentSecret: [
|
|
||||||
"PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"],
|
|
||||||
createOrUpdateRepoSecret: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
createOrgVariable: ["POST /orgs/{org}/actions/variables"],
|
|
||||||
createRegistrationTokenForOrg: [
|
|
||||||
"POST /orgs/{org}/actions/runners/registration-token"
|
|
||||||
],
|
|
||||||
createRegistrationTokenForRepo: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runners/registration-token"
|
|
||||||
],
|
|
||||||
createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"],
|
|
||||||
createRemoveTokenForRepo: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runners/remove-token"
|
|
||||||
],
|
|
||||||
createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"],
|
|
||||||
createWorkflowDispatch: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"
|
|
||||||
],
|
|
||||||
deleteActionsCacheById: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"
|
|
||||||
],
|
|
||||||
deleteActionsCacheByKey: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"
|
|
||||||
],
|
|
||||||
deleteArtifact: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"
|
|
||||||
],
|
|
||||||
deleteCustomImageFromOrg: [
|
|
||||||
"DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"
|
|
||||||
],
|
|
||||||
deleteCustomImageVersionFromOrg: [
|
|
||||||
"DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"
|
|
||||||
],
|
|
||||||
deleteEnvironmentSecret: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
deleteEnvironmentVariable: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"
|
|
||||||
],
|
|
||||||
deleteHostedRunnerForOrg: [
|
|
||||||
"DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"
|
|
||||||
],
|
|
||||||
deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"],
|
|
||||||
deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"],
|
|
||||||
deleteRepoSecret: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
deleteRepoVariable: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/variables/{name}"
|
|
||||||
],
|
|
||||||
deleteSelfHostedRunnerFromOrg: [
|
|
||||||
"DELETE /orgs/{org}/actions/runners/{runner_id}"
|
|
||||||
],
|
|
||||||
deleteSelfHostedRunnerFromRepo: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"
|
|
||||||
],
|
|
||||||
deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],
|
|
||||||
deleteWorkflowRunLogs: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"
|
|
||||||
],
|
|
||||||
disableSelectedRepositoryGithubActionsOrganization: [
|
|
||||||
"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
disableWorkflow: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"
|
|
||||||
],
|
|
||||||
downloadArtifact: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"
|
|
||||||
],
|
|
||||||
downloadJobLogsForWorkflowRun: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"
|
|
||||||
],
|
|
||||||
downloadWorkflowRunAttemptLogs: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"
|
|
||||||
],
|
|
||||||
downloadWorkflowRunLogs: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"
|
|
||||||
],
|
|
||||||
enableSelectedRepositoryGithubActionsOrganization: [
|
|
||||||
"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
enableWorkflow: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"
|
|
||||||
],
|
|
||||||
forceCancelWorkflowRun: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"
|
|
||||||
],
|
|
||||||
generateRunnerJitconfigForOrg: [
|
|
||||||
"POST /orgs/{org}/actions/runners/generate-jitconfig"
|
|
||||||
],
|
|
||||||
generateRunnerJitconfigForRepo: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"
|
|
||||||
],
|
|
||||||
getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"],
|
|
||||||
getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"],
|
|
||||||
getActionsCacheUsageByRepoForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/cache/usage-by-repository"
|
|
||||||
],
|
|
||||||
getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"],
|
|
||||||
getAllowedActionsOrganization: [
|
|
||||||
"GET /orgs/{org}/actions/permissions/selected-actions"
|
|
||||||
],
|
|
||||||
getAllowedActionsRepository: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/permissions/selected-actions"
|
|
||||||
],
|
|
||||||
getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],
|
|
||||||
getCustomImageForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"
|
|
||||||
],
|
|
||||||
getCustomImageVersionForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"
|
|
||||||
],
|
|
||||||
getCustomOidcSubClaimForRepo: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/oidc/customization/sub"
|
|
||||||
],
|
|
||||||
getEnvironmentPublicKey: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"
|
|
||||||
],
|
|
||||||
getEnvironmentSecret: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
getEnvironmentVariable: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"
|
|
||||||
],
|
|
||||||
getGithubActionsDefaultWorkflowPermissionsOrganization: [
|
|
||||||
"GET /orgs/{org}/actions/permissions/workflow"
|
|
||||||
],
|
|
||||||
getGithubActionsDefaultWorkflowPermissionsRepository: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/permissions/workflow"
|
|
||||||
],
|
|
||||||
getGithubActionsPermissionsOrganization: [
|
|
||||||
"GET /orgs/{org}/actions/permissions"
|
|
||||||
],
|
|
||||||
getGithubActionsPermissionsRepository: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/permissions"
|
|
||||||
],
|
|
||||||
getHostedRunnerForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"
|
|
||||||
],
|
|
||||||
getHostedRunnersGithubOwnedImagesForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/images/github-owned"
|
|
||||||
],
|
|
||||||
getHostedRunnersLimitsForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/limits"
|
|
||||||
],
|
|
||||||
getHostedRunnersMachineSpecsForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/machine-sizes"
|
|
||||||
],
|
|
||||||
getHostedRunnersPartnerImagesForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/images/partner"
|
|
||||||
],
|
|
||||||
getHostedRunnersPlatformsForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/platforms"
|
|
||||||
],
|
|
||||||
getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],
|
|
||||||
getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"],
|
|
||||||
getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"],
|
|
||||||
getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"],
|
|
||||||
getPendingDeploymentsForRun: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"
|
|
||||||
],
|
|
||||||
getRepoPermissions: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/permissions",
|
|
||||||
{},
|
|
||||||
{ renamed: ["actions", "getGithubActionsPermissionsRepository"] }
|
|
||||||
],
|
|
||||||
getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"],
|
|
||||||
getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],
|
|
||||||
getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"],
|
|
||||||
getReviewsForRun: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"
|
|
||||||
],
|
|
||||||
getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"],
|
|
||||||
getSelfHostedRunnerForRepo: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runners/{runner_id}"
|
|
||||||
],
|
|
||||||
getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],
|
|
||||||
getWorkflowAccessToRepository: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/permissions/access"
|
|
||||||
],
|
|
||||||
getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],
|
|
||||||
getWorkflowRunAttempt: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"
|
|
||||||
],
|
|
||||||
getWorkflowRunUsage: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"
|
|
||||||
],
|
|
||||||
getWorkflowUsage: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"
|
|
||||||
],
|
|
||||||
listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"],
|
|
||||||
listCustomImageVersionsForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"
|
|
||||||
],
|
|
||||||
listCustomImagesForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/images/custom"
|
|
||||||
],
|
|
||||||
listEnvironmentSecrets: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"
|
|
||||||
],
|
|
||||||
listEnvironmentVariables: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/variables"
|
|
||||||
],
|
|
||||||
listGithubHostedRunnersInGroupForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"
|
|
||||||
],
|
|
||||||
listHostedRunnersForOrg: ["GET /orgs/{org}/actions/hosted-runners"],
|
|
||||||
listJobsForWorkflowRun: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"
|
|
||||||
],
|
|
||||||
listJobsForWorkflowRunAttempt: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"
|
|
||||||
],
|
|
||||||
listLabelsForSelfHostedRunnerForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
listLabelsForSelfHostedRunnerForRepo: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
listOrgSecrets: ["GET /orgs/{org}/actions/secrets"],
|
|
||||||
listOrgVariables: ["GET /orgs/{org}/actions/variables"],
|
|
||||||
listRepoOrganizationSecrets: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/organization-secrets"
|
|
||||||
],
|
|
||||||
listRepoOrganizationVariables: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/organization-variables"
|
|
||||||
],
|
|
||||||
listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"],
|
|
||||||
listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"],
|
|
||||||
listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"],
|
|
||||||
listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"],
|
|
||||||
listRunnerApplicationsForRepo: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runners/downloads"
|
|
||||||
],
|
|
||||||
listSelectedReposForOrgSecret: [
|
|
||||||
"GET /orgs/{org}/actions/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
listSelectedReposForOrgVariable: [
|
|
||||||
"GET /orgs/{org}/actions/variables/{name}/repositories"
|
|
||||||
],
|
|
||||||
listSelectedRepositoriesEnabledGithubActionsOrganization: [
|
|
||||||
"GET /orgs/{org}/actions/permissions/repositories"
|
|
||||||
],
|
|
||||||
listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"],
|
|
||||||
listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"],
|
|
||||||
listWorkflowRunArtifacts: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"
|
|
||||||
],
|
|
||||||
listWorkflowRuns: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"
|
|
||||||
],
|
|
||||||
listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"],
|
|
||||||
reRunJobForWorkflowRun: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"
|
|
||||||
],
|
|
||||||
reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],
|
|
||||||
reRunWorkflowFailedJobs: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"
|
|
||||||
],
|
|
||||||
removeAllCustomLabelsFromSelfHostedRunnerForOrg: [
|
|
||||||
"DELETE /orgs/{org}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
removeAllCustomLabelsFromSelfHostedRunnerForRepo: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
removeCustomLabelFromSelfHostedRunnerForOrg: [
|
|
||||||
"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"
|
|
||||||
],
|
|
||||||
removeCustomLabelFromSelfHostedRunnerForRepo: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"
|
|
||||||
],
|
|
||||||
removeSelectedRepoFromOrgSecret: [
|
|
||||||
"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
removeSelectedRepoFromOrgVariable: [
|
|
||||||
"DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
reviewCustomGatesForRun: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"
|
|
||||||
],
|
|
||||||
reviewPendingDeploymentsForRun: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"
|
|
||||||
],
|
|
||||||
setAllowedActionsOrganization: [
|
|
||||||
"PUT /orgs/{org}/actions/permissions/selected-actions"
|
|
||||||
],
|
|
||||||
setAllowedActionsRepository: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"
|
|
||||||
],
|
|
||||||
setCustomLabelsForSelfHostedRunnerForOrg: [
|
|
||||||
"PUT /orgs/{org}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
setCustomLabelsForSelfHostedRunnerForRepo: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
setCustomOidcSubClaimForRepo: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"
|
|
||||||
],
|
|
||||||
setGithubActionsDefaultWorkflowPermissionsOrganization: [
|
|
||||||
"PUT /orgs/{org}/actions/permissions/workflow"
|
|
||||||
],
|
|
||||||
setGithubActionsDefaultWorkflowPermissionsRepository: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/permissions/workflow"
|
|
||||||
],
|
|
||||||
setGithubActionsPermissionsOrganization: [
|
|
||||||
"PUT /orgs/{org}/actions/permissions"
|
|
||||||
],
|
|
||||||
setGithubActionsPermissionsRepository: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/permissions"
|
|
||||||
],
|
|
||||||
setSelectedReposForOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
setSelectedReposForOrgVariable: [
|
|
||||||
"PUT /orgs/{org}/actions/variables/{name}/repositories"
|
|
||||||
],
|
|
||||||
setSelectedRepositoriesEnabledGithubActionsOrganization: [
|
|
||||||
"PUT /orgs/{org}/actions/permissions/repositories"
|
|
||||||
],
|
|
||||||
setWorkflowAccessToRepository: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/permissions/access"
|
|
||||||
],
|
|
||||||
updateEnvironmentVariable: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"
|
|
||||||
],
|
|
||||||
updateHostedRunnerForOrg: [
|
|
||||||
"PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"
|
|
||||||
],
|
|
||||||
updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"],
|
|
||||||
updateRepoVariable: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/actions/variables/{name}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
activity: {
|
|
||||||
checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"],
|
|
||||||
deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"],
|
|
||||||
deleteThreadSubscription: [
|
|
||||||
"DELETE /notifications/threads/{thread_id}/subscription"
|
|
||||||
],
|
|
||||||
getFeeds: ["GET /feeds"],
|
|
||||||
getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"],
|
|
||||||
getThread: ["GET /notifications/threads/{thread_id}"],
|
|
||||||
getThreadSubscriptionForAuthenticatedUser: [
|
|
||||||
"GET /notifications/threads/{thread_id}/subscription"
|
|
||||||
],
|
|
||||||
listEventsForAuthenticatedUser: ["GET /users/{username}/events"],
|
|
||||||
listNotificationsForAuthenticatedUser: ["GET /notifications"],
|
|
||||||
listOrgEventsForAuthenticatedUser: [
|
|
||||||
"GET /users/{username}/events/orgs/{org}"
|
|
||||||
],
|
|
||||||
listPublicEvents: ["GET /events"],
|
|
||||||
listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"],
|
|
||||||
listPublicEventsForUser: ["GET /users/{username}/events/public"],
|
|
||||||
listPublicOrgEvents: ["GET /orgs/{org}/events"],
|
|
||||||
listReceivedEventsForUser: ["GET /users/{username}/received_events"],
|
|
||||||
listReceivedPublicEventsForUser: [
|
|
||||||
"GET /users/{username}/received_events/public"
|
|
||||||
],
|
|
||||||
listRepoEvents: ["GET /repos/{owner}/{repo}/events"],
|
|
||||||
listRepoNotificationsForAuthenticatedUser: [
|
|
||||||
"GET /repos/{owner}/{repo}/notifications"
|
|
||||||
],
|
|
||||||
listReposStarredByAuthenticatedUser: ["GET /user/starred"],
|
|
||||||
listReposStarredByUser: ["GET /users/{username}/starred"],
|
|
||||||
listReposWatchedByUser: ["GET /users/{username}/subscriptions"],
|
|
||||||
listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"],
|
|
||||||
listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"],
|
|
||||||
listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"],
|
|
||||||
markNotificationsAsRead: ["PUT /notifications"],
|
|
||||||
markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"],
|
|
||||||
markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"],
|
|
||||||
markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"],
|
|
||||||
setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"],
|
|
||||||
setThreadSubscription: [
|
|
||||||
"PUT /notifications/threads/{thread_id}/subscription"
|
|
||||||
],
|
|
||||||
starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"],
|
|
||||||
unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"]
|
|
||||||
},
|
|
||||||
apps: {
|
|
||||||
addRepoToInstallation: [
|
|
||||||
"PUT /user/installations/{installation_id}/repositories/{repository_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
addRepoToInstallationForAuthenticatedUser: [
|
|
||||||
"PUT /user/installations/{installation_id}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
checkToken: ["POST /applications/{client_id}/token"],
|
|
||||||
createFromManifest: ["POST /app-manifests/{code}/conversions"],
|
|
||||||
createInstallationAccessToken: [
|
|
||||||
"POST /app/installations/{installation_id}/access_tokens"
|
|
||||||
],
|
|
||||||
deleteAuthorization: ["DELETE /applications/{client_id}/grant"],
|
|
||||||
deleteInstallation: ["DELETE /app/installations/{installation_id}"],
|
|
||||||
deleteToken: ["DELETE /applications/{client_id}/token"],
|
|
||||||
getAuthenticated: ["GET /app"],
|
|
||||||
getBySlug: ["GET /apps/{app_slug}"],
|
|
||||||
getInstallation: ["GET /app/installations/{installation_id}"],
|
|
||||||
getOrgInstallation: ["GET /orgs/{org}/installation"],
|
|
||||||
getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"],
|
|
||||||
getSubscriptionPlanForAccount: [
|
|
||||||
"GET /marketplace_listing/accounts/{account_id}"
|
|
||||||
],
|
|
||||||
getSubscriptionPlanForAccountStubbed: [
|
|
||||||
"GET /marketplace_listing/stubbed/accounts/{account_id}"
|
|
||||||
],
|
|
||||||
getUserInstallation: ["GET /users/{username}/installation"],
|
|
||||||
getWebhookConfigForApp: ["GET /app/hook/config"],
|
|
||||||
getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"],
|
|
||||||
listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"],
|
|
||||||
listAccountsForPlanStubbed: [
|
|
||||||
"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"
|
|
||||||
],
|
|
||||||
listInstallationReposForAuthenticatedUser: [
|
|
||||||
"GET /user/installations/{installation_id}/repositories"
|
|
||||||
],
|
|
||||||
listInstallationRequestsForAuthenticatedApp: [
|
|
||||||
"GET /app/installation-requests"
|
|
||||||
],
|
|
||||||
listInstallations: ["GET /app/installations"],
|
|
||||||
listInstallationsForAuthenticatedUser: ["GET /user/installations"],
|
|
||||||
listPlans: ["GET /marketplace_listing/plans"],
|
|
||||||
listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"],
|
|
||||||
listReposAccessibleToInstallation: ["GET /installation/repositories"],
|
|
||||||
listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"],
|
|
||||||
listSubscriptionsForAuthenticatedUserStubbed: [
|
|
||||||
"GET /user/marketplace_purchases/stubbed"
|
|
||||||
],
|
|
||||||
listWebhookDeliveries: ["GET /app/hook/deliveries"],
|
|
||||||
redeliverWebhookDelivery: [
|
|
||||||
"POST /app/hook/deliveries/{delivery_id}/attempts"
|
|
||||||
],
|
|
||||||
removeRepoFromInstallation: [
|
|
||||||
"DELETE /user/installations/{installation_id}/repositories/{repository_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
removeRepoFromInstallationForAuthenticatedUser: [
|
|
||||||
"DELETE /user/installations/{installation_id}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
resetToken: ["PATCH /applications/{client_id}/token"],
|
|
||||||
revokeInstallationAccessToken: ["DELETE /installation/token"],
|
|
||||||
scopeToken: ["POST /applications/{client_id}/token/scoped"],
|
|
||||||
suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"],
|
|
||||||
unsuspendInstallation: [
|
|
||||||
"DELETE /app/installations/{installation_id}/suspended"
|
|
||||||
],
|
|
||||||
updateWebhookConfigForApp: ["PATCH /app/hook/config"]
|
|
||||||
},
|
|
||||||
billing: {
|
|
||||||
getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"],
|
|
||||||
getGithubActionsBillingUser: [
|
|
||||||
"GET /users/{username}/settings/billing/actions"
|
|
||||||
],
|
|
||||||
getGithubBillingPremiumRequestUsageReportOrg: [
|
|
||||||
"GET /organizations/{org}/settings/billing/premium_request/usage"
|
|
||||||
],
|
|
||||||
getGithubBillingPremiumRequestUsageReportUser: [
|
|
||||||
"GET /users/{username}/settings/billing/premium_request/usage"
|
|
||||||
],
|
|
||||||
getGithubBillingUsageReportOrg: [
|
|
||||||
"GET /organizations/{org}/settings/billing/usage"
|
|
||||||
],
|
|
||||||
getGithubBillingUsageReportUser: [
|
|
||||||
"GET /users/{username}/settings/billing/usage"
|
|
||||||
],
|
|
||||||
getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"],
|
|
||||||
getGithubPackagesBillingUser: [
|
|
||||||
"GET /users/{username}/settings/billing/packages"
|
|
||||||
],
|
|
||||||
getSharedStorageBillingOrg: [
|
|
||||||
"GET /orgs/{org}/settings/billing/shared-storage"
|
|
||||||
],
|
|
||||||
getSharedStorageBillingUser: [
|
|
||||||
"GET /users/{username}/settings/billing/shared-storage"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
campaigns: {
|
|
||||||
createCampaign: ["POST /orgs/{org}/campaigns"],
|
|
||||||
deleteCampaign: ["DELETE /orgs/{org}/campaigns/{campaign_number}"],
|
|
||||||
getCampaignSummary: ["GET /orgs/{org}/campaigns/{campaign_number}"],
|
|
||||||
listOrgCampaigns: ["GET /orgs/{org}/campaigns"],
|
|
||||||
updateCampaign: ["PATCH /orgs/{org}/campaigns/{campaign_number}"]
|
|
||||||
},
|
|
||||||
checks: {
|
|
||||||
create: ["POST /repos/{owner}/{repo}/check-runs"],
|
|
||||||
createSuite: ["POST /repos/{owner}/{repo}/check-suites"],
|
|
||||||
get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],
|
|
||||||
getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],
|
|
||||||
listAnnotations: [
|
|
||||||
"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"
|
|
||||||
],
|
|
||||||
listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],
|
|
||||||
listForSuite: [
|
|
||||||
"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"
|
|
||||||
],
|
|
||||||
listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],
|
|
||||||
rerequestRun: [
|
|
||||||
"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"
|
|
||||||
],
|
|
||||||
rerequestSuite: [
|
|
||||||
"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"
|
|
||||||
],
|
|
||||||
setSuitesPreferences: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/check-suites/preferences"
|
|
||||||
],
|
|
||||||
update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]
|
|
||||||
},
|
|
||||||
codeScanning: {
|
|
||||||
commitAutofix: [
|
|
||||||
"POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"
|
|
||||||
],
|
|
||||||
createAutofix: [
|
|
||||||
"POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"
|
|
||||||
],
|
|
||||||
createVariantAnalysis: [
|
|
||||||
"POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"
|
|
||||||
],
|
|
||||||
deleteAnalysis: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"
|
|
||||||
],
|
|
||||||
deleteCodeqlDatabase: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"
|
|
||||||
],
|
|
||||||
getAlert: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",
|
|
||||||
{},
|
|
||||||
{ renamedParameters: { alert_id: "alert_number" } }
|
|
||||||
],
|
|
||||||
getAnalysis: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"
|
|
||||||
],
|
|
||||||
getAutofix: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"
|
|
||||||
],
|
|
||||||
getCodeqlDatabase: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"
|
|
||||||
],
|
|
||||||
getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"],
|
|
||||||
getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],
|
|
||||||
getVariantAnalysis: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"
|
|
||||||
],
|
|
||||||
getVariantAnalysisRepoTask: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"
|
|
||||||
],
|
|
||||||
listAlertInstances: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"
|
|
||||||
],
|
|
||||||
listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"],
|
|
||||||
listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"],
|
|
||||||
listAlertsInstances: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",
|
|
||||||
{},
|
|
||||||
{ renamed: ["codeScanning", "listAlertInstances"] }
|
|
||||||
],
|
|
||||||
listCodeqlDatabases: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/codeql/databases"
|
|
||||||
],
|
|
||||||
listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"],
|
|
||||||
updateAlert: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"
|
|
||||||
],
|
|
||||||
updateDefaultSetup: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/code-scanning/default-setup"
|
|
||||||
],
|
|
||||||
uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"]
|
|
||||||
},
|
|
||||||
codeSecurity: {
|
|
||||||
attachConfiguration: [
|
|
||||||
"POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"
|
|
||||||
],
|
|
||||||
attachEnterpriseConfiguration: [
|
|
||||||
"POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"
|
|
||||||
],
|
|
||||||
createConfiguration: ["POST /orgs/{org}/code-security/configurations"],
|
|
||||||
createConfigurationForEnterprise: [
|
|
||||||
"POST /enterprises/{enterprise}/code-security/configurations"
|
|
||||||
],
|
|
||||||
deleteConfiguration: [
|
|
||||||
"DELETE /orgs/{org}/code-security/configurations/{configuration_id}"
|
|
||||||
],
|
|
||||||
deleteConfigurationForEnterprise: [
|
|
||||||
"DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"
|
|
||||||
],
|
|
||||||
detachConfiguration: [
|
|
||||||
"DELETE /orgs/{org}/code-security/configurations/detach"
|
|
||||||
],
|
|
||||||
getConfiguration: [
|
|
||||||
"GET /orgs/{org}/code-security/configurations/{configuration_id}"
|
|
||||||
],
|
|
||||||
getConfigurationForRepository: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-security-configuration"
|
|
||||||
],
|
|
||||||
getConfigurationsForEnterprise: [
|
|
||||||
"GET /enterprises/{enterprise}/code-security/configurations"
|
|
||||||
],
|
|
||||||
getConfigurationsForOrg: ["GET /orgs/{org}/code-security/configurations"],
|
|
||||||
getDefaultConfigurations: [
|
|
||||||
"GET /orgs/{org}/code-security/configurations/defaults"
|
|
||||||
],
|
|
||||||
getDefaultConfigurationsForEnterprise: [
|
|
||||||
"GET /enterprises/{enterprise}/code-security/configurations/defaults"
|
|
||||||
],
|
|
||||||
getRepositoriesForConfiguration: [
|
|
||||||
"GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"
|
|
||||||
],
|
|
||||||
getRepositoriesForEnterpriseConfiguration: [
|
|
||||||
"GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"
|
|
||||||
],
|
|
||||||
getSingleConfigurationForEnterprise: [
|
|
||||||
"GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"
|
|
||||||
],
|
|
||||||
setConfigurationAsDefault: [
|
|
||||||
"PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"
|
|
||||||
],
|
|
||||||
setConfigurationAsDefaultForEnterprise: [
|
|
||||||
"PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"
|
|
||||||
],
|
|
||||||
updateConfiguration: [
|
|
||||||
"PATCH /orgs/{org}/code-security/configurations/{configuration_id}"
|
|
||||||
],
|
|
||||||
updateEnterpriseConfiguration: [
|
|
||||||
"PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
codesOfConduct: {
|
|
||||||
getAllCodesOfConduct: ["GET /codes_of_conduct"],
|
|
||||||
getConductCode: ["GET /codes_of_conduct/{key}"]
|
|
||||||
},
|
|
||||||
codespaces: {
|
|
||||||
addRepositoryForSecretForAuthenticatedUser: [
|
|
||||||
"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
addSelectedRepoToOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
checkPermissionsForDevcontainer: [
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/permissions_check"
|
|
||||||
],
|
|
||||||
codespaceMachinesForAuthenticatedUser: [
|
|
||||||
"GET /user/codespaces/{codespace_name}/machines"
|
|
||||||
],
|
|
||||||
createForAuthenticatedUser: ["POST /user/codespaces"],
|
|
||||||
createOrUpdateOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/codespaces/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
createOrUpdateRepoSecret: [
|
|
||||||
"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
createOrUpdateSecretForAuthenticatedUser: [
|
|
||||||
"PUT /user/codespaces/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
createWithPrForAuthenticatedUser: [
|
|
||||||
"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"
|
|
||||||
],
|
|
||||||
createWithRepoForAuthenticatedUser: [
|
|
||||||
"POST /repos/{owner}/{repo}/codespaces"
|
|
||||||
],
|
|
||||||
deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"],
|
|
||||||
deleteFromOrganization: [
|
|
||||||
"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"
|
|
||||||
],
|
|
||||||
deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],
|
|
||||||
deleteRepoSecret: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
deleteSecretForAuthenticatedUser: [
|
|
||||||
"DELETE /user/codespaces/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
exportForAuthenticatedUser: [
|
|
||||||
"POST /user/codespaces/{codespace_name}/exports"
|
|
||||||
],
|
|
||||||
getCodespacesForUserInOrg: [
|
|
||||||
"GET /orgs/{org}/members/{username}/codespaces"
|
|
||||||
],
|
|
||||||
getExportDetailsForAuthenticatedUser: [
|
|
||||||
"GET /user/codespaces/{codespace_name}/exports/{export_id}"
|
|
||||||
],
|
|
||||||
getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"],
|
|
||||||
getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"],
|
|
||||||
getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"],
|
|
||||||
getPublicKeyForAuthenticatedUser: [
|
|
||||||
"GET /user/codespaces/secrets/public-key"
|
|
||||||
],
|
|
||||||
getRepoPublicKey: [
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/secrets/public-key"
|
|
||||||
],
|
|
||||||
getRepoSecret: [
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
getSecretForAuthenticatedUser: [
|
|
||||||
"GET /user/codespaces/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
listDevcontainersInRepositoryForAuthenticatedUser: [
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/devcontainers"
|
|
||||||
],
|
|
||||||
listForAuthenticatedUser: ["GET /user/codespaces"],
|
|
||||||
listInOrganization: [
|
|
||||||
"GET /orgs/{org}/codespaces",
|
|
||||||
{},
|
|
||||||
{ renamedParameters: { org_id: "org" } }
|
|
||||||
],
|
|
||||||
listInRepositoryForAuthenticatedUser: [
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces"
|
|
||||||
],
|
|
||||||
listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"],
|
|
||||||
listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"],
|
|
||||||
listRepositoriesForSecretForAuthenticatedUser: [
|
|
||||||
"GET /user/codespaces/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"],
|
|
||||||
listSelectedReposForOrgSecret: [
|
|
||||||
"GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
preFlightWithRepoForAuthenticatedUser: [
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/new"
|
|
||||||
],
|
|
||||||
publishForAuthenticatedUser: [
|
|
||||||
"POST /user/codespaces/{codespace_name}/publish"
|
|
||||||
],
|
|
||||||
removeRepositoryForSecretForAuthenticatedUser: [
|
|
||||||
"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
removeSelectedRepoFromOrgSecret: [
|
|
||||||
"DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
repoMachinesForAuthenticatedUser: [
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/machines"
|
|
||||||
],
|
|
||||||
setRepositoriesForSecretForAuthenticatedUser: [
|
|
||||||
"PUT /user/codespaces/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
setSelectedReposForOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"],
|
|
||||||
stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"],
|
|
||||||
stopInOrganization: [
|
|
||||||
"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"
|
|
||||||
],
|
|
||||||
updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"]
|
|
||||||
},
|
|
||||||
copilot: {
|
|
||||||
addCopilotSeatsForTeams: [
|
|
||||||
"POST /orgs/{org}/copilot/billing/selected_teams"
|
|
||||||
],
|
|
||||||
addCopilotSeatsForUsers: [
|
|
||||||
"POST /orgs/{org}/copilot/billing/selected_users"
|
|
||||||
],
|
|
||||||
cancelCopilotSeatAssignmentForTeams: [
|
|
||||||
"DELETE /orgs/{org}/copilot/billing/selected_teams"
|
|
||||||
],
|
|
||||||
cancelCopilotSeatAssignmentForUsers: [
|
|
||||||
"DELETE /orgs/{org}/copilot/billing/selected_users"
|
|
||||||
],
|
|
||||||
copilotMetricsForOrganization: ["GET /orgs/{org}/copilot/metrics"],
|
|
||||||
copilotMetricsForTeam: ["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],
|
|
||||||
getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"],
|
|
||||||
getCopilotSeatDetailsForUser: [
|
|
||||||
"GET /orgs/{org}/members/{username}/copilot"
|
|
||||||
],
|
|
||||||
listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"]
|
|
||||||
},
|
|
||||||
credentials: { revoke: ["POST /credentials/revoke"] },
|
|
||||||
dependabot: {
|
|
||||||
addSelectedRepoToOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
createOrUpdateOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/dependabot/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
createOrUpdateRepoSecret: [
|
|
||||||
"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],
|
|
||||||
deleteRepoSecret: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],
|
|
||||||
getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"],
|
|
||||||
getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"],
|
|
||||||
getRepoPublicKey: [
|
|
||||||
"GET /repos/{owner}/{repo}/dependabot/secrets/public-key"
|
|
||||||
],
|
|
||||||
getRepoSecret: [
|
|
||||||
"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
listAlertsForEnterprise: [
|
|
||||||
"GET /enterprises/{enterprise}/dependabot/alerts"
|
|
||||||
],
|
|
||||||
listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"],
|
|
||||||
listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"],
|
|
||||||
listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"],
|
|
||||||
listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"],
|
|
||||||
listSelectedReposForOrgSecret: [
|
|
||||||
"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
removeSelectedRepoFromOrgSecret: [
|
|
||||||
"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
repositoryAccessForOrg: [
|
|
||||||
"GET /organizations/{org}/dependabot/repository-access"
|
|
||||||
],
|
|
||||||
setRepositoryAccessDefaultLevel: [
|
|
||||||
"PUT /organizations/{org}/dependabot/repository-access/default-level"
|
|
||||||
],
|
|
||||||
setSelectedReposForOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
updateAlert: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"
|
|
||||||
],
|
|
||||||
updateRepositoryAccessForOrg: [
|
|
||||||
"PATCH /organizations/{org}/dependabot/repository-access"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
dependencyGraph: {
|
|
||||||
createRepositorySnapshot: [
|
|
||||||
"POST /repos/{owner}/{repo}/dependency-graph/snapshots"
|
|
||||||
],
|
|
||||||
diffRange: [
|
|
||||||
"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"
|
|
||||||
],
|
|
||||||
exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"]
|
|
||||||
},
|
|
||||||
emojis: { get: ["GET /emojis"] },
|
|
||||||
enterpriseTeamMemberships: {
|
|
||||||
add: [
|
|
||||||
"PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"
|
|
||||||
],
|
|
||||||
bulkAdd: [
|
|
||||||
"POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"
|
|
||||||
],
|
|
||||||
bulkRemove: [
|
|
||||||
"POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"
|
|
||||||
],
|
|
||||||
get: [
|
|
||||||
"GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"
|
|
||||||
],
|
|
||||||
list: ["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],
|
|
||||||
remove: [
|
|
||||||
"DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
enterpriseTeamOrganizations: {
|
|
||||||
add: [
|
|
||||||
"PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"
|
|
||||||
],
|
|
||||||
bulkAdd: [
|
|
||||||
"POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"
|
|
||||||
],
|
|
||||||
bulkRemove: [
|
|
||||||
"POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"
|
|
||||||
],
|
|
||||||
delete: [
|
|
||||||
"DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"
|
|
||||||
],
|
|
||||||
getAssignment: [
|
|
||||||
"GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"
|
|
||||||
],
|
|
||||||
getAssignments: [
|
|
||||||
"GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
enterpriseTeams: {
|
|
||||||
create: ["POST /enterprises/{enterprise}/teams"],
|
|
||||||
delete: ["DELETE /enterprises/{enterprise}/teams/{team_slug}"],
|
|
||||||
get: ["GET /enterprises/{enterprise}/teams/{team_slug}"],
|
|
||||||
list: ["GET /enterprises/{enterprise}/teams"],
|
|
||||||
update: ["PATCH /enterprises/{enterprise}/teams/{team_slug}"]
|
|
||||||
},
|
|
||||||
gists: {
|
|
||||||
checkIsStarred: ["GET /gists/{gist_id}/star"],
|
|
||||||
create: ["POST /gists"],
|
|
||||||
createComment: ["POST /gists/{gist_id}/comments"],
|
|
||||||
delete: ["DELETE /gists/{gist_id}"],
|
|
||||||
deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"],
|
|
||||||
fork: ["POST /gists/{gist_id}/forks"],
|
|
||||||
get: ["GET /gists/{gist_id}"],
|
|
||||||
getComment: ["GET /gists/{gist_id}/comments/{comment_id}"],
|
|
||||||
getRevision: ["GET /gists/{gist_id}/{sha}"],
|
|
||||||
list: ["GET /gists"],
|
|
||||||
listComments: ["GET /gists/{gist_id}/comments"],
|
|
||||||
listCommits: ["GET /gists/{gist_id}/commits"],
|
|
||||||
listForUser: ["GET /users/{username}/gists"],
|
|
||||||
listForks: ["GET /gists/{gist_id}/forks"],
|
|
||||||
listPublic: ["GET /gists/public"],
|
|
||||||
listStarred: ["GET /gists/starred"],
|
|
||||||
star: ["PUT /gists/{gist_id}/star"],
|
|
||||||
unstar: ["DELETE /gists/{gist_id}/star"],
|
|
||||||
update: ["PATCH /gists/{gist_id}"],
|
|
||||||
updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"]
|
|
||||||
},
|
|
||||||
git: {
|
|
||||||
createBlob: ["POST /repos/{owner}/{repo}/git/blobs"],
|
|
||||||
createCommit: ["POST /repos/{owner}/{repo}/git/commits"],
|
|
||||||
createRef: ["POST /repos/{owner}/{repo}/git/refs"],
|
|
||||||
createTag: ["POST /repos/{owner}/{repo}/git/tags"],
|
|
||||||
createTree: ["POST /repos/{owner}/{repo}/git/trees"],
|
|
||||||
deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],
|
|
||||||
getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],
|
|
||||||
getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],
|
|
||||||
getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"],
|
|
||||||
getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],
|
|
||||||
getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],
|
|
||||||
listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],
|
|
||||||
updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]
|
|
||||||
},
|
|
||||||
gitignore: {
|
|
||||||
getAllTemplates: ["GET /gitignore/templates"],
|
|
||||||
getTemplate: ["GET /gitignore/templates/{name}"]
|
|
||||||
},
|
|
||||||
hostedCompute: {
|
|
||||||
createNetworkConfigurationForOrg: [
|
|
||||||
"POST /orgs/{org}/settings/network-configurations"
|
|
||||||
],
|
|
||||||
deleteNetworkConfigurationFromOrg: [
|
|
||||||
"DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"
|
|
||||||
],
|
|
||||||
getNetworkConfigurationForOrg: [
|
|
||||||
"GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"
|
|
||||||
],
|
|
||||||
getNetworkSettingsForOrg: [
|
|
||||||
"GET /orgs/{org}/settings/network-settings/{network_settings_id}"
|
|
||||||
],
|
|
||||||
listNetworkConfigurationsForOrg: [
|
|
||||||
"GET /orgs/{org}/settings/network-configurations"
|
|
||||||
],
|
|
||||||
updateNetworkConfigurationForOrg: [
|
|
||||||
"PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
interactions: {
|
|
||||||
getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"],
|
|
||||||
getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"],
|
|
||||||
getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"],
|
|
||||||
getRestrictionsForYourPublicRepos: [
|
|
||||||
"GET /user/interaction-limits",
|
|
||||||
{},
|
|
||||||
{ renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"],
|
|
||||||
removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"],
|
|
||||||
removeRestrictionsForRepo: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/interaction-limits"
|
|
||||||
],
|
|
||||||
removeRestrictionsForYourPublicRepos: [
|
|
||||||
"DELETE /user/interaction-limits",
|
|
||||||
{},
|
|
||||||
{ renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"],
|
|
||||||
setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"],
|
|
||||||
setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"],
|
|
||||||
setRestrictionsForYourPublicRepos: [
|
|
||||||
"PUT /user/interaction-limits",
|
|
||||||
{},
|
|
||||||
{ renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
issues: {
|
|
||||||
addAssignees: [
|
|
||||||
"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"
|
|
||||||
],
|
|
||||||
addBlockedByDependency: [
|
|
||||||
"POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"
|
|
||||||
],
|
|
||||||
addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],
|
|
||||||
addSubIssue: [
|
|
||||||
"POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"
|
|
||||||
],
|
|
||||||
checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"],
|
|
||||||
checkUserCanBeAssignedToIssue: [
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"
|
|
||||||
],
|
|
||||||
create: ["POST /repos/{owner}/{repo}/issues"],
|
|
||||||
createComment: [
|
|
||||||
"POST /repos/{owner}/{repo}/issues/{issue_number}/comments"
|
|
||||||
],
|
|
||||||
createLabel: ["POST /repos/{owner}/{repo}/labels"],
|
|
||||||
createMilestone: ["POST /repos/{owner}/{repo}/milestones"],
|
|
||||||
deleteComment: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"
|
|
||||||
],
|
|
||||||
deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"],
|
|
||||||
deleteMilestone: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"
|
|
||||||
],
|
|
||||||
get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"],
|
|
||||||
getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],
|
|
||||||
getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"],
|
|
||||||
getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"],
|
|
||||||
getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],
|
|
||||||
getParent: ["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],
|
|
||||||
list: ["GET /issues"],
|
|
||||||
listAssignees: ["GET /repos/{owner}/{repo}/assignees"],
|
|
||||||
listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],
|
|
||||||
listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"],
|
|
||||||
listDependenciesBlockedBy: [
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"
|
|
||||||
],
|
|
||||||
listDependenciesBlocking: [
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"
|
|
||||||
],
|
|
||||||
listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],
|
|
||||||
listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"],
|
|
||||||
listEventsForTimeline: [
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"
|
|
||||||
],
|
|
||||||
listForAuthenticatedUser: ["GET /user/issues"],
|
|
||||||
listForOrg: ["GET /orgs/{org}/issues"],
|
|
||||||
listForRepo: ["GET /repos/{owner}/{repo}/issues"],
|
|
||||||
listLabelsForMilestone: [
|
|
||||||
"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"
|
|
||||||
],
|
|
||||||
listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"],
|
|
||||||
listLabelsOnIssue: [
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/labels"
|
|
||||||
],
|
|
||||||
listMilestones: ["GET /repos/{owner}/{repo}/milestones"],
|
|
||||||
listSubIssues: [
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"
|
|
||||||
],
|
|
||||||
lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],
|
|
||||||
removeAllLabels: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"
|
|
||||||
],
|
|
||||||
removeAssignees: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"
|
|
||||||
],
|
|
||||||
removeDependencyBlockedBy: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"
|
|
||||||
],
|
|
||||||
removeLabel: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"
|
|
||||||
],
|
|
||||||
removeSubIssue: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"
|
|
||||||
],
|
|
||||||
reprioritizeSubIssue: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"
|
|
||||||
],
|
|
||||||
setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],
|
|
||||||
unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],
|
|
||||||
update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],
|
|
||||||
updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],
|
|
||||||
updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"],
|
|
||||||
updateMilestone: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
licenses: {
|
|
||||||
get: ["GET /licenses/{license}"],
|
|
||||||
getAllCommonlyUsed: ["GET /licenses"],
|
|
||||||
getForRepo: ["GET /repos/{owner}/{repo}/license"]
|
|
||||||
},
|
|
||||||
markdown: {
|
|
||||||
render: ["POST /markdown"],
|
|
||||||
renderRaw: [
|
|
||||||
"POST /markdown/raw",
|
|
||||||
{ headers: { "content-type": "text/plain; charset=utf-8" } }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
meta: {
|
|
||||||
get: ["GET /meta"],
|
|
||||||
getAllVersions: ["GET /versions"],
|
|
||||||
getOctocat: ["GET /octocat"],
|
|
||||||
getZen: ["GET /zen"],
|
|
||||||
root: ["GET /"]
|
|
||||||
},
|
|
||||||
migrations: {
|
|
||||||
deleteArchiveForAuthenticatedUser: [
|
|
||||||
"DELETE /user/migrations/{migration_id}/archive"
|
|
||||||
],
|
|
||||||
deleteArchiveForOrg: [
|
|
||||||
"DELETE /orgs/{org}/migrations/{migration_id}/archive"
|
|
||||||
],
|
|
||||||
downloadArchiveForOrg: [
|
|
||||||
"GET /orgs/{org}/migrations/{migration_id}/archive"
|
|
||||||
],
|
|
||||||
getArchiveForAuthenticatedUser: [
|
|
||||||
"GET /user/migrations/{migration_id}/archive"
|
|
||||||
],
|
|
||||||
getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"],
|
|
||||||
getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"],
|
|
||||||
listForAuthenticatedUser: ["GET /user/migrations"],
|
|
||||||
listForOrg: ["GET /orgs/{org}/migrations"],
|
|
||||||
listReposForAuthenticatedUser: [
|
|
||||||
"GET /user/migrations/{migration_id}/repositories"
|
|
||||||
],
|
|
||||||
listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"],
|
|
||||||
listReposForUser: [
|
|
||||||
"GET /user/migrations/{migration_id}/repositories",
|
|
||||||
{},
|
|
||||||
{ renamed: ["migrations", "listReposForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
startForAuthenticatedUser: ["POST /user/migrations"],
|
|
||||||
startForOrg: ["POST /orgs/{org}/migrations"],
|
|
||||||
unlockRepoForAuthenticatedUser: [
|
|
||||||
"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"
|
|
||||||
],
|
|
||||||
unlockRepoForOrg: [
|
|
||||||
"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
oidc: {
|
|
||||||
getOidcCustomSubTemplateForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/oidc/customization/sub"
|
|
||||||
],
|
|
||||||
updateOidcCustomSubTemplateForOrg: [
|
|
||||||
"PUT /orgs/{org}/actions/oidc/customization/sub"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
orgs: {
|
|
||||||
addSecurityManagerTeam: [
|
|
||||||
"PUT /orgs/{org}/security-managers/teams/{team_slug}",
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
deprecated: "octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
assignTeamToOrgRole: [
|
|
||||||
"PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"
|
|
||||||
],
|
|
||||||
assignUserToOrgRole: [
|
|
||||||
"PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"
|
|
||||||
],
|
|
||||||
blockUser: ["PUT /orgs/{org}/blocks/{username}"],
|
|
||||||
cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"],
|
|
||||||
checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"],
|
|
||||||
checkMembershipForUser: ["GET /orgs/{org}/members/{username}"],
|
|
||||||
checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"],
|
|
||||||
convertMemberToOutsideCollaborator: [
|
|
||||||
"PUT /orgs/{org}/outside_collaborators/{username}"
|
|
||||||
],
|
|
||||||
createArtifactStorageRecord: [
|
|
||||||
"POST /orgs/{org}/artifacts/metadata/storage-record"
|
|
||||||
],
|
|
||||||
createInvitation: ["POST /orgs/{org}/invitations"],
|
|
||||||
createIssueType: ["POST /orgs/{org}/issue-types"],
|
|
||||||
createWebhook: ["POST /orgs/{org}/hooks"],
|
|
||||||
customPropertiesForOrgsCreateOrUpdateOrganizationValues: [
|
|
||||||
"PATCH /organizations/{org}/org-properties/values"
|
|
||||||
],
|
|
||||||
customPropertiesForOrgsGetOrganizationValues: [
|
|
||||||
"GET /organizations/{org}/org-properties/values"
|
|
||||||
],
|
|
||||||
customPropertiesForReposCreateOrUpdateOrganizationDefinition: [
|
|
||||||
"PUT /orgs/{org}/properties/schema/{custom_property_name}"
|
|
||||||
],
|
|
||||||
customPropertiesForReposCreateOrUpdateOrganizationDefinitions: [
|
|
||||||
"PATCH /orgs/{org}/properties/schema"
|
|
||||||
],
|
|
||||||
customPropertiesForReposCreateOrUpdateOrganizationValues: [
|
|
||||||
"PATCH /orgs/{org}/properties/values"
|
|
||||||
],
|
|
||||||
customPropertiesForReposDeleteOrganizationDefinition: [
|
|
||||||
"DELETE /orgs/{org}/properties/schema/{custom_property_name}"
|
|
||||||
],
|
|
||||||
customPropertiesForReposGetOrganizationDefinition: [
|
|
||||||
"GET /orgs/{org}/properties/schema/{custom_property_name}"
|
|
||||||
],
|
|
||||||
customPropertiesForReposGetOrganizationDefinitions: [
|
|
||||||
"GET /orgs/{org}/properties/schema"
|
|
||||||
],
|
|
||||||
customPropertiesForReposGetOrganizationValues: [
|
|
||||||
"GET /orgs/{org}/properties/values"
|
|
||||||
],
|
|
||||||
delete: ["DELETE /orgs/{org}"],
|
|
||||||
deleteAttestationsBulk: ["POST /orgs/{org}/attestations/delete-request"],
|
|
||||||
deleteAttestationsById: [
|
|
||||||
"DELETE /orgs/{org}/attestations/{attestation_id}"
|
|
||||||
],
|
|
||||||
deleteAttestationsBySubjectDigest: [
|
|
||||||
"DELETE /orgs/{org}/attestations/digest/{subject_digest}"
|
|
||||||
],
|
|
||||||
deleteIssueType: ["DELETE /orgs/{org}/issue-types/{issue_type_id}"],
|
|
||||||
deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"],
|
|
||||||
disableSelectedRepositoryImmutableReleasesOrganization: [
|
|
||||||
"DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
enableSelectedRepositoryImmutableReleasesOrganization: [
|
|
||||||
"PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
get: ["GET /orgs/{org}"],
|
|
||||||
getImmutableReleasesSettings: [
|
|
||||||
"GET /orgs/{org}/settings/immutable-releases"
|
|
||||||
],
|
|
||||||
getImmutableReleasesSettingsRepositories: [
|
|
||||||
"GET /orgs/{org}/settings/immutable-releases/repositories"
|
|
||||||
],
|
|
||||||
getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"],
|
|
||||||
getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"],
|
|
||||||
getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"],
|
|
||||||
getOrgRulesetHistory: ["GET /orgs/{org}/rulesets/{ruleset_id}/history"],
|
|
||||||
getOrgRulesetVersion: [
|
|
||||||
"GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"
|
|
||||||
],
|
|
||||||
getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"],
|
|
||||||
getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"],
|
|
||||||
getWebhookDelivery: [
|
|
||||||
"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"
|
|
||||||
],
|
|
||||||
list: ["GET /organizations"],
|
|
||||||
listAppInstallations: ["GET /orgs/{org}/installations"],
|
|
||||||
listArtifactStorageRecords: [
|
|
||||||
"GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"
|
|
||||||
],
|
|
||||||
listAttestationRepositories: ["GET /orgs/{org}/attestations/repositories"],
|
|
||||||
listAttestations: ["GET /orgs/{org}/attestations/{subject_digest}"],
|
|
||||||
listAttestationsBulk: [
|
|
||||||
"POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"
|
|
||||||
],
|
|
||||||
listBlockedUsers: ["GET /orgs/{org}/blocks"],
|
|
||||||
listFailedInvitations: ["GET /orgs/{org}/failed_invitations"],
|
|
||||||
listForAuthenticatedUser: ["GET /user/orgs"],
|
|
||||||
listForUser: ["GET /users/{username}/orgs"],
|
|
||||||
listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"],
|
|
||||||
listIssueTypes: ["GET /orgs/{org}/issue-types"],
|
|
||||||
listMembers: ["GET /orgs/{org}/members"],
|
|
||||||
listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"],
|
|
||||||
listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"],
|
|
||||||
listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"],
|
|
||||||
listOrgRoles: ["GET /orgs/{org}/organization-roles"],
|
|
||||||
listOrganizationFineGrainedPermissions: [
|
|
||||||
"GET /orgs/{org}/organization-fine-grained-permissions"
|
|
||||||
],
|
|
||||||
listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"],
|
|
||||||
listPatGrantRepositories: [
|
|
||||||
"GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"
|
|
||||||
],
|
|
||||||
listPatGrantRequestRepositories: [
|
|
||||||
"GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"
|
|
||||||
],
|
|
||||||
listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"],
|
|
||||||
listPatGrants: ["GET /orgs/{org}/personal-access-tokens"],
|
|
||||||
listPendingInvitations: ["GET /orgs/{org}/invitations"],
|
|
||||||
listPublicMembers: ["GET /orgs/{org}/public_members"],
|
|
||||||
listSecurityManagerTeams: [
|
|
||||||
"GET /orgs/{org}/security-managers",
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
deprecated: "octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"],
|
|
||||||
listWebhooks: ["GET /orgs/{org}/hooks"],
|
|
||||||
pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"],
|
|
||||||
redeliverWebhookDelivery: [
|
|
||||||
"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"
|
|
||||||
],
|
|
||||||
removeMember: ["DELETE /orgs/{org}/members/{username}"],
|
|
||||||
removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"],
|
|
||||||
removeOutsideCollaborator: [
|
|
||||||
"DELETE /orgs/{org}/outside_collaborators/{username}"
|
|
||||||
],
|
|
||||||
removePublicMembershipForAuthenticatedUser: [
|
|
||||||
"DELETE /orgs/{org}/public_members/{username}"
|
|
||||||
],
|
|
||||||
removeSecurityManagerTeam: [
|
|
||||||
"DELETE /orgs/{org}/security-managers/teams/{team_slug}",
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
deprecated: "octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
reviewPatGrantRequest: [
|
|
||||||
"POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"
|
|
||||||
],
|
|
||||||
reviewPatGrantRequestsInBulk: [
|
|
||||||
"POST /orgs/{org}/personal-access-token-requests"
|
|
||||||
],
|
|
||||||
revokeAllOrgRolesTeam: [
|
|
||||||
"DELETE /orgs/{org}/organization-roles/teams/{team_slug}"
|
|
||||||
],
|
|
||||||
revokeAllOrgRolesUser: [
|
|
||||||
"DELETE /orgs/{org}/organization-roles/users/{username}"
|
|
||||||
],
|
|
||||||
revokeOrgRoleTeam: [
|
|
||||||
"DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"
|
|
||||||
],
|
|
||||||
revokeOrgRoleUser: [
|
|
||||||
"DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"
|
|
||||||
],
|
|
||||||
setImmutableReleasesSettings: [
|
|
||||||
"PUT /orgs/{org}/settings/immutable-releases"
|
|
||||||
],
|
|
||||||
setImmutableReleasesSettingsRepositories: [
|
|
||||||
"PUT /orgs/{org}/settings/immutable-releases/repositories"
|
|
||||||
],
|
|
||||||
setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"],
|
|
||||||
setPublicMembershipForAuthenticatedUser: [
|
|
||||||
"PUT /orgs/{org}/public_members/{username}"
|
|
||||||
],
|
|
||||||
unblockUser: ["DELETE /orgs/{org}/blocks/{username}"],
|
|
||||||
update: ["PATCH /orgs/{org}"],
|
|
||||||
updateIssueType: ["PUT /orgs/{org}/issue-types/{issue_type_id}"],
|
|
||||||
updateMembershipForAuthenticatedUser: [
|
|
||||||
"PATCH /user/memberships/orgs/{org}"
|
|
||||||
],
|
|
||||||
updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"],
|
|
||||||
updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"],
|
|
||||||
updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"],
|
|
||||||
updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"]
|
|
||||||
},
|
|
||||||
packages: {
|
|
||||||
deletePackageForAuthenticatedUser: [
|
|
||||||
"DELETE /user/packages/{package_type}/{package_name}"
|
|
||||||
],
|
|
||||||
deletePackageForOrg: [
|
|
||||||
"DELETE /orgs/{org}/packages/{package_type}/{package_name}"
|
|
||||||
],
|
|
||||||
deletePackageForUser: [
|
|
||||||
"DELETE /users/{username}/packages/{package_type}/{package_name}"
|
|
||||||
],
|
|
||||||
deletePackageVersionForAuthenticatedUser: [
|
|
||||||
"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"
|
|
||||||
],
|
|
||||||
deletePackageVersionForOrg: [
|
|
||||||
"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"
|
|
||||||
],
|
|
||||||
deletePackageVersionForUser: [
|
|
||||||
"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"
|
|
||||||
],
|
|
||||||
getAllPackageVersionsForAPackageOwnedByAnOrg: [
|
|
||||||
"GET /orgs/{org}/packages/{package_type}/{package_name}/versions",
|
|
||||||
{},
|
|
||||||
{ renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] }
|
|
||||||
],
|
|
||||||
getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [
|
|
||||||
"GET /user/packages/{package_type}/{package_name}/versions",
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
renamed: [
|
|
||||||
"packages",
|
|
||||||
"getAllPackageVersionsForPackageOwnedByAuthenticatedUser"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [
|
|
||||||
"GET /user/packages/{package_type}/{package_name}/versions"
|
|
||||||
],
|
|
||||||
getAllPackageVersionsForPackageOwnedByOrg: [
|
|
||||||
"GET /orgs/{org}/packages/{package_type}/{package_name}/versions"
|
|
||||||
],
|
|
||||||
getAllPackageVersionsForPackageOwnedByUser: [
|
|
||||||
"GET /users/{username}/packages/{package_type}/{package_name}/versions"
|
|
||||||
],
|
|
||||||
getPackageForAuthenticatedUser: [
|
|
||||||
"GET /user/packages/{package_type}/{package_name}"
|
|
||||||
],
|
|
||||||
getPackageForOrganization: [
|
|
||||||
"GET /orgs/{org}/packages/{package_type}/{package_name}"
|
|
||||||
],
|
|
||||||
getPackageForUser: [
|
|
||||||
"GET /users/{username}/packages/{package_type}/{package_name}"
|
|
||||||
],
|
|
||||||
getPackageVersionForAuthenticatedUser: [
|
|
||||||
"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"
|
|
||||||
],
|
|
||||||
getPackageVersionForOrganization: [
|
|
||||||
"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"
|
|
||||||
],
|
|
||||||
getPackageVersionForUser: [
|
|
||||||
"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"
|
|
||||||
],
|
|
||||||
listDockerMigrationConflictingPackagesForAuthenticatedUser: [
|
|
||||||
"GET /user/docker/conflicts"
|
|
||||||
],
|
|
||||||
listDockerMigrationConflictingPackagesForOrganization: [
|
|
||||||
"GET /orgs/{org}/docker/conflicts"
|
|
||||||
],
|
|
||||||
listDockerMigrationConflictingPackagesForUser: [
|
|
||||||
"GET /users/{username}/docker/conflicts"
|
|
||||||
],
|
|
||||||
listPackagesForAuthenticatedUser: ["GET /user/packages"],
|
|
||||||
listPackagesForOrganization: ["GET /orgs/{org}/packages"],
|
|
||||||
listPackagesForUser: ["GET /users/{username}/packages"],
|
|
||||||
restorePackageForAuthenticatedUser: [
|
|
||||||
"POST /user/packages/{package_type}/{package_name}/restore{?token}"
|
|
||||||
],
|
|
||||||
restorePackageForOrg: [
|
|
||||||
"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"
|
|
||||||
],
|
|
||||||
restorePackageForUser: [
|
|
||||||
"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"
|
|
||||||
],
|
|
||||||
restorePackageVersionForAuthenticatedUser: [
|
|
||||||
"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"
|
|
||||||
],
|
|
||||||
restorePackageVersionForOrg: [
|
|
||||||
"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"
|
|
||||||
],
|
|
||||||
restorePackageVersionForUser: [
|
|
||||||
"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
privateRegistries: {
|
|
||||||
createOrgPrivateRegistry: ["POST /orgs/{org}/private-registries"],
|
|
||||||
deleteOrgPrivateRegistry: [
|
|
||||||
"DELETE /orgs/{org}/private-registries/{secret_name}"
|
|
||||||
],
|
|
||||||
getOrgPrivateRegistry: ["GET /orgs/{org}/private-registries/{secret_name}"],
|
|
||||||
getOrgPublicKey: ["GET /orgs/{org}/private-registries/public-key"],
|
|
||||||
listOrgPrivateRegistries: ["GET /orgs/{org}/private-registries"],
|
|
||||||
updateOrgPrivateRegistry: [
|
|
||||||
"PATCH /orgs/{org}/private-registries/{secret_name}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
projects: {
|
|
||||||
addItemForOrg: ["POST /orgs/{org}/projectsV2/{project_number}/items"],
|
|
||||||
addItemForUser: [
|
|
||||||
"POST /users/{username}/projectsV2/{project_number}/items"
|
|
||||||
],
|
|
||||||
deleteItemForOrg: [
|
|
||||||
"DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"
|
|
||||||
],
|
|
||||||
deleteItemForUser: [
|
|
||||||
"DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"
|
|
||||||
],
|
|
||||||
getFieldForOrg: [
|
|
||||||
"GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"
|
|
||||||
],
|
|
||||||
getFieldForUser: [
|
|
||||||
"GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"
|
|
||||||
],
|
|
||||||
getForOrg: ["GET /orgs/{org}/projectsV2/{project_number}"],
|
|
||||||
getForUser: ["GET /users/{username}/projectsV2/{project_number}"],
|
|
||||||
getOrgItem: ["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],
|
|
||||||
getUserItem: [
|
|
||||||
"GET /users/{username}/projectsV2/{project_number}/items/{item_id}"
|
|
||||||
],
|
|
||||||
listFieldsForOrg: ["GET /orgs/{org}/projectsV2/{project_number}/fields"],
|
|
||||||
listFieldsForUser: [
|
|
||||||
"GET /users/{username}/projectsV2/{project_number}/fields"
|
|
||||||
],
|
|
||||||
listForOrg: ["GET /orgs/{org}/projectsV2"],
|
|
||||||
listForUser: ["GET /users/{username}/projectsV2"],
|
|
||||||
listItemsForOrg: ["GET /orgs/{org}/projectsV2/{project_number}/items"],
|
|
||||||
listItemsForUser: [
|
|
||||||
"GET /users/{username}/projectsV2/{project_number}/items"
|
|
||||||
],
|
|
||||||
updateItemForOrg: [
|
|
||||||
"PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"
|
|
||||||
],
|
|
||||||
updateItemForUser: [
|
|
||||||
"PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
pulls: {
|
|
||||||
checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],
|
|
||||||
create: ["POST /repos/{owner}/{repo}/pulls"],
|
|
||||||
createReplyForReviewComment: [
|
|
||||||
"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"
|
|
||||||
],
|
|
||||||
createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],
|
|
||||||
createReviewComment: [
|
|
||||||
"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"
|
|
||||||
],
|
|
||||||
deletePendingReview: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"
|
|
||||||
],
|
|
||||||
deleteReviewComment: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"
|
|
||||||
],
|
|
||||||
dismissReview: [
|
|
||||||
"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"
|
|
||||||
],
|
|
||||||
get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"],
|
|
||||||
getReview: [
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"
|
|
||||||
],
|
|
||||||
getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],
|
|
||||||
list: ["GET /repos/{owner}/{repo}/pulls"],
|
|
||||||
listCommentsForReview: [
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"
|
|
||||||
],
|
|
||||||
listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],
|
|
||||||
listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],
|
|
||||||
listRequestedReviewers: [
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"
|
|
||||||
],
|
|
||||||
listReviewComments: [
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"
|
|
||||||
],
|
|
||||||
listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"],
|
|
||||||
listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],
|
|
||||||
merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],
|
|
||||||
removeRequestedReviewers: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"
|
|
||||||
],
|
|
||||||
requestReviewers: [
|
|
||||||
"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"
|
|
||||||
],
|
|
||||||
submitReview: [
|
|
||||||
"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"
|
|
||||||
],
|
|
||||||
update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],
|
|
||||||
updateBranch: [
|
|
||||||
"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"
|
|
||||||
],
|
|
||||||
updateReview: [
|
|
||||||
"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"
|
|
||||||
],
|
|
||||||
updateReviewComment: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
rateLimit: { get: ["GET /rate_limit"] },
|
|
||||||
reactions: {
|
|
||||||
createForCommitComment: [
|
|
||||||
"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"
|
|
||||||
],
|
|
||||||
createForIssue: [
|
|
||||||
"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"
|
|
||||||
],
|
|
||||||
createForIssueComment: [
|
|
||||||
"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"
|
|
||||||
],
|
|
||||||
createForPullRequestReviewComment: [
|
|
||||||
"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"
|
|
||||||
],
|
|
||||||
createForRelease: [
|
|
||||||
"POST /repos/{owner}/{repo}/releases/{release_id}/reactions"
|
|
||||||
],
|
|
||||||
createForTeamDiscussionCommentInOrg: [
|
|
||||||
"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"
|
|
||||||
],
|
|
||||||
createForTeamDiscussionInOrg: [
|
|
||||||
"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"
|
|
||||||
],
|
|
||||||
deleteForCommitComment: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"
|
|
||||||
],
|
|
||||||
deleteForIssue: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"
|
|
||||||
],
|
|
||||||
deleteForIssueComment: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"
|
|
||||||
],
|
|
||||||
deleteForPullRequestComment: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"
|
|
||||||
],
|
|
||||||
deleteForRelease: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"
|
|
||||||
],
|
|
||||||
deleteForTeamDiscussion: [
|
|
||||||
"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"
|
|
||||||
],
|
|
||||||
deleteForTeamDiscussionComment: [
|
|
||||||
"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"
|
|
||||||
],
|
|
||||||
listForCommitComment: [
|
|
||||||
"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"
|
|
||||||
],
|
|
||||||
listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],
|
|
||||||
listForIssueComment: [
|
|
||||||
"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"
|
|
||||||
],
|
|
||||||
listForPullRequestReviewComment: [
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"
|
|
||||||
],
|
|
||||||
listForRelease: [
|
|
||||||
"GET /repos/{owner}/{repo}/releases/{release_id}/reactions"
|
|
||||||
],
|
|
||||||
listForTeamDiscussionCommentInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"
|
|
||||||
],
|
|
||||||
listForTeamDiscussionInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
repos: {
|
|
||||||
acceptInvitation: [
|
|
||||||
"PATCH /user/repository_invitations/{invitation_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["repos", "acceptInvitationForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
acceptInvitationForAuthenticatedUser: [
|
|
||||||
"PATCH /user/repository_invitations/{invitation_id}"
|
|
||||||
],
|
|
||||||
addAppAccessRestrictions: [
|
|
||||||
"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",
|
|
||||||
{},
|
|
||||||
{ mapToData: "apps" }
|
|
||||||
],
|
|
||||||
addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"],
|
|
||||||
addStatusCheckContexts: [
|
|
||||||
"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",
|
|
||||||
{},
|
|
||||||
{ mapToData: "contexts" }
|
|
||||||
],
|
|
||||||
addTeamAccessRestrictions: [
|
|
||||||
"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",
|
|
||||||
{},
|
|
||||||
{ mapToData: "teams" }
|
|
||||||
],
|
|
||||||
addUserAccessRestrictions: [
|
|
||||||
"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",
|
|
||||||
{},
|
|
||||||
{ mapToData: "users" }
|
|
||||||
],
|
|
||||||
cancelPagesDeployment: [
|
|
||||||
"POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"
|
|
||||||
],
|
|
||||||
checkAutomatedSecurityFixes: [
|
|
||||||
"GET /repos/{owner}/{repo}/automated-security-fixes"
|
|
||||||
],
|
|
||||||
checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"],
|
|
||||||
checkImmutableReleases: ["GET /repos/{owner}/{repo}/immutable-releases"],
|
|
||||||
checkPrivateVulnerabilityReporting: [
|
|
||||||
"GET /repos/{owner}/{repo}/private-vulnerability-reporting"
|
|
||||||
],
|
|
||||||
checkVulnerabilityAlerts: [
|
|
||||||
"GET /repos/{owner}/{repo}/vulnerability-alerts"
|
|
||||||
],
|
|
||||||
codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"],
|
|
||||||
compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"],
|
|
||||||
compareCommitsWithBasehead: [
|
|
||||||
"GET /repos/{owner}/{repo}/compare/{basehead}"
|
|
||||||
],
|
|
||||||
createAttestation: ["POST /repos/{owner}/{repo}/attestations"],
|
|
||||||
createAutolink: ["POST /repos/{owner}/{repo}/autolinks"],
|
|
||||||
createCommitComment: [
|
|
||||||
"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"
|
|
||||||
],
|
|
||||||
createCommitSignatureProtection: [
|
|
||||||
"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"
|
|
||||||
],
|
|
||||||
createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"],
|
|
||||||
createDeployKey: ["POST /repos/{owner}/{repo}/keys"],
|
|
||||||
createDeployment: ["POST /repos/{owner}/{repo}/deployments"],
|
|
||||||
createDeploymentBranchPolicy: [
|
|
||||||
"POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"
|
|
||||||
],
|
|
||||||
createDeploymentProtectionRule: [
|
|
||||||
"POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"
|
|
||||||
],
|
|
||||||
createDeploymentStatus: [
|
|
||||||
"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"
|
|
||||||
],
|
|
||||||
createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"],
|
|
||||||
createForAuthenticatedUser: ["POST /user/repos"],
|
|
||||||
createFork: ["POST /repos/{owner}/{repo}/forks"],
|
|
||||||
createInOrg: ["POST /orgs/{org}/repos"],
|
|
||||||
createOrUpdateEnvironment: [
|
|
||||||
"PUT /repos/{owner}/{repo}/environments/{environment_name}"
|
|
||||||
],
|
|
||||||
createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"],
|
|
||||||
createOrgRuleset: ["POST /orgs/{org}/rulesets"],
|
|
||||||
createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"],
|
|
||||||
createPagesSite: ["POST /repos/{owner}/{repo}/pages"],
|
|
||||||
createRelease: ["POST /repos/{owner}/{repo}/releases"],
|
|
||||||
createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"],
|
|
||||||
createUsingTemplate: [
|
|
||||||
"POST /repos/{template_owner}/{template_repo}/generate"
|
|
||||||
],
|
|
||||||
createWebhook: ["POST /repos/{owner}/{repo}/hooks"],
|
|
||||||
customPropertiesForReposCreateOrUpdateRepositoryValues: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/properties/values"
|
|
||||||
],
|
|
||||||
customPropertiesForReposGetRepositoryValues: [
|
|
||||||
"GET /repos/{owner}/{repo}/properties/values"
|
|
||||||
],
|
|
||||||
declineInvitation: [
|
|
||||||
"DELETE /user/repository_invitations/{invitation_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["repos", "declineInvitationForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
declineInvitationForAuthenticatedUser: [
|
|
||||||
"DELETE /user/repository_invitations/{invitation_id}"
|
|
||||||
],
|
|
||||||
delete: ["DELETE /repos/{owner}/{repo}"],
|
|
||||||
deleteAccessRestrictions: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"
|
|
||||||
],
|
|
||||||
deleteAdminBranchProtection: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"
|
|
||||||
],
|
|
||||||
deleteAnEnvironment: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/environments/{environment_name}"
|
|
||||||
],
|
|
||||||
deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],
|
|
||||||
deleteBranchProtection: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection"
|
|
||||||
],
|
|
||||||
deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],
|
|
||||||
deleteCommitSignatureProtection: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"
|
|
||||||
],
|
|
||||||
deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"],
|
|
||||||
deleteDeployment: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"
|
|
||||||
],
|
|
||||||
deleteDeploymentBranchPolicy: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"
|
|
||||||
],
|
|
||||||
deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"],
|
|
||||||
deleteInvitation: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"
|
|
||||||
],
|
|
||||||
deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"],
|
|
||||||
deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"],
|
|
||||||
deletePullRequestReviewProtection: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"
|
|
||||||
],
|
|
||||||
deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"],
|
|
||||||
deleteReleaseAsset: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"
|
|
||||||
],
|
|
||||||
deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],
|
|
||||||
deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],
|
|
||||||
disableAutomatedSecurityFixes: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/automated-security-fixes"
|
|
||||||
],
|
|
||||||
disableDeploymentProtectionRule: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"
|
|
||||||
],
|
|
||||||
disableImmutableReleases: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/immutable-releases"
|
|
||||||
],
|
|
||||||
disablePrivateVulnerabilityReporting: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"
|
|
||||||
],
|
|
||||||
disableVulnerabilityAlerts: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/vulnerability-alerts"
|
|
||||||
],
|
|
||||||
downloadArchive: [
|
|
||||||
"GET /repos/{owner}/{repo}/zipball/{ref}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["repos", "downloadZipballArchive"] }
|
|
||||||
],
|
|
||||||
downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"],
|
|
||||||
downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"],
|
|
||||||
enableAutomatedSecurityFixes: [
|
|
||||||
"PUT /repos/{owner}/{repo}/automated-security-fixes"
|
|
||||||
],
|
|
||||||
enableImmutableReleases: ["PUT /repos/{owner}/{repo}/immutable-releases"],
|
|
||||||
enablePrivateVulnerabilityReporting: [
|
|
||||||
"PUT /repos/{owner}/{repo}/private-vulnerability-reporting"
|
|
||||||
],
|
|
||||||
enableVulnerabilityAlerts: [
|
|
||||||
"PUT /repos/{owner}/{repo}/vulnerability-alerts"
|
|
||||||
],
|
|
||||||
generateReleaseNotes: [
|
|
||||||
"POST /repos/{owner}/{repo}/releases/generate-notes"
|
|
||||||
],
|
|
||||||
get: ["GET /repos/{owner}/{repo}"],
|
|
||||||
getAccessRestrictions: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"
|
|
||||||
],
|
|
||||||
getAdminBranchProtection: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"
|
|
||||||
],
|
|
||||||
getAllDeploymentProtectionRules: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"
|
|
||||||
],
|
|
||||||
getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"],
|
|
||||||
getAllStatusCheckContexts: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"
|
|
||||||
],
|
|
||||||
getAllTopics: ["GET /repos/{owner}/{repo}/topics"],
|
|
||||||
getAppsWithAccessToProtectedBranch: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"
|
|
||||||
],
|
|
||||||
getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],
|
|
||||||
getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"],
|
|
||||||
getBranchProtection: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection"
|
|
||||||
],
|
|
||||||
getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"],
|
|
||||||
getClones: ["GET /repos/{owner}/{repo}/traffic/clones"],
|
|
||||||
getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"],
|
|
||||||
getCollaboratorPermissionLevel: [
|
|
||||||
"GET /repos/{owner}/{repo}/collaborators/{username}/permission"
|
|
||||||
],
|
|
||||||
getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"],
|
|
||||||
getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"],
|
|
||||||
getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"],
|
|
||||||
getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"],
|
|
||||||
getCommitSignatureProtection: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"
|
|
||||||
],
|
|
||||||
getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"],
|
|
||||||
getContent: ["GET /repos/{owner}/{repo}/contents/{path}"],
|
|
||||||
getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"],
|
|
||||||
getCustomDeploymentProtectionRule: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"
|
|
||||||
],
|
|
||||||
getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"],
|
|
||||||
getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],
|
|
||||||
getDeploymentBranchPolicy: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"
|
|
||||||
],
|
|
||||||
getDeploymentStatus: [
|
|
||||||
"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"
|
|
||||||
],
|
|
||||||
getEnvironment: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}"
|
|
||||||
],
|
|
||||||
getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"],
|
|
||||||
getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"],
|
|
||||||
getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],
|
|
||||||
getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"],
|
|
||||||
getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"],
|
|
||||||
getOrgRulesets: ["GET /orgs/{org}/rulesets"],
|
|
||||||
getPages: ["GET /repos/{owner}/{repo}/pages"],
|
|
||||||
getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],
|
|
||||||
getPagesDeployment: [
|
|
||||||
"GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"
|
|
||||||
],
|
|
||||||
getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"],
|
|
||||||
getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"],
|
|
||||||
getPullRequestReviewProtection: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"
|
|
||||||
],
|
|
||||||
getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"],
|
|
||||||
getReadme: ["GET /repos/{owner}/{repo}/readme"],
|
|
||||||
getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"],
|
|
||||||
getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"],
|
|
||||||
getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],
|
|
||||||
getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"],
|
|
||||||
getRepoRuleSuite: [
|
|
||||||
"GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"
|
|
||||||
],
|
|
||||||
getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"],
|
|
||||||
getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],
|
|
||||||
getRepoRulesetHistory: [
|
|
||||||
"GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"
|
|
||||||
],
|
|
||||||
getRepoRulesetVersion: [
|
|
||||||
"GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"
|
|
||||||
],
|
|
||||||
getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"],
|
|
||||||
getStatusChecksProtection: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"
|
|
||||||
],
|
|
||||||
getTeamsWithAccessToProtectedBranch: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"
|
|
||||||
],
|
|
||||||
getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"],
|
|
||||||
getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"],
|
|
||||||
getUsersWithAccessToProtectedBranch: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"
|
|
||||||
],
|
|
||||||
getViews: ["GET /repos/{owner}/{repo}/traffic/views"],
|
|
||||||
getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"],
|
|
||||||
getWebhookConfigForRepo: [
|
|
||||||
"GET /repos/{owner}/{repo}/hooks/{hook_id}/config"
|
|
||||||
],
|
|
||||||
getWebhookDelivery: [
|
|
||||||
"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"
|
|
||||||
],
|
|
||||||
listActivities: ["GET /repos/{owner}/{repo}/activity"],
|
|
||||||
listAttestations: [
|
|
||||||
"GET /repos/{owner}/{repo}/attestations/{subject_digest}"
|
|
||||||
],
|
|
||||||
listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"],
|
|
||||||
listBranches: ["GET /repos/{owner}/{repo}/branches"],
|
|
||||||
listBranchesForHeadCommit: [
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"
|
|
||||||
],
|
|
||||||
listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"],
|
|
||||||
listCommentsForCommit: [
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"
|
|
||||||
],
|
|
||||||
listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"],
|
|
||||||
listCommitStatusesForRef: [
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{ref}/statuses"
|
|
||||||
],
|
|
||||||
listCommits: ["GET /repos/{owner}/{repo}/commits"],
|
|
||||||
listContributors: ["GET /repos/{owner}/{repo}/contributors"],
|
|
||||||
listCustomDeploymentRuleIntegrations: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"
|
|
||||||
],
|
|
||||||
listDeployKeys: ["GET /repos/{owner}/{repo}/keys"],
|
|
||||||
listDeploymentBranchPolicies: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"
|
|
||||||
],
|
|
||||||
listDeploymentStatuses: [
|
|
||||||
"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"
|
|
||||||
],
|
|
||||||
listDeployments: ["GET /repos/{owner}/{repo}/deployments"],
|
|
||||||
listForAuthenticatedUser: ["GET /user/repos"],
|
|
||||||
listForOrg: ["GET /orgs/{org}/repos"],
|
|
||||||
listForUser: ["GET /users/{username}/repos"],
|
|
||||||
listForks: ["GET /repos/{owner}/{repo}/forks"],
|
|
||||||
listInvitations: ["GET /repos/{owner}/{repo}/invitations"],
|
|
||||||
listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"],
|
|
||||||
listLanguages: ["GET /repos/{owner}/{repo}/languages"],
|
|
||||||
listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"],
|
|
||||||
listPublic: ["GET /repositories"],
|
|
||||||
listPullRequestsAssociatedWithCommit: [
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"
|
|
||||||
],
|
|
||||||
listReleaseAssets: [
|
|
||||||
"GET /repos/{owner}/{repo}/releases/{release_id}/assets"
|
|
||||||
],
|
|
||||||
listReleases: ["GET /repos/{owner}/{repo}/releases"],
|
|
||||||
listTags: ["GET /repos/{owner}/{repo}/tags"],
|
|
||||||
listTeams: ["GET /repos/{owner}/{repo}/teams"],
|
|
||||||
listWebhookDeliveries: [
|
|
||||||
"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"
|
|
||||||
],
|
|
||||||
listWebhooks: ["GET /repos/{owner}/{repo}/hooks"],
|
|
||||||
merge: ["POST /repos/{owner}/{repo}/merges"],
|
|
||||||
mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"],
|
|
||||||
pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],
|
|
||||||
redeliverWebhookDelivery: [
|
|
||||||
"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"
|
|
||||||
],
|
|
||||||
removeAppAccessRestrictions: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",
|
|
||||||
{},
|
|
||||||
{ mapToData: "apps" }
|
|
||||||
],
|
|
||||||
removeCollaborator: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/collaborators/{username}"
|
|
||||||
],
|
|
||||||
removeStatusCheckContexts: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",
|
|
||||||
{},
|
|
||||||
{ mapToData: "contexts" }
|
|
||||||
],
|
|
||||||
removeStatusCheckProtection: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"
|
|
||||||
],
|
|
||||||
removeTeamAccessRestrictions: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",
|
|
||||||
{},
|
|
||||||
{ mapToData: "teams" }
|
|
||||||
],
|
|
||||||
removeUserAccessRestrictions: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",
|
|
||||||
{},
|
|
||||||
{ mapToData: "users" }
|
|
||||||
],
|
|
||||||
renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"],
|
|
||||||
replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"],
|
|
||||||
requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"],
|
|
||||||
setAdminBranchProtection: [
|
|
||||||
"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"
|
|
||||||
],
|
|
||||||
setAppAccessRestrictions: [
|
|
||||||
"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",
|
|
||||||
{},
|
|
||||||
{ mapToData: "apps" }
|
|
||||||
],
|
|
||||||
setStatusCheckContexts: [
|
|
||||||
"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",
|
|
||||||
{},
|
|
||||||
{ mapToData: "contexts" }
|
|
||||||
],
|
|
||||||
setTeamAccessRestrictions: [
|
|
||||||
"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",
|
|
||||||
{},
|
|
||||||
{ mapToData: "teams" }
|
|
||||||
],
|
|
||||||
setUserAccessRestrictions: [
|
|
||||||
"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",
|
|
||||||
{},
|
|
||||||
{ mapToData: "users" }
|
|
||||||
],
|
|
||||||
testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],
|
|
||||||
transfer: ["POST /repos/{owner}/{repo}/transfer"],
|
|
||||||
update: ["PATCH /repos/{owner}/{repo}"],
|
|
||||||
updateBranchProtection: [
|
|
||||||
"PUT /repos/{owner}/{repo}/branches/{branch}/protection"
|
|
||||||
],
|
|
||||||
updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],
|
|
||||||
updateDeploymentBranchPolicy: [
|
|
||||||
"PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"
|
|
||||||
],
|
|
||||||
updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"],
|
|
||||||
updateInvitation: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"
|
|
||||||
],
|
|
||||||
updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"],
|
|
||||||
updatePullRequestReviewProtection: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"
|
|
||||||
],
|
|
||||||
updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"],
|
|
||||||
updateReleaseAsset: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"
|
|
||||||
],
|
|
||||||
updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],
|
|
||||||
updateStatusCheckPotection: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",
|
|
||||||
{},
|
|
||||||
{ renamed: ["repos", "updateStatusCheckProtection"] }
|
|
||||||
],
|
|
||||||
updateStatusCheckProtection: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"
|
|
||||||
],
|
|
||||||
updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],
|
|
||||||
updateWebhookConfigForRepo: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"
|
|
||||||
],
|
|
||||||
uploadReleaseAsset: [
|
|
||||||
"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",
|
|
||||||
{ baseUrl: "https://uploads.github.com" }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
search: {
|
|
||||||
code: ["GET /search/code"],
|
|
||||||
commits: ["GET /search/commits"],
|
|
||||||
issuesAndPullRequests: ["GET /search/issues"],
|
|
||||||
labels: ["GET /search/labels"],
|
|
||||||
repos: ["GET /search/repositories"],
|
|
||||||
topics: ["GET /search/topics"],
|
|
||||||
users: ["GET /search/users"]
|
|
||||||
},
|
|
||||||
secretScanning: {
|
|
||||||
createPushProtectionBypass: [
|
|
||||||
"POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"
|
|
||||||
],
|
|
||||||
getAlert: [
|
|
||||||
"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"
|
|
||||||
],
|
|
||||||
getScanHistory: ["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],
|
|
||||||
listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"],
|
|
||||||
listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"],
|
|
||||||
listLocationsForAlert: [
|
|
||||||
"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"
|
|
||||||
],
|
|
||||||
listOrgPatternConfigs: [
|
|
||||||
"GET /orgs/{org}/secret-scanning/pattern-configurations"
|
|
||||||
],
|
|
||||||
updateAlert: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"
|
|
||||||
],
|
|
||||||
updateOrgPatternConfigs: [
|
|
||||||
"PATCH /orgs/{org}/secret-scanning/pattern-configurations"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
securityAdvisories: {
|
|
||||||
createFork: [
|
|
||||||
"POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"
|
|
||||||
],
|
|
||||||
createPrivateVulnerabilityReport: [
|
|
||||||
"POST /repos/{owner}/{repo}/security-advisories/reports"
|
|
||||||
],
|
|
||||||
createRepositoryAdvisory: [
|
|
||||||
"POST /repos/{owner}/{repo}/security-advisories"
|
|
||||||
],
|
|
||||||
createRepositoryAdvisoryCveRequest: [
|
|
||||||
"POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"
|
|
||||||
],
|
|
||||||
getGlobalAdvisory: ["GET /advisories/{ghsa_id}"],
|
|
||||||
getRepositoryAdvisory: [
|
|
||||||
"GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"
|
|
||||||
],
|
|
||||||
listGlobalAdvisories: ["GET /advisories"],
|
|
||||||
listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"],
|
|
||||||
listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"],
|
|
||||||
updateRepositoryAdvisory: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
teams: {
|
|
||||||
addOrUpdateMembershipForUserInOrg: [
|
|
||||||
"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"
|
|
||||||
],
|
|
||||||
addOrUpdateRepoPermissionsInOrg: [
|
|
||||||
"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"
|
|
||||||
],
|
|
||||||
checkPermissionsForRepoInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"
|
|
||||||
],
|
|
||||||
create: ["POST /orgs/{org}/teams"],
|
|
||||||
createDiscussionCommentInOrg: [
|
|
||||||
"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"
|
|
||||||
],
|
|
||||||
createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"],
|
|
||||||
deleteDiscussionCommentInOrg: [
|
|
||||||
"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"
|
|
||||||
],
|
|
||||||
deleteDiscussionInOrg: [
|
|
||||||
"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"
|
|
||||||
],
|
|
||||||
deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"],
|
|
||||||
getByName: ["GET /orgs/{org}/teams/{team_slug}"],
|
|
||||||
getDiscussionCommentInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"
|
|
||||||
],
|
|
||||||
getDiscussionInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"
|
|
||||||
],
|
|
||||||
getMembershipForUserInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/memberships/{username}"
|
|
||||||
],
|
|
||||||
list: ["GET /orgs/{org}/teams"],
|
|
||||||
listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"],
|
|
||||||
listDiscussionCommentsInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"
|
|
||||||
],
|
|
||||||
listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"],
|
|
||||||
listForAuthenticatedUser: ["GET /user/teams"],
|
|
||||||
listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"],
|
|
||||||
listPendingInvitationsInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/invitations"
|
|
||||||
],
|
|
||||||
listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"],
|
|
||||||
removeMembershipForUserInOrg: [
|
|
||||||
"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"
|
|
||||||
],
|
|
||||||
removeRepoInOrg: [
|
|
||||||
"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"
|
|
||||||
],
|
|
||||||
updateDiscussionCommentInOrg: [
|
|
||||||
"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"
|
|
||||||
],
|
|
||||||
updateDiscussionInOrg: [
|
|
||||||
"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"
|
|
||||||
],
|
|
||||||
updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"]
|
|
||||||
},
|
|
||||||
users: {
|
|
||||||
addEmailForAuthenticated: [
|
|
||||||
"POST /user/emails",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "addEmailForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
addEmailForAuthenticatedUser: ["POST /user/emails"],
|
|
||||||
addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"],
|
|
||||||
block: ["PUT /user/blocks/{username}"],
|
|
||||||
checkBlocked: ["GET /user/blocks/{username}"],
|
|
||||||
checkFollowingForUser: ["GET /users/{username}/following/{target_user}"],
|
|
||||||
checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"],
|
|
||||||
createGpgKeyForAuthenticated: [
|
|
||||||
"POST /user/gpg_keys",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "createGpgKeyForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"],
|
|
||||||
createPublicSshKeyForAuthenticated: [
|
|
||||||
"POST /user/keys",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"],
|
|
||||||
createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"],
|
|
||||||
deleteAttestationsBulk: [
|
|
||||||
"POST /users/{username}/attestations/delete-request"
|
|
||||||
],
|
|
||||||
deleteAttestationsById: [
|
|
||||||
"DELETE /users/{username}/attestations/{attestation_id}"
|
|
||||||
],
|
|
||||||
deleteAttestationsBySubjectDigest: [
|
|
||||||
"DELETE /users/{username}/attestations/digest/{subject_digest}"
|
|
||||||
],
|
|
||||||
deleteEmailForAuthenticated: [
|
|
||||||
"DELETE /user/emails",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "deleteEmailForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
deleteEmailForAuthenticatedUser: ["DELETE /user/emails"],
|
|
||||||
deleteGpgKeyForAuthenticated: [
|
|
||||||
"DELETE /user/gpg_keys/{gpg_key_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"],
|
|
||||||
deletePublicSshKeyForAuthenticated: [
|
|
||||||
"DELETE /user/keys/{key_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"],
|
|
||||||
deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"],
|
|
||||||
deleteSshSigningKeyForAuthenticatedUser: [
|
|
||||||
"DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"
|
|
||||||
],
|
|
||||||
follow: ["PUT /user/following/{username}"],
|
|
||||||
getAuthenticated: ["GET /user"],
|
|
||||||
getById: ["GET /user/{account_id}"],
|
|
||||||
getByUsername: ["GET /users/{username}"],
|
|
||||||
getContextForUser: ["GET /users/{username}/hovercard"],
|
|
||||||
getGpgKeyForAuthenticated: [
|
|
||||||
"GET /user/gpg_keys/{gpg_key_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "getGpgKeyForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"],
|
|
||||||
getPublicSshKeyForAuthenticated: [
|
|
||||||
"GET /user/keys/{key_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"],
|
|
||||||
getSshSigningKeyForAuthenticatedUser: [
|
|
||||||
"GET /user/ssh_signing_keys/{ssh_signing_key_id}"
|
|
||||||
],
|
|
||||||
list: ["GET /users"],
|
|
||||||
listAttestations: ["GET /users/{username}/attestations/{subject_digest}"],
|
|
||||||
listAttestationsBulk: [
|
|
||||||
"POST /users/{username}/attestations/bulk-list{?per_page,before,after}"
|
|
||||||
],
|
|
||||||
listBlockedByAuthenticated: [
|
|
||||||
"GET /user/blocks",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "listBlockedByAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
listBlockedByAuthenticatedUser: ["GET /user/blocks"],
|
|
||||||
listEmailsForAuthenticated: [
|
|
||||||
"GET /user/emails",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "listEmailsForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
listEmailsForAuthenticatedUser: ["GET /user/emails"],
|
|
||||||
listFollowedByAuthenticated: [
|
|
||||||
"GET /user/following",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "listFollowedByAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
listFollowedByAuthenticatedUser: ["GET /user/following"],
|
|
||||||
listFollowersForAuthenticatedUser: ["GET /user/followers"],
|
|
||||||
listFollowersForUser: ["GET /users/{username}/followers"],
|
|
||||||
listFollowingForUser: ["GET /users/{username}/following"],
|
|
||||||
listGpgKeysForAuthenticated: [
|
|
||||||
"GET /user/gpg_keys",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "listGpgKeysForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"],
|
|
||||||
listGpgKeysForUser: ["GET /users/{username}/gpg_keys"],
|
|
||||||
listPublicEmailsForAuthenticated: [
|
|
||||||
"GET /user/public_emails",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "listPublicEmailsForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"],
|
|
||||||
listPublicKeysForUser: ["GET /users/{username}/keys"],
|
|
||||||
listPublicSshKeysForAuthenticated: [
|
|
||||||
"GET /user/keys",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"],
|
|
||||||
listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"],
|
|
||||||
listSocialAccountsForUser: ["GET /users/{username}/social_accounts"],
|
|
||||||
listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"],
|
|
||||||
listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"],
|
|
||||||
setPrimaryEmailVisibilityForAuthenticated: [
|
|
||||||
"PATCH /user/email/visibility",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
setPrimaryEmailVisibilityForAuthenticatedUser: [
|
|
||||||
"PATCH /user/email/visibility"
|
|
||||||
],
|
|
||||||
unblock: ["DELETE /user/blocks/{username}"],
|
|
||||||
unfollow: ["DELETE /user/following/{username}"],
|
|
||||||
updateAuthenticated: ["PATCH /user"]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
var endpoints_default = Endpoints;
|
|
||||||
|
|
||||||
//# sourceMappingURL=endpoints.js.map
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js
|
|
||||||
|
|
||||||
const endpointMethodsMap = /* @__PURE__ */ new Map();
|
|
||||||
for (const [scope, endpoints] of Object.entries(endpoints_default)) {
|
|
||||||
for (const [methodName, endpoint] of Object.entries(endpoints)) {
|
|
||||||
const [route, defaults, decorations] = endpoint;
|
|
||||||
const [method, url] = route.split(/ /);
|
|
||||||
const endpointDefaults = Object.assign(
|
|
||||||
{
|
|
||||||
method,
|
|
||||||
url
|
|
||||||
},
|
|
||||||
defaults
|
|
||||||
);
|
|
||||||
if (!endpointMethodsMap.has(scope)) {
|
|
||||||
endpointMethodsMap.set(scope, /* @__PURE__ */ new Map());
|
|
||||||
}
|
|
||||||
endpointMethodsMap.get(scope).set(methodName, {
|
|
||||||
scope,
|
|
||||||
methodName,
|
|
||||||
endpointDefaults,
|
|
||||||
decorations
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const handler = {
|
|
||||||
has({ scope }, methodName) {
|
|
||||||
return endpointMethodsMap.get(scope).has(methodName);
|
|
||||||
},
|
|
||||||
getOwnPropertyDescriptor(target, methodName) {
|
|
||||||
return {
|
|
||||||
value: this.get(target, methodName),
|
|
||||||
// ensures method is in the cache
|
|
||||||
configurable: true,
|
|
||||||
writable: true,
|
|
||||||
enumerable: true
|
|
||||||
};
|
|
||||||
},
|
|
||||||
defineProperty(target, methodName, descriptor) {
|
|
||||||
Object.defineProperty(target.cache, methodName, descriptor);
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
deleteProperty(target, methodName) {
|
|
||||||
delete target.cache[methodName];
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
ownKeys({ scope }) {
|
|
||||||
return [...endpointMethodsMap.get(scope).keys()];
|
|
||||||
},
|
|
||||||
set(target, methodName, value) {
|
|
||||||
return target.cache[methodName] = value;
|
|
||||||
},
|
|
||||||
get({ octokit, scope, cache }, methodName) {
|
|
||||||
if (cache[methodName]) {
|
|
||||||
return cache[methodName];
|
|
||||||
}
|
|
||||||
const method = endpointMethodsMap.get(scope).get(methodName);
|
|
||||||
if (!method) {
|
|
||||||
return void 0;
|
|
||||||
}
|
|
||||||
const { endpointDefaults, decorations } = method;
|
|
||||||
if (decorations) {
|
|
||||||
cache[methodName] = decorate(
|
|
||||||
octokit,
|
|
||||||
scope,
|
|
||||||
methodName,
|
|
||||||
endpointDefaults,
|
|
||||||
decorations
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
cache[methodName] = octokit.request.defaults(endpointDefaults);
|
|
||||||
}
|
|
||||||
return cache[methodName];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
function endpointsToMethods(octokit) {
|
|
||||||
const newMethods = {};
|
|
||||||
for (const scope of endpointMethodsMap.keys()) {
|
|
||||||
newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler);
|
|
||||||
}
|
|
||||||
return newMethods;
|
|
||||||
}
|
|
||||||
function decorate(octokit, scope, methodName, defaults, decorations) {
|
|
||||||
const requestWithDefaults = octokit.request.defaults(defaults);
|
|
||||||
function withDecorations(...args) {
|
|
||||||
let options = requestWithDefaults.endpoint.merge(...args);
|
|
||||||
if (decorations.mapToData) {
|
|
||||||
options = Object.assign({}, options, {
|
|
||||||
data: options[decorations.mapToData],
|
|
||||||
[decorations.mapToData]: void 0
|
|
||||||
});
|
|
||||||
return requestWithDefaults(options);
|
|
||||||
}
|
|
||||||
if (decorations.renamed) {
|
|
||||||
const [newScope, newMethodName] = decorations.renamed;
|
|
||||||
octokit.log.warn(
|
|
||||||
`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (decorations.deprecated) {
|
|
||||||
octokit.log.warn(decorations.deprecated);
|
|
||||||
}
|
|
||||||
if (decorations.renamedParameters) {
|
|
||||||
const options2 = requestWithDefaults.endpoint.merge(...args);
|
|
||||||
for (const [name, alias] of Object.entries(
|
|
||||||
decorations.renamedParameters
|
|
||||||
)) {
|
|
||||||
if (name in options2) {
|
|
||||||
octokit.log.warn(
|
|
||||||
`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`
|
|
||||||
);
|
|
||||||
if (!(alias in options2)) {
|
|
||||||
options2[alias] = options2[name];
|
|
||||||
}
|
|
||||||
delete options2[name];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return requestWithDefaults(options2);
|
|
||||||
}
|
|
||||||
return requestWithDefaults(...args);
|
|
||||||
}
|
|
||||||
return Object.assign(withDecorations, requestWithDefaults);
|
|
||||||
}
|
|
||||||
|
|
||||||
//# sourceMappingURL=endpoints-to-methods.js.map
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js
|
|
||||||
|
|
||||||
|
|
||||||
function restEndpointMethods(octokit) {
|
|
||||||
const api = endpointsToMethods(octokit);
|
|
||||||
return {
|
|
||||||
rest: api
|
|
||||||
};
|
|
||||||
}
|
|
||||||
restEndpointMethods.VERSION = VERSION;
|
|
||||||
function legacyRestEndpointMethods(octokit) {
|
|
||||||
const api = endpointsToMethods(octokit);
|
|
||||||
return {
|
|
||||||
...api,
|
|
||||||
rest: api
|
|
||||||
};
|
|
||||||
}
|
|
||||||
legacyRestEndpointMethods.VERSION = VERSION;
|
|
||||||
|
|
||||||
//# sourceMappingURL=index.js.map
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 4012:
|
/***/ 4012:
|
||||||
@@ -104262,34 +100679,6 @@ module.exports = /*#__PURE__*/JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45
|
|||||||
/******/ }
|
/******/ }
|
||||||
/******/
|
/******/
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/******/ /* webpack/runtime/define property getters */
|
|
||||||
/******/ (() => {
|
|
||||||
/******/ // define getter functions for harmony exports
|
|
||||||
/******/ __nccwpck_require__.d = (exports, definition) => {
|
|
||||||
/******/ for(var key in definition) {
|
|
||||||
/******/ if(__nccwpck_require__.o(definition, key) && !__nccwpck_require__.o(exports, key)) {
|
|
||||||
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
||||||
/******/ }
|
|
||||||
/******/ }
|
|
||||||
/******/ };
|
|
||||||
/******/ })();
|
|
||||||
/******/
|
|
||||||
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
||||||
/******/ (() => {
|
|
||||||
/******/ __nccwpck_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
||||||
/******/ })();
|
|
||||||
/******/
|
|
||||||
/******/ /* webpack/runtime/make namespace object */
|
|
||||||
/******/ (() => {
|
|
||||||
/******/ // define __esModule on exports
|
|
||||||
/******/ __nccwpck_require__.r = (exports) => {
|
|
||||||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
||||||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
||||||
/******/ }
|
|
||||||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
||||||
/******/ };
|
|
||||||
/******/ })();
|
|
||||||
/******/
|
|
||||||
/******/ /* webpack/runtime/compat */
|
/******/ /* webpack/runtime/compat */
|
||||||
/******/
|
/******/
|
||||||
/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = __dirname + "/";
|
/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = __dirname + "/";
|
||||||
|
|||||||
5997
dist/update-known-versions/index.js → dist/update-known-checksums/index.js
generated
vendored
5997
dist/update-known-versions/index.js → dist/update-known-checksums/index.js
generated
vendored
@@ -3186,909 +3186,6 @@ function copyFile(srcFile, destFile, force) {
|
|||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 8036:
|
|
||||||
/***/ (function(module, exports, __nccwpck_require__) {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
||||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
||||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
||||||
}
|
|
||||||
Object.defineProperty(o, k2, desc);
|
|
||||||
}) : (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
o[k2] = m[k];
|
|
||||||
}));
|
|
||||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
||||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
||||||
}) : function(o, v) {
|
|
||||||
o["default"] = v;
|
|
||||||
});
|
|
||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
|
||||||
if (mod && mod.__esModule) return mod;
|
|
||||||
var result = {};
|
|
||||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
||||||
__setModuleDefault(result, mod);
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
||||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
||||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
||||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
||||||
});
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
||||||
exports._readLinuxVersionFile = exports._getOsVersion = exports._findMatch = void 0;
|
|
||||||
const semver = __importStar(__nccwpck_require__(9318));
|
|
||||||
const core_1 = __nccwpck_require__(7484);
|
|
||||||
// needs to be require for core node modules to be mocked
|
|
||||||
/* eslint @typescript-eslint/no-require-imports: 0 */
|
|
||||||
const os = __nccwpck_require__(857);
|
|
||||||
const cp = __nccwpck_require__(5317);
|
|
||||||
const fs = __nccwpck_require__(9896);
|
|
||||||
function _findMatch(versionSpec, stable, candidates, archFilter) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
const platFilter = os.platform();
|
|
||||||
let result;
|
|
||||||
let match;
|
|
||||||
let file;
|
|
||||||
for (const candidate of candidates) {
|
|
||||||
const version = candidate.version;
|
|
||||||
(0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);
|
|
||||||
if (semver.satisfies(version, versionSpec) &&
|
|
||||||
(!stable || candidate.stable === stable)) {
|
|
||||||
file = candidate.files.find(item => {
|
|
||||||
(0, core_1.debug)(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
|
|
||||||
let chk = item.arch === archFilter && item.platform === platFilter;
|
|
||||||
if (chk && item.platform_version) {
|
|
||||||
const osVersion = module.exports._getOsVersion();
|
|
||||||
if (osVersion === item.platform_version) {
|
|
||||||
chk = true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
chk = semver.satisfies(osVersion, item.platform_version);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return chk;
|
|
||||||
});
|
|
||||||
if (file) {
|
|
||||||
(0, core_1.debug)(`matched ${candidate.version}`);
|
|
||||||
match = candidate;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (match && file) {
|
|
||||||
// clone since we're mutating the file list to be only the file that matches
|
|
||||||
result = Object.assign({}, match);
|
|
||||||
result.files = [file];
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports._findMatch = _findMatch;
|
|
||||||
function _getOsVersion() {
|
|
||||||
// TODO: add windows and other linux, arm variants
|
|
||||||
// right now filtering on version is only an ubuntu and macos scenario for tools we build for hosted (python)
|
|
||||||
const plat = os.platform();
|
|
||||||
let version = '';
|
|
||||||
if (plat === 'darwin') {
|
|
||||||
version = cp.execSync('sw_vers -productVersion').toString();
|
|
||||||
}
|
|
||||||
else if (plat === 'linux') {
|
|
||||||
// lsb_release process not in some containers, readfile
|
|
||||||
// Run cat /etc/lsb-release
|
|
||||||
// DISTRIB_ID=Ubuntu
|
|
||||||
// DISTRIB_RELEASE=18.04
|
|
||||||
// DISTRIB_CODENAME=bionic
|
|
||||||
// DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS"
|
|
||||||
const lsbContents = module.exports._readLinuxVersionFile();
|
|
||||||
if (lsbContents) {
|
|
||||||
const lines = lsbContents.split('\n');
|
|
||||||
for (const line of lines) {
|
|
||||||
const parts = line.split('=');
|
|
||||||
if (parts.length === 2 &&
|
|
||||||
(parts[0].trim() === 'VERSION_ID' ||
|
|
||||||
parts[0].trim() === 'DISTRIB_RELEASE')) {
|
|
||||||
version = parts[1].trim().replace(/^"/, '').replace(/"$/, '');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
exports._getOsVersion = _getOsVersion;
|
|
||||||
function _readLinuxVersionFile() {
|
|
||||||
const lsbReleaseFile = '/etc/lsb-release';
|
|
||||||
const osReleaseFile = '/etc/os-release';
|
|
||||||
let contents = '';
|
|
||||||
if (fs.existsSync(lsbReleaseFile)) {
|
|
||||||
contents = fs.readFileSync(lsbReleaseFile).toString();
|
|
||||||
}
|
|
||||||
else if (fs.existsSync(osReleaseFile)) {
|
|
||||||
contents = fs.readFileSync(osReleaseFile).toString();
|
|
||||||
}
|
|
||||||
return contents;
|
|
||||||
}
|
|
||||||
exports._readLinuxVersionFile = _readLinuxVersionFile;
|
|
||||||
//# sourceMappingURL=manifest.js.map
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 7380:
|
|
||||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
||||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
||||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
||||||
}
|
|
||||||
Object.defineProperty(o, k2, desc);
|
|
||||||
}) : (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
o[k2] = m[k];
|
|
||||||
}));
|
|
||||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
||||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
||||||
}) : function(o, v) {
|
|
||||||
o["default"] = v;
|
|
||||||
});
|
|
||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
|
||||||
if (mod && mod.__esModule) return mod;
|
|
||||||
var result = {};
|
|
||||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
||||||
__setModuleDefault(result, mod);
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
||||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
||||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
||||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
||||||
});
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
||||||
exports.RetryHelper = void 0;
|
|
||||||
const core = __importStar(__nccwpck_require__(7484));
|
|
||||||
/**
|
|
||||||
* Internal class for retries
|
|
||||||
*/
|
|
||||||
class RetryHelper {
|
|
||||||
constructor(maxAttempts, minSeconds, maxSeconds) {
|
|
||||||
if (maxAttempts < 1) {
|
|
||||||
throw new Error('max attempts should be greater than or equal to 1');
|
|
||||||
}
|
|
||||||
this.maxAttempts = maxAttempts;
|
|
||||||
this.minSeconds = Math.floor(minSeconds);
|
|
||||||
this.maxSeconds = Math.floor(maxSeconds);
|
|
||||||
if (this.minSeconds > this.maxSeconds) {
|
|
||||||
throw new Error('min seconds should be less than or equal to max seconds');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
execute(action, isRetryable) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
let attempt = 1;
|
|
||||||
while (attempt < this.maxAttempts) {
|
|
||||||
// Try
|
|
||||||
try {
|
|
||||||
return yield action();
|
|
||||||
}
|
|
||||||
catch (err) {
|
|
||||||
if (isRetryable && !isRetryable(err)) {
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
core.info(err.message);
|
|
||||||
}
|
|
||||||
// Sleep
|
|
||||||
const seconds = this.getSleepAmount();
|
|
||||||
core.info(`Waiting ${seconds} seconds before trying again`);
|
|
||||||
yield this.sleep(seconds);
|
|
||||||
attempt++;
|
|
||||||
}
|
|
||||||
// Last attempt
|
|
||||||
return yield action();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
getSleepAmount() {
|
|
||||||
return (Math.floor(Math.random() * (this.maxSeconds - this.minSeconds + 1)) +
|
|
||||||
this.minSeconds);
|
|
||||||
}
|
|
||||||
sleep(seconds) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
return new Promise(resolve => setTimeout(resolve, seconds * 1000));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
exports.RetryHelper = RetryHelper;
|
|
||||||
//# sourceMappingURL=retry-helper.js.map
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 3472:
|
|
||||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
||||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
||||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
||||||
}
|
|
||||||
Object.defineProperty(o, k2, desc);
|
|
||||||
}) : (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
o[k2] = m[k];
|
|
||||||
}));
|
|
||||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
||||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
||||||
}) : function(o, v) {
|
|
||||||
o["default"] = v;
|
|
||||||
});
|
|
||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
|
||||||
if (mod && mod.__esModule) return mod;
|
|
||||||
var result = {};
|
|
||||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
||||||
__setModuleDefault(result, mod);
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
||||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
||||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
||||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
||||||
});
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
||||||
exports.evaluateVersions = exports.isExplicitVersion = exports.findFromManifest = exports.getManifestFromRepo = exports.findAllVersions = exports.find = exports.cacheFile = exports.cacheDir = exports.extractZip = exports.extractXar = exports.extractTar = exports.extract7z = exports.downloadTool = exports.HTTPError = void 0;
|
|
||||||
const core = __importStar(__nccwpck_require__(7484));
|
|
||||||
const io = __importStar(__nccwpck_require__(4994));
|
|
||||||
const crypto = __importStar(__nccwpck_require__(6982));
|
|
||||||
const fs = __importStar(__nccwpck_require__(9896));
|
|
||||||
const mm = __importStar(__nccwpck_require__(8036));
|
|
||||||
const os = __importStar(__nccwpck_require__(857));
|
|
||||||
const path = __importStar(__nccwpck_require__(6928));
|
|
||||||
const httpm = __importStar(__nccwpck_require__(4844));
|
|
||||||
const semver = __importStar(__nccwpck_require__(9318));
|
|
||||||
const stream = __importStar(__nccwpck_require__(2203));
|
|
||||||
const util = __importStar(__nccwpck_require__(9023));
|
|
||||||
const assert_1 = __nccwpck_require__(2613);
|
|
||||||
const exec_1 = __nccwpck_require__(5236);
|
|
||||||
const retry_helper_1 = __nccwpck_require__(7380);
|
|
||||||
class HTTPError extends Error {
|
|
||||||
constructor(httpStatusCode) {
|
|
||||||
super(`Unexpected HTTP response: ${httpStatusCode}`);
|
|
||||||
this.httpStatusCode = httpStatusCode;
|
|
||||||
Object.setPrototypeOf(this, new.target.prototype);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
exports.HTTPError = HTTPError;
|
|
||||||
const IS_WINDOWS = process.platform === 'win32';
|
|
||||||
const IS_MAC = process.platform === 'darwin';
|
|
||||||
const userAgent = 'actions/tool-cache';
|
|
||||||
/**
|
|
||||||
* Download a tool from an url and stream it into a file
|
|
||||||
*
|
|
||||||
* @param url url of tool to download
|
|
||||||
* @param dest path to download tool
|
|
||||||
* @param auth authorization header
|
|
||||||
* @param headers other headers
|
|
||||||
* @returns path to downloaded tool
|
|
||||||
*/
|
|
||||||
function downloadTool(url, dest, auth, headers) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
dest = dest || path.join(_getTempDirectory(), crypto.randomUUID());
|
|
||||||
yield io.mkdirP(path.dirname(dest));
|
|
||||||
core.debug(`Downloading ${url}`);
|
|
||||||
core.debug(`Destination ${dest}`);
|
|
||||||
const maxAttempts = 3;
|
|
||||||
const minSeconds = _getGlobal('TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS', 10);
|
|
||||||
const maxSeconds = _getGlobal('TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS', 20);
|
|
||||||
const retryHelper = new retry_helper_1.RetryHelper(maxAttempts, minSeconds, maxSeconds);
|
|
||||||
return yield retryHelper.execute(() => __awaiter(this, void 0, void 0, function* () {
|
|
||||||
return yield downloadToolAttempt(url, dest || '', auth, headers);
|
|
||||||
}), (err) => {
|
|
||||||
if (err instanceof HTTPError && err.httpStatusCode) {
|
|
||||||
// Don't retry anything less than 500, except 408 Request Timeout and 429 Too Many Requests
|
|
||||||
if (err.httpStatusCode < 500 &&
|
|
||||||
err.httpStatusCode !== 408 &&
|
|
||||||
err.httpStatusCode !== 429) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Otherwise retry
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.downloadTool = downloadTool;
|
|
||||||
function downloadToolAttempt(url, dest, auth, headers) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
if (fs.existsSync(dest)) {
|
|
||||||
throw new Error(`Destination file path ${dest} already exists`);
|
|
||||||
}
|
|
||||||
// Get the response headers
|
|
||||||
const http = new httpm.HttpClient(userAgent, [], {
|
|
||||||
allowRetries: false
|
|
||||||
});
|
|
||||||
if (auth) {
|
|
||||||
core.debug('set auth');
|
|
||||||
if (headers === undefined) {
|
|
||||||
headers = {};
|
|
||||||
}
|
|
||||||
headers.authorization = auth;
|
|
||||||
}
|
|
||||||
const response = yield http.get(url, headers);
|
|
||||||
if (response.message.statusCode !== 200) {
|
|
||||||
const err = new HTTPError(response.message.statusCode);
|
|
||||||
core.debug(`Failed to download from "${url}". Code(${response.message.statusCode}) Message(${response.message.statusMessage})`);
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
// Download the response body
|
|
||||||
const pipeline = util.promisify(stream.pipeline);
|
|
||||||
const responseMessageFactory = _getGlobal('TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY', () => response.message);
|
|
||||||
const readStream = responseMessageFactory();
|
|
||||||
let succeeded = false;
|
|
||||||
try {
|
|
||||||
yield pipeline(readStream, fs.createWriteStream(dest));
|
|
||||||
core.debug('download complete');
|
|
||||||
succeeded = true;
|
|
||||||
return dest;
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
// Error, delete dest before retry
|
|
||||||
if (!succeeded) {
|
|
||||||
core.debug('download failed');
|
|
||||||
try {
|
|
||||||
yield io.rmRF(dest);
|
|
||||||
}
|
|
||||||
catch (err) {
|
|
||||||
core.debug(`Failed to delete '${dest}'. ${err.message}`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Extract a .7z file
|
|
||||||
*
|
|
||||||
* @param file path to the .7z file
|
|
||||||
* @param dest destination directory. Optional.
|
|
||||||
* @param _7zPath path to 7zr.exe. Optional, for long path support. Most .7z archives do not have this
|
|
||||||
* problem. If your .7z archive contains very long paths, you can pass the path to 7zr.exe which will
|
|
||||||
* gracefully handle long paths. By default 7zdec.exe is used because it is a very small program and is
|
|
||||||
* bundled with the tool lib. However it does not support long paths. 7zr.exe is the reduced command line
|
|
||||||
* interface, it is smaller than the full command line interface, and it does support long paths. At the
|
|
||||||
* time of this writing, it is freely available from the LZMA SDK that is available on the 7zip website.
|
|
||||||
* Be sure to check the current license agreement. If 7zr.exe is bundled with your action, then the path
|
|
||||||
* to 7zr.exe can be pass to this function.
|
|
||||||
* @returns path to the destination directory
|
|
||||||
*/
|
|
||||||
function extract7z(file, dest, _7zPath) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
(0, assert_1.ok)(IS_WINDOWS, 'extract7z() not supported on current OS');
|
|
||||||
(0, assert_1.ok)(file, 'parameter "file" is required');
|
|
||||||
dest = yield _createExtractFolder(dest);
|
|
||||||
const originalCwd = process.cwd();
|
|
||||||
process.chdir(dest);
|
|
||||||
if (_7zPath) {
|
|
||||||
try {
|
|
||||||
const logLevel = core.isDebug() ? '-bb1' : '-bb0';
|
|
||||||
const args = [
|
|
||||||
'x',
|
|
||||||
logLevel,
|
|
||||||
'-bd',
|
|
||||||
'-sccUTF-8',
|
|
||||||
file
|
|
||||||
];
|
|
||||||
const options = {
|
|
||||||
silent: true
|
|
||||||
};
|
|
||||||
yield (0, exec_1.exec)(`"${_7zPath}"`, args, options);
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
process.chdir(originalCwd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
const escapedScript = path
|
|
||||||
.join(__dirname, '..', 'scripts', 'Invoke-7zdec.ps1')
|
|
||||||
.replace(/'/g, "''")
|
|
||||||
.replace(/"|\n|\r/g, ''); // double-up single quotes, remove double quotes and newlines
|
|
||||||
const escapedFile = file.replace(/'/g, "''").replace(/"|\n|\r/g, '');
|
|
||||||
const escapedTarget = dest.replace(/'/g, "''").replace(/"|\n|\r/g, '');
|
|
||||||
const command = `& '${escapedScript}' -Source '${escapedFile}' -Target '${escapedTarget}'`;
|
|
||||||
const args = [
|
|
||||||
'-NoLogo',
|
|
||||||
'-Sta',
|
|
||||||
'-NoProfile',
|
|
||||||
'-NonInteractive',
|
|
||||||
'-ExecutionPolicy',
|
|
||||||
'Unrestricted',
|
|
||||||
'-Command',
|
|
||||||
command
|
|
||||||
];
|
|
||||||
const options = {
|
|
||||||
silent: true
|
|
||||||
};
|
|
||||||
try {
|
|
||||||
const powershellPath = yield io.which('powershell', true);
|
|
||||||
yield (0, exec_1.exec)(`"${powershellPath}"`, args, options);
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
process.chdir(originalCwd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return dest;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.extract7z = extract7z;
|
|
||||||
/**
|
|
||||||
* Extract a compressed tar archive
|
|
||||||
*
|
|
||||||
* @param file path to the tar
|
|
||||||
* @param dest destination directory. Optional.
|
|
||||||
* @param flags flags for the tar command to use for extraction. Defaults to 'xz' (extracting gzipped tars). Optional.
|
|
||||||
* @returns path to the destination directory
|
|
||||||
*/
|
|
||||||
function extractTar(file, dest, flags = 'xz') {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
if (!file) {
|
|
||||||
throw new Error("parameter 'file' is required");
|
|
||||||
}
|
|
||||||
// Create dest
|
|
||||||
dest = yield _createExtractFolder(dest);
|
|
||||||
// Determine whether GNU tar
|
|
||||||
core.debug('Checking tar --version');
|
|
||||||
let versionOutput = '';
|
|
||||||
yield (0, exec_1.exec)('tar --version', [], {
|
|
||||||
ignoreReturnCode: true,
|
|
||||||
silent: true,
|
|
||||||
listeners: {
|
|
||||||
stdout: (data) => (versionOutput += data.toString()),
|
|
||||||
stderr: (data) => (versionOutput += data.toString())
|
|
||||||
}
|
|
||||||
});
|
|
||||||
core.debug(versionOutput.trim());
|
|
||||||
const isGnuTar = versionOutput.toUpperCase().includes('GNU TAR');
|
|
||||||
// Initialize args
|
|
||||||
let args;
|
|
||||||
if (flags instanceof Array) {
|
|
||||||
args = flags;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
args = [flags];
|
|
||||||
}
|
|
||||||
if (core.isDebug() && !flags.includes('v')) {
|
|
||||||
args.push('-v');
|
|
||||||
}
|
|
||||||
let destArg = dest;
|
|
||||||
let fileArg = file;
|
|
||||||
if (IS_WINDOWS && isGnuTar) {
|
|
||||||
args.push('--force-local');
|
|
||||||
destArg = dest.replace(/\\/g, '/');
|
|
||||||
// Technically only the dest needs to have `/` but for aesthetic consistency
|
|
||||||
// convert slashes in the file arg too.
|
|
||||||
fileArg = file.replace(/\\/g, '/');
|
|
||||||
}
|
|
||||||
if (isGnuTar) {
|
|
||||||
// Suppress warnings when using GNU tar to extract archives created by BSD tar
|
|
||||||
args.push('--warning=no-unknown-keyword');
|
|
||||||
args.push('--overwrite');
|
|
||||||
}
|
|
||||||
args.push('-C', destArg, '-f', fileArg);
|
|
||||||
yield (0, exec_1.exec)(`tar`, args);
|
|
||||||
return dest;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.extractTar = extractTar;
|
|
||||||
/**
|
|
||||||
* Extract a xar compatible archive
|
|
||||||
*
|
|
||||||
* @param file path to the archive
|
|
||||||
* @param dest destination directory. Optional.
|
|
||||||
* @param flags flags for the xar. Optional.
|
|
||||||
* @returns path to the destination directory
|
|
||||||
*/
|
|
||||||
function extractXar(file, dest, flags = []) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
(0, assert_1.ok)(IS_MAC, 'extractXar() not supported on current OS');
|
|
||||||
(0, assert_1.ok)(file, 'parameter "file" is required');
|
|
||||||
dest = yield _createExtractFolder(dest);
|
|
||||||
let args;
|
|
||||||
if (flags instanceof Array) {
|
|
||||||
args = flags;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
args = [flags];
|
|
||||||
}
|
|
||||||
args.push('-x', '-C', dest, '-f', file);
|
|
||||||
if (core.isDebug()) {
|
|
||||||
args.push('-v');
|
|
||||||
}
|
|
||||||
const xarPath = yield io.which('xar', true);
|
|
||||||
yield (0, exec_1.exec)(`"${xarPath}"`, _unique(args));
|
|
||||||
return dest;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.extractXar = extractXar;
|
|
||||||
/**
|
|
||||||
* Extract a zip
|
|
||||||
*
|
|
||||||
* @param file path to the zip
|
|
||||||
* @param dest destination directory. Optional.
|
|
||||||
* @returns path to the destination directory
|
|
||||||
*/
|
|
||||||
function extractZip(file, dest) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
if (!file) {
|
|
||||||
throw new Error("parameter 'file' is required");
|
|
||||||
}
|
|
||||||
dest = yield _createExtractFolder(dest);
|
|
||||||
if (IS_WINDOWS) {
|
|
||||||
yield extractZipWin(file, dest);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
yield extractZipNix(file, dest);
|
|
||||||
}
|
|
||||||
return dest;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.extractZip = extractZip;
|
|
||||||
function extractZipWin(file, dest) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
// build the powershell command
|
|
||||||
const escapedFile = file.replace(/'/g, "''").replace(/"|\n|\r/g, ''); // double-up single quotes, remove double quotes and newlines
|
|
||||||
const escapedDest = dest.replace(/'/g, "''").replace(/"|\n|\r/g, '');
|
|
||||||
const pwshPath = yield io.which('pwsh', false);
|
|
||||||
//To match the file overwrite behavior on nix systems, we use the overwrite = true flag for ExtractToDirectory
|
|
||||||
//and the -Force flag for Expand-Archive as a fallback
|
|
||||||
if (pwshPath) {
|
|
||||||
//attempt to use pwsh with ExtractToDirectory, if this fails attempt Expand-Archive
|
|
||||||
const pwshCommand = [
|
|
||||||
`$ErrorActionPreference = 'Stop' ;`,
|
|
||||||
`try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ;`,
|
|
||||||
`try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }`,
|
|
||||||
`catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force } else { throw $_ } } ;`
|
|
||||||
].join(' ');
|
|
||||||
const args = [
|
|
||||||
'-NoLogo',
|
|
||||||
'-NoProfile',
|
|
||||||
'-NonInteractive',
|
|
||||||
'-ExecutionPolicy',
|
|
||||||
'Unrestricted',
|
|
||||||
'-Command',
|
|
||||||
pwshCommand
|
|
||||||
];
|
|
||||||
core.debug(`Using pwsh at path: ${pwshPath}`);
|
|
||||||
yield (0, exec_1.exec)(`"${pwshPath}"`, args);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
const powershellCommand = [
|
|
||||||
`$ErrorActionPreference = 'Stop' ;`,
|
|
||||||
`try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ;`,
|
|
||||||
`if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force }`,
|
|
||||||
`else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }`
|
|
||||||
].join(' ');
|
|
||||||
const args = [
|
|
||||||
'-NoLogo',
|
|
||||||
'-Sta',
|
|
||||||
'-NoProfile',
|
|
||||||
'-NonInteractive',
|
|
||||||
'-ExecutionPolicy',
|
|
||||||
'Unrestricted',
|
|
||||||
'-Command',
|
|
||||||
powershellCommand
|
|
||||||
];
|
|
||||||
const powershellPath = yield io.which('powershell', true);
|
|
||||||
core.debug(`Using powershell at path: ${powershellPath}`);
|
|
||||||
yield (0, exec_1.exec)(`"${powershellPath}"`, args);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
function extractZipNix(file, dest) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
const unzipPath = yield io.which('unzip', true);
|
|
||||||
const args = [file];
|
|
||||||
if (!core.isDebug()) {
|
|
||||||
args.unshift('-q');
|
|
||||||
}
|
|
||||||
args.unshift('-o'); //overwrite with -o, otherwise a prompt is shown which freezes the run
|
|
||||||
yield (0, exec_1.exec)(`"${unzipPath}"`, args, { cwd: dest });
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Caches a directory and installs it into the tool cacheDir
|
|
||||||
*
|
|
||||||
* @param sourceDir the directory to cache into tools
|
|
||||||
* @param tool tool name
|
|
||||||
* @param version version of the tool. semver format
|
|
||||||
* @param arch architecture of the tool. Optional. Defaults to machine architecture
|
|
||||||
*/
|
|
||||||
function cacheDir(sourceDir, tool, version, arch) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
version = semver.clean(version) || version;
|
|
||||||
arch = arch || os.arch();
|
|
||||||
core.debug(`Caching tool ${tool} ${version} ${arch}`);
|
|
||||||
core.debug(`source dir: ${sourceDir}`);
|
|
||||||
if (!fs.statSync(sourceDir).isDirectory()) {
|
|
||||||
throw new Error('sourceDir is not a directory');
|
|
||||||
}
|
|
||||||
// Create the tool dir
|
|
||||||
const destPath = yield _createToolPath(tool, version, arch);
|
|
||||||
// copy each child item. do not move. move can fail on Windows
|
|
||||||
// due to anti-virus software having an open handle on a file.
|
|
||||||
for (const itemName of fs.readdirSync(sourceDir)) {
|
|
||||||
const s = path.join(sourceDir, itemName);
|
|
||||||
yield io.cp(s, destPath, { recursive: true });
|
|
||||||
}
|
|
||||||
// write .complete
|
|
||||||
_completeToolPath(tool, version, arch);
|
|
||||||
return destPath;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.cacheDir = cacheDir;
|
|
||||||
/**
|
|
||||||
* Caches a downloaded file (GUID) and installs it
|
|
||||||
* into the tool cache with a given targetName
|
|
||||||
*
|
|
||||||
* @param sourceFile the file to cache into tools. Typically a result of downloadTool which is a guid.
|
|
||||||
* @param targetFile the name of the file name in the tools directory
|
|
||||||
* @param tool tool name
|
|
||||||
* @param version version of the tool. semver format
|
|
||||||
* @param arch architecture of the tool. Optional. Defaults to machine architecture
|
|
||||||
*/
|
|
||||||
function cacheFile(sourceFile, targetFile, tool, version, arch) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
version = semver.clean(version) || version;
|
|
||||||
arch = arch || os.arch();
|
|
||||||
core.debug(`Caching tool ${tool} ${version} ${arch}`);
|
|
||||||
core.debug(`source file: ${sourceFile}`);
|
|
||||||
if (!fs.statSync(sourceFile).isFile()) {
|
|
||||||
throw new Error('sourceFile is not a file');
|
|
||||||
}
|
|
||||||
// create the tool dir
|
|
||||||
const destFolder = yield _createToolPath(tool, version, arch);
|
|
||||||
// copy instead of move. move can fail on Windows due to
|
|
||||||
// anti-virus software having an open handle on a file.
|
|
||||||
const destPath = path.join(destFolder, targetFile);
|
|
||||||
core.debug(`destination file ${destPath}`);
|
|
||||||
yield io.cp(sourceFile, destPath);
|
|
||||||
// write .complete
|
|
||||||
_completeToolPath(tool, version, arch);
|
|
||||||
return destFolder;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.cacheFile = cacheFile;
|
|
||||||
/**
|
|
||||||
* Finds the path to a tool version in the local installed tool cache
|
|
||||||
*
|
|
||||||
* @param toolName name of the tool
|
|
||||||
* @param versionSpec version of the tool
|
|
||||||
* @param arch optional arch. defaults to arch of computer
|
|
||||||
*/
|
|
||||||
function find(toolName, versionSpec, arch) {
|
|
||||||
if (!toolName) {
|
|
||||||
throw new Error('toolName parameter is required');
|
|
||||||
}
|
|
||||||
if (!versionSpec) {
|
|
||||||
throw new Error('versionSpec parameter is required');
|
|
||||||
}
|
|
||||||
arch = arch || os.arch();
|
|
||||||
// attempt to resolve an explicit version
|
|
||||||
if (!isExplicitVersion(versionSpec)) {
|
|
||||||
const localVersions = findAllVersions(toolName, arch);
|
|
||||||
const match = evaluateVersions(localVersions, versionSpec);
|
|
||||||
versionSpec = match;
|
|
||||||
}
|
|
||||||
// check for the explicit version in the cache
|
|
||||||
let toolPath = '';
|
|
||||||
if (versionSpec) {
|
|
||||||
versionSpec = semver.clean(versionSpec) || '';
|
|
||||||
const cachePath = path.join(_getCacheDirectory(), toolName, versionSpec, arch);
|
|
||||||
core.debug(`checking cache: ${cachePath}`);
|
|
||||||
if (fs.existsSync(cachePath) && fs.existsSync(`${cachePath}.complete`)) {
|
|
||||||
core.debug(`Found tool in cache ${toolName} ${versionSpec} ${arch}`);
|
|
||||||
toolPath = cachePath;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
core.debug('not found');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return toolPath;
|
|
||||||
}
|
|
||||||
exports.find = find;
|
|
||||||
/**
|
|
||||||
* Finds the paths to all versions of a tool that are installed in the local tool cache
|
|
||||||
*
|
|
||||||
* @param toolName name of the tool
|
|
||||||
* @param arch optional arch. defaults to arch of computer
|
|
||||||
*/
|
|
||||||
function findAllVersions(toolName, arch) {
|
|
||||||
const versions = [];
|
|
||||||
arch = arch || os.arch();
|
|
||||||
const toolPath = path.join(_getCacheDirectory(), toolName);
|
|
||||||
if (fs.existsSync(toolPath)) {
|
|
||||||
const children = fs.readdirSync(toolPath);
|
|
||||||
for (const child of children) {
|
|
||||||
if (isExplicitVersion(child)) {
|
|
||||||
const fullPath = path.join(toolPath, child, arch || '');
|
|
||||||
if (fs.existsSync(fullPath) && fs.existsSync(`${fullPath}.complete`)) {
|
|
||||||
versions.push(child);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return versions;
|
|
||||||
}
|
|
||||||
exports.findAllVersions = findAllVersions;
|
|
||||||
function getManifestFromRepo(owner, repo, auth, branch = 'master') {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
let releases = [];
|
|
||||||
const treeUrl = `https://api.github.com/repos/${owner}/${repo}/git/trees/${branch}`;
|
|
||||||
const http = new httpm.HttpClient('tool-cache');
|
|
||||||
const headers = {};
|
|
||||||
if (auth) {
|
|
||||||
core.debug('set auth');
|
|
||||||
headers.authorization = auth;
|
|
||||||
}
|
|
||||||
const response = yield http.getJson(treeUrl, headers);
|
|
||||||
if (!response.result) {
|
|
||||||
return releases;
|
|
||||||
}
|
|
||||||
let manifestUrl = '';
|
|
||||||
for (const item of response.result.tree) {
|
|
||||||
if (item.path === 'versions-manifest.json') {
|
|
||||||
manifestUrl = item.url;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
headers['accept'] = 'application/vnd.github.VERSION.raw';
|
|
||||||
let versionsRaw = yield (yield http.get(manifestUrl, headers)).readBody();
|
|
||||||
if (versionsRaw) {
|
|
||||||
// shouldn't be needed but protects against invalid json saved with BOM
|
|
||||||
versionsRaw = versionsRaw.replace(/^\uFEFF/, '');
|
|
||||||
try {
|
|
||||||
releases = JSON.parse(versionsRaw);
|
|
||||||
}
|
|
||||||
catch (_a) {
|
|
||||||
core.debug('Invalid json');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return releases;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.getManifestFromRepo = getManifestFromRepo;
|
|
||||||
function findFromManifest(versionSpec, stable, manifest, archFilter = os.arch()) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
// wrap the internal impl
|
|
||||||
const match = yield mm._findMatch(versionSpec, stable, manifest, archFilter);
|
|
||||||
return match;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
exports.findFromManifest = findFromManifest;
|
|
||||||
function _createExtractFolder(dest) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
if (!dest) {
|
|
||||||
// create a temp dir
|
|
||||||
dest = path.join(_getTempDirectory(), crypto.randomUUID());
|
|
||||||
}
|
|
||||||
yield io.mkdirP(dest);
|
|
||||||
return dest;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
function _createToolPath(tool, version, arch) {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
const folderPath = path.join(_getCacheDirectory(), tool, semver.clean(version) || version, arch || '');
|
|
||||||
core.debug(`destination ${folderPath}`);
|
|
||||||
const markerPath = `${folderPath}.complete`;
|
|
||||||
yield io.rmRF(folderPath);
|
|
||||||
yield io.rmRF(markerPath);
|
|
||||||
yield io.mkdirP(folderPath);
|
|
||||||
return folderPath;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
function _completeToolPath(tool, version, arch) {
|
|
||||||
const folderPath = path.join(_getCacheDirectory(), tool, semver.clean(version) || version, arch || '');
|
|
||||||
const markerPath = `${folderPath}.complete`;
|
|
||||||
fs.writeFileSync(markerPath, '');
|
|
||||||
core.debug('finished caching tool');
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Check if version string is explicit
|
|
||||||
*
|
|
||||||
* @param versionSpec version string to check
|
|
||||||
*/
|
|
||||||
function isExplicitVersion(versionSpec) {
|
|
||||||
const c = semver.clean(versionSpec) || '';
|
|
||||||
core.debug(`isExplicit: ${c}`);
|
|
||||||
const valid = semver.valid(c) != null;
|
|
||||||
core.debug(`explicit? ${valid}`);
|
|
||||||
return valid;
|
|
||||||
}
|
|
||||||
exports.isExplicitVersion = isExplicitVersion;
|
|
||||||
/**
|
|
||||||
* Get the highest satisfiying semantic version in `versions` which satisfies `versionSpec`
|
|
||||||
*
|
|
||||||
* @param versions array of versions to evaluate
|
|
||||||
* @param versionSpec semantic version spec to satisfy
|
|
||||||
*/
|
|
||||||
function evaluateVersions(versions, versionSpec) {
|
|
||||||
let version = '';
|
|
||||||
core.debug(`evaluating ${versions.length} versions`);
|
|
||||||
versions = versions.sort((a, b) => {
|
|
||||||
if (semver.gt(a, b)) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
});
|
|
||||||
for (let i = versions.length - 1; i >= 0; i--) {
|
|
||||||
const potential = versions[i];
|
|
||||||
const satisfied = semver.satisfies(potential, versionSpec);
|
|
||||||
if (satisfied) {
|
|
||||||
version = potential;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (version) {
|
|
||||||
core.debug(`matched: ${version}`);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
core.debug('match not found');
|
|
||||||
}
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
exports.evaluateVersions = evaluateVersions;
|
|
||||||
/**
|
|
||||||
* Gets RUNNER_TOOL_CACHE
|
|
||||||
*/
|
|
||||||
function _getCacheDirectory() {
|
|
||||||
const cacheDirectory = process.env['RUNNER_TOOL_CACHE'] || '';
|
|
||||||
(0, assert_1.ok)(cacheDirectory, 'Expected RUNNER_TOOL_CACHE to be defined');
|
|
||||||
return cacheDirectory;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Gets RUNNER_TEMP
|
|
||||||
*/
|
|
||||||
function _getTempDirectory() {
|
|
||||||
const tempDirectory = process.env['RUNNER_TEMP'] || '';
|
|
||||||
(0, assert_1.ok)(tempDirectory, 'Expected RUNNER_TEMP to be defined');
|
|
||||||
return tempDirectory;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Gets a global variable
|
|
||||||
*/
|
|
||||||
function _getGlobal(key, defaultValue) {
|
|
||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
||||||
const value = global[key];
|
|
||||||
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
||||||
return value !== undefined ? value : defaultValue;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Returns an array of unique values.
|
|
||||||
* @param values Values to make unique.
|
|
||||||
*/
|
|
||||||
function _unique(values) {
|
|
||||||
return Array.from(new Set(values));
|
|
||||||
}
|
|
||||||
//# sourceMappingURL=tool-cache.js.map
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 9318:
|
/***/ 9318:
|
||||||
/***/ ((module, exports) => {
|
/***/ ((module, exports) => {
|
||||||
|
|
||||||
@@ -28196,6 +27293,320 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|||||||
exports.KNOWN_CHECKSUMS = void 0;
|
exports.KNOWN_CHECKSUMS = void 0;
|
||||||
// AUTOGENERATED_DO_NOT_EDIT
|
// AUTOGENERATED_DO_NOT_EDIT
|
||||||
exports.KNOWN_CHECKSUMS = {
|
exports.KNOWN_CHECKSUMS = {
|
||||||
|
"aarch64-apple-darwin-0.10.9": "a92f61e9ac9b0f29668c15f56152e4a60143fca148ff5bfadb86718472c3f376",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.9": "5c2526844acf978eab784161c21604343141aa6c9ed22c237ae2f315648f049d",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.9": "cc0c5a8573e7d6d78aecb954e0a62b5c0d18217bb81f1e19363b428c57a9962a",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.9": "05b0d3087e913ebe11756365a90dd47c05d6728752fdbe129ad4c3ccd769826d",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.9": "6220fa3eb5f8212cae4ec3a5053060914aaa829549cf706dde9f9cc344f75f61",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.9": "0076eac165c2f7129627e2297478e7ffbb9465d9ae6a8961b2f53dcbd807473d",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.9": "f702e821b80e371e14987a886d58ee103c5948b7b096fa49a552624c24d7e073",
|
||||||
|
"i686-pc-windows-msvc-0.10.9": "034bf6b91390b9adc5f41a5946fdb618ebc8cef1574f3d95af9c12fe2bf9aaf3",
|
||||||
|
"i686-unknown-linux-gnu-0.10.9": "90d9168a4e7900463f9fd79a32eb1890081fb1e238d803404f6e17b2dcdcca7b",
|
||||||
|
"i686-unknown-linux-musl-0.10.9": "1d42b0d0a037b3d658b11ec889154686db3ab269ba2b789bdbc45d36e3549f34",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.9": "e804f4a7d0659e09ef806365f04bdd33c940603fab903e925402748d05dd109a",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.9": "1541596da45855e34202130027a613a2ace7d441e04d747cb4dd9f2590461c9a",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.9": "a589d4a8930c82fa7225daec19c632651b3c84f50f770efe758056b387e5f0dd",
|
||||||
|
"x86_64-apple-darwin-0.10.9": "9cc2de7d195fa157f98b306a8a1cb151ded93f488939b93363cebc8b9d598c28",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.9": "f58dc40896000229db7c52b8bdd931394040ef2ad59abd1eda841f6d70b13d7a",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.9": "20d79708222611fa540b5c9ed84f352bcd3937740e51aacc0f8b15b271c57594",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.9": "433e56874739e92c7cfd661ba9e5f287b376ca612c08c8194a41a98a13158aea",
|
||||||
|
"aarch64-apple-darwin-0.10.8": "c3a6fff5b6b4abddff863117878194e35dbc6b0267d61ad259ab9896f9b8dcbb",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.8": "20db25dc446f9a75d1cfde0a5f4b021e1b2eb266e600a610d32c7ca5d7ff83bf",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.8": "661860e954f87dcd823251191866af3486484d1a9df60eed56f4586ed7559e3d",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.8": "2ef0d0489e9e2a32f134ca80097fa36be4b486c4ab004706a1d6d0d57980ff07",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.8": "f6dfca333c566024f6feaef19adf7ce06675a1bc2fcadc2de640dd805112a518",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.8": "1bee8f88a7129f7922c43b0e091a7065d4e13a2934e599aa8a48f162cf9739aa",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.8": "ad0ca78991518fde1c4c42f8590e86f29db1f746cedb637f9dac1bb7de2e28da",
|
||||||
|
"i686-pc-windows-msvc-0.10.8": "db40952a0c16eb647cb3a06c8cc13712b72e5b6a2501bc080c7e00c0f0e4ad88",
|
||||||
|
"i686-unknown-linux-gnu-0.10.8": "3a78c54ffedce8eafd59a19a32eaec538924169fa4bf9d28d2d5841a7f604210",
|
||||||
|
"i686-unknown-linux-musl-0.10.8": "25cf70c12abded06c4c18db8fdba253776bc115ce28f849af6f6ef771e67d730",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.8": "3a4a158e645d04825872eb59ca60dd5026529e4f9fe5dd88987a45478301724d",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.8": "2349e786d2de14fbd72386f42ed9f398cad52f47f6cdd78e05f338a1faf1321c",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.8": "21de0f86838b06e6ebcc3cb6a079d49d3d3886e5b49822ae58e5758eb08a6710",
|
||||||
|
"x86_64-apple-darwin-0.10.8": "e0a1b22b039f8155765f5bc8c13df03a5f994a901901179791572e8e5f053281",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.8": "2e70ecd22196cbd9d14eefb700814bcafc5b75a0d8275b52e8402e5fe256d928",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.8": "f0c566b55683395a62fefb9261a060fa09824914b5682c3b9629fa154762ae2f",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.8": "a4e6ad1aecac61077de548d2cc9ccf2c2f1848863312b3b59fb0d2eb8d8a043c",
|
||||||
|
"aarch64-apple-darwin-0.10.7": "1eb4dcc5e0fc8669fa0b33cf1151b64ba3b8c26b60dceff4f7a686129e2af22b",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.7": "45ba7b72a7435343d650c73d21d65d2e8bdda47f6bd39af00e37f3cb70aa79ef",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.7": "20efc27d946860093650bcf26096a016b10fdaf03b13c33b75fbde02962beea9",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.7": "115291f9943531a3b63db3a2eabda8b74b8da4831551679382cb309c9debd9f7",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.7": "3ea331cd68f28235e13639d5400341a3893d0455f2473a74a9926b7d62cb739c",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.7": "2e2f88cc5a7b49282c9aa05cfe03e3b8b0a044e90981062fbeb60a7aeba188ca",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.7": "27319e842d802c5c73be52f3774999d79d0f28f37984090998560fd925133375",
|
||||||
|
"i686-pc-windows-msvc-0.10.7": "a7960473a473ee5907a55fccb8c645e24c1da7d39076aaef652b819e3a26a28b",
|
||||||
|
"i686-unknown-linux-gnu-0.10.7": "1a22aa0d2268a9a6fb2e5f092ca3d1ef7c14f96c3b4fd546226814f376e59d73",
|
||||||
|
"i686-unknown-linux-musl-0.10.7": "75c2cc60675fb6f846b394c3f7b51f77c08f0981abf5cfcb5e27cfbb2f5837e0",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.7": "7398686962b966959c32e7fbfd2868fbac38491ff0d86033d7c8bbb826a04026",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.7": "39abc60403fdcf5c681b63c967059d42aea58a81ffb092d6dda767390222a4b0",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.7": "281ae4c1343e0c5f9775358690d40e00edbf63ca788b4d8b6574a0b5cba624f4",
|
||||||
|
"x86_64-apple-darwin-0.10.7": "4fed9d4f4608fb3850db714ee37244436f850a2b6e485bc510795679c2d08866",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.7": "8881afb877996a1373a12e816395122a8d39a3ac06cd066272acdb49510cf0fe",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.7": "9ac6cee4e379a5abfca06e78a777b26b7ba1f81cb7935b97054d80d85ac00774",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.7": "992529add6024e67135b1c80617abd2eca7be2cf0b99b3911f923de815bd8dc1",
|
||||||
|
"aarch64-apple-darwin-0.10.6": "3993249d8f51deaf34cfce037e57e294e82267ff1f9dc45b7983a17afaf065b4",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.6": "e431c9a4f8d66e872f6640500cbbf1af20418720b78ac01404399ac810ef2e46",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.6": "9380705294a85e3e634570abddd5b2577900c1873c29b790c7abc56a81dce4bc",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.6": "7de7aa836fd54ff930fa5e63bc04da35e2fbd72889d6258e153479c44d08b863",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.6": "9d0b55a3b0aff97884f49e15739a9936eb33a1b59a5bf1b3c7ce4d9e517d4d76",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.6": "165400192202ee2487bcee4429a5e5a2fddfe8fef8985fb548e2a89fda6b2376",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.6": "1cf58447f2003122f83b1a34aee94429cb2686010c3502bfa21c8116e09d5bdf",
|
||||||
|
"i686-pc-windows-msvc-0.10.6": "ec189db03b89262e6089e4fb895af6116b964234cf4166b330e258aaf7f999b4",
|
||||||
|
"i686-unknown-linux-gnu-0.10.6": "f72a88d489fc424aca69c1cbf175bb5aeae649aa8c55b092628e5e553b481dd5",
|
||||||
|
"i686-unknown-linux-musl-0.10.6": "94471f51aedbfaceb495949d5ce37d44352b2dfea45b61399870c39a881681fc",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.6": "72d504553fc7150177bbf57b585c850cb4d695ddd848b9ba1416ac122eb88293",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.6": "8f8a966d1f911f39334581a933805a30cdec5a7c1d4f580e03973ff45bf9b6ad",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.6": "5ed60237762862b05561d02b7f095268897d0561e87dca5986b04319265bc2cf",
|
||||||
|
"x86_64-apple-darwin-0.10.6": "d7647571fb17a5107d4d23cc190418039c157fd7361ddb59bc6f8127a49e3eac",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.6": "b27eb789f281e398a82197477de727fc8faf08605152115686da2c3cba0d25f7",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.6": "aaa402e19d14a6b9a4267fcf4ec35380f804c68923525cea67cd6ee05bb4e930",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.6": "01d6ce770da88ce6445acb0a8764c8b1634c9f69c728dca68b19fc7a893f72b9",
|
||||||
|
"aarch64-apple-darwin-0.10.5": "796c2d264c6aba3e1179249438a9fa2fe64140748f0e5b6681e38218ab6238f1",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.5": "7f88f279e271cd76a6e07fe1ad711cbdf15374206ab79f55adadb818ebbd8e43",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.5": "dfa82b047456c646c50ba769af81a6b7ba20aaf5feee96e61554861db8db5809",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.5": "cf01a960442b9aff4cadc4d27c691086151e9289b5b9fbd0dc41ecfcff1db872",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.5": "abe18becc57fe3c3bf55e62b4b7be0231cb4dbb941fdb3f4f9132703b1f4868c",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.5": "46d79f64e88cb339160cf90f6df51ea14795960840fb4fca8aa61af8cddd8187",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.5": "13444ea0cc650551c4c455af73ac27a77185064275475b2999c627158b7455f4",
|
||||||
|
"i686-pc-windows-msvc-0.10.5": "67d96bae5ef30b9f1e201622505591601b936996ceea84c36fce5e577db5a442",
|
||||||
|
"i686-unknown-linux-gnu-0.10.5": "56eb897036b8607bb7516349388bef6c83004ae05e694ec34e1bae69f3a0f237",
|
||||||
|
"i686-unknown-linux-musl-0.10.5": "b0be10f5c16a987294a806dfd3927348456fca8b465377c99e0d167792b842dc",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.5": "c7f4049b7e26a43107351808f7748c3bc0dfdf118c29f4b1470b69be15fef45b",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.5": "756c43f4844953a2241c4254d268335b3bd35ca81856e8e06c7d4826466e87ce",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.5": "fbccde48aec139fc99558bd022ec3cab15f607b9b5e0efc0279c6145ab5ecaf7",
|
||||||
|
"x86_64-apple-darwin-0.10.5": "84c4ce2902e2e840a54a75360b00f06ceffc6c26894bc5e73151a2c55d5fd043",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.5": "d5b3b04127eb6fb41ffca60c0da655124133b62b4b58e29cfc5435469a176e06",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.5": "bcb127225873baa5ebd23cf09f29996cc97c1091830c9933e2e320bf1429a584",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.5": "88aeea39c77b6b796ca6b19c0216a577b18095dc450972dac7872a307bb1e160",
|
||||||
|
"aarch64-apple-darwin-0.10.4": "a6852e4dc565c8fedcf5adcdf09fca7caf5347739bed512bd95b15dada36db51",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.4": "77f859cfc26181bdfb94087ce42336d9e2d9e0700bc42f6668445cde517198ce",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.4": "c84a6e6405715caa6e2f5ef8e5f29a5d0bc558a954e9f1b5c082b9d4708c222e",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.4": "82fc461031dafb130af761e7dbec1bcc51b826c2e664f5bf8bc4e4f8330320cd",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.4": "2050d9037a63975dafed987bdc7d2960a3b82345951c14193060fce20f9d31d8",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.4": "d1824ed14f3ad0e7cb7835b46bc0299859cd8141d039a66274a135ca9797bf9c",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.4": "3038fdf153a722941424c28ae76996d60589f7f626c2000eb6567b3c301100dd",
|
||||||
|
"i686-pc-windows-msvc-0.10.4": "b42379a65e9cec5863a22cf81810aec57281b08d426e70cc3b90320b996d84a7",
|
||||||
|
"i686-unknown-linux-gnu-0.10.4": "79821b1d6c035aa8dc32a45d41551a4f010b8e357c98df48c95c5cb5ec18a743",
|
||||||
|
"i686-unknown-linux-musl-0.10.4": "459315d7dba39b0297f44104fad1c93fa5cf866f91b533bba02d58f1e54129ad",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.4": "7b315d9580ef574a1d0ff2023c16e5ac8a164feb1e998f33ed144dfd4c4fc125",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.4": "101a71c072986929c410d4839babf66851563fd855b36c1dd7ffbbf5fbedce36",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.4": "59a50f14892c82de8f3e7a1a63ebc0ef98778085e4bb35ec99323f5009232fe2",
|
||||||
|
"x86_64-apple-darwin-0.10.4": "df6dd1c3ebeab4369a098c516c15c233c62bf789a40a4864b30dad1d38d7604e",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.4": "0f0e22d7507633bfb38d9b42fb6a0341f1f74b8e80b070a31231c354812432a3",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.4": "6b52a47358deea1c5e173278bf46b2b489747a59ae31f2a4362ed5c6c1c269f7",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.4": "18adf097cea30a165ba086c1e72659fec3c5aca056a560e7c39e0164ac871196",
|
||||||
|
"aarch64-apple-darwin-0.10.3": "ed2a08079527dafae4943fee80162ed750286657901e642eba4c9de928706df8",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.3": "48243b8acbb31d0081e00878ee3b28535ed9f28ab8b27960b88aed8e1d6dd16a",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.3": "cce7d1e4c34e22955cd647b256409b6504f4ae72acf190a6f26189efefbc9a9d",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.3": "a98f8decf21204d40acb512b0e08a803ed718c640a97f3c095864967463d5b15",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.3": "e4b3c6dc59cd65125eda09e6c24b97fca71647df979f8963662807dc6a53e165",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.3": "1d453ef56127d3aab3ea7f383b27765840e0bdc0b683347191e4cbc26272de2e",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.3": "d2484df75c9ba4c7e9750da00c4c4276b65c088d8b551b63717d5d9aa227ffa5",
|
||||||
|
"i686-pc-windows-msvc-0.10.3": "51f745bcab5f77fe75e6f221e3e55a4bddf54824e634ac6f229132880506ce7e",
|
||||||
|
"i686-unknown-linux-gnu-0.10.3": "e82e76ced718091d946eed30880728cf39f05b85f4f82c483a7dbf95f1663531",
|
||||||
|
"i686-unknown-linux-musl-0.10.3": "0baca51f61729c6911d1d055c2e6dee5d11d88f6abbcd1ff801460f46880dc8d",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.3": "cf4969ba97af3a53d1e4dc8a28441b79e78a8d9a9d41854e88b425f6b6fc6179",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.3": "79b6b362e48c80e5b7d251fb96546d8ee52dd3458e01518cef969f757b59502b",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.3": "fc969d6011e4ffd0752abb5d812fc453649a7394c3f08a11556c9960891e359c",
|
||||||
|
"x86_64-apple-darwin-0.10.3": "e8071cedb9986724ca3d70020b4460a85a274394b378c0e8eb1e8f9e33402ff9",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.3": "d029201a3eebaa8a0001fa762ee44ca14a9cb3cae4d59fc3fd69857da03a6f8c",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.3": "c60b9956a0e6727f0ddd881c303a706c6408b2047f3a8fa4d1454a826338ccdc",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.3": "126496b606129eda426dac502af0d910d895f3db81da28efc49b18edf5557741",
|
||||||
|
"aarch64-apple-darwin-0.10.2": "3828b2de196687f60e9d199aea8b504299629300831eea0935ff3fe339903d0a",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.2": "826e4ee3a03ec245e54c449e272fdf8aab749e039cc49c950ad43cc13702221f",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.2": "4998f545234d52fc6f1280827d392f00a9278295050d59c53a776546dbf0124d",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.2": "685e47f8f88b6845a9fc2ca27c3d246c0f53af8c017daf8e98ac0a97fe20365b",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.2": "1c51ebc67e8e492fa549167a96e40bb21a2c2ccde8a8b440f9c8bc0e07f3d4a8",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.2": "45243fed8f587f11002f175216894c9c75e2f402324627b7e0855e670557ec14",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.2": "45b3d7eee7a3af2e4309b0bbe4886c6640b773f6500f0e0b662d84f4a5466f67",
|
||||||
|
"i686-pc-windows-msvc-0.10.2": "a828ee0a2f42d1384f79acd3edaf01956000e1ec5d18d9992d79e17d70d9aa6c",
|
||||||
|
"i686-unknown-linux-gnu-0.10.2": "7f64628a8a0869185eed24de4a02f4c8d19c99dec7363f383050ccb7474a76e9",
|
||||||
|
"i686-unknown-linux-musl-0.10.2": "8d1978ecfa37d2d71cbb0e2e75262e65c184d040130fe2dc331f25e044ed97b4",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.2": "9b7f8e3ced416276a9e6321369f69234552d9cbf39d68d96a67e85cee4cd611f",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.2": "1ad005a361293175170f3c193b50d5a5c7f1da631649236cd857721ce8c9cbde",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.2": "d4832c85f3e8e17f7ae4ced90059dc2b6927939a47fea3e92e5712e7148b9c09",
|
||||||
|
"x86_64-apple-darwin-0.10.2": "3cdbd038333cfe861ce04f3d91678547bf2e726224acf5f42d3f0affa6740e19",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.2": "493ebbe0e06128d6ee4905e1ed5e2a433fb0f7cfc08b0eaca9fab4ca76778ae1",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.2": "6aa4576c31f791c0b9d4739e256d07358d45e7535695287fec03cf6839e25512",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.2": "c162182ba7dd692794362d76dd183990d6e51553217954106da19bdb6ced211b",
|
||||||
|
"aarch64-apple-darwin-0.10.1": "37c101cd8a745a43d69bc3832c41866ab721467a1d58881f57b73b705abc2851",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.1": "9644d0e37c41c19aa65137a928bf6fad78dc887f820202c0cfcf010cceb416a0",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.1": "3731e98805ea6789188edec0dd97e673da195bf976a72db38f325f7c51cf5cdd",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.1": "ae9ae536be5b4d1cf7a6560d52a20711f267e7b21e23ee6cc538a4afa236b757",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.1": "af7994b58553156fb4acdac40b3f7b1b43260a76de96ca7123bdf861351675d4",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.1": "4f8857a779df69e2aa9df8ff35b6c34ef3ce45c13d2d4a0ae3957b0e68d322cc",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.1": "79d978b0e829cab83de4c78e80bd014f3210cf0a1a653d880d0aa6760baeaf80",
|
||||||
|
"i686-pc-windows-msvc-0.10.1": "c4e989d479f9fc229302345a64f272be3c249d5fff4a2e722aa3d73c381fb303",
|
||||||
|
"i686-unknown-linux-gnu-0.10.1": "0c4a17893df6e11991483277c5f0bee06d8ea60b6e11b349a9849bfe13a8c5cf",
|
||||||
|
"i686-unknown-linux-musl-0.10.1": "7219a96adde5316489886c0d74749b7248c2c4070170b8e153d9d3f8f9fdfa5e",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.1": "aa2ed9587a9ad5127662da9ceccaa747b941f37cbd9e6d9334c7c6c3286c9587",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.1": "bda96a9ff8be79f780ff4711a2515061fe80d6f135ba55a47c41e1c6739d048e",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.1": "091eeeecfcdb15a954f2488be6b89d8709709003ada81d215d6ca88145826049",
|
||||||
|
"x86_64-apple-darwin-0.10.1": "f61f1122193698a53fc2d4cc6fb5a5849b283817509778ac8f1a7d2a36a218de",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.1": "64c297ef1cd8e3a50966dee20cbe039564cd59e41186e0d1dd38fa4e627fc285",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.1": "8b5af2d678da1bdae80a5107c934f6ab010c6cdeb2de5b8e07568031d9486051",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.1": "d1a3b08dd9abf9e500541cadd0e2f4b144c99b9265fb00e500c2b5c82a3b4ee8",
|
||||||
|
"aarch64-apple-darwin-0.10.0": "82d4b99dc6ea686695b5ee142ceba03dd3e3eda2b414e94215ab7bce94972fbb",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.0": "614dd3c409d7fb5a98b516d532c98db9b7799a23fb450150e3784338a9ebd903",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.0": "c300afd5f2d31df039fe6a26a2d68a76b62832098c272a43e1e74ab9efd4fbd7",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.0": "edf1adb1d183730302f87eef9b71bc4e47b4b8058832c3393b0fbcd86f270510",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.0": "fea6d45bce1e7172192b4a7d3feb9f37c4198c243be1c573c8dacae765a32c53",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.0": "3e8ab76a515884c29c773e01360acb6da61a1351c630377b54ba58918d9673af",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.0": "85423cda078ed0313f993ddea6ac897e469885539ce156643ace982bbffb8109",
|
||||||
|
"i686-pc-windows-msvc-0.10.0": "b71bca0987dd12ea09ac6a0e52fdfa89f53601b6074be38366d0592b181f3001",
|
||||||
|
"i686-unknown-linux-gnu-0.10.0": "dbac897653b0d60fb863288587dbacb30140f9725a42718f2c017df7b2d2b3c3",
|
||||||
|
"i686-unknown-linux-musl-0.10.0": "56a211155275dd33731cbbb33aa915d3e7efa59d4436502edaca39ba436c157a",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.0": "677a414608c61e2ecd751364dae9209cc5b76019481968b99b5d5ad7258d2d77",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.0": "9da4019ecfd3440a5d0a0a957d8d5e4c6534ac1e3a10636d55266a22ab4135f8",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.0": "a1b9aa45c1a6b69066179e8d7e3f6e122e0f433ef2ad4e91c0acd1433a083c31",
|
||||||
|
"x86_64-apple-darwin-0.10.0": "664aed584c276f8d79cdc3b7685cd48f5d64657bd6840b06b4b2b0db731b9c99",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.0": "4037b444541f695cd2eb93188a9346de3e334af562381411deade0a31c7bf898",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.0": "230e328948c92dd1ebad83949c4d56e83813dfe9c6362a4c519e6a227973f1ae",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.0": "312d37f31b6f2c3bfc65668ba0efea9f1f9eaf7bc3209fe1a109e5cf861b95fa",
|
||||||
|
"aarch64-apple-darwin-0.9.30": "03a5d9ec7f7d588446b2ec226d13ff6300055e55365eca8f3fab39f342b0e805",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.30": "cfbc40baf1da11c55eff92ee008f5af3cdbb4c24c40ddb0bbd489b983fadf43f",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.30": "6aadf3c71600d594e16dabf382cc15282ead4c5ca768599b6bcb43c5004d9aa8",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.30": "b658b56957bceea742ca14f3ef28fb3542adbcedfb8bd5bd718ae255394ccd09",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.30": "5a7f4cd306363b734dba2d86eb760812cb1211254d36ace01860f9e783df1900",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.30": "bf8d9c2f1b4d0eee9bfb689b5483b1bd4b0b76acbeaaa4d0d68b132574c606ff",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.30": "8715a9da643d9e6cb984c2d3e00480849f93f11251d1474cd382cc9d7faeab84",
|
||||||
|
"i686-pc-windows-msvc-0.9.30": "218b7ec0d052836d7ee395d5e0592e5dac7578fd618f439a5d09c1ad36466399",
|
||||||
|
"i686-unknown-linux-gnu-0.9.30": "1bab147179887ebcb5c31e016e9ac9987f687e79f92fd2f0ff9bcedf927b8228",
|
||||||
|
"i686-unknown-linux-musl-0.9.30": "14d8b2e2caa0b470418e551e027f3a8283aa8d09eae79206e7dbcd23a8ffa027",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.30": "ac4cd1a021462885932f6023b005a4835cca4c72bb60dec186ee2be4b60dca6f",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.30": "73b8cbc560c6b2fa205358365d4e174abdf50cfcf57dc36a447572c56eba5ae4",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.30": "5e0453d9252aab874a3658a039d4ffdde79dba4096974fcdc945498697dc81cf",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.30": "b35975bb9e5c2c418b428d0316cc6e3c7a6eff710c69212be14005c192f54516",
|
||||||
|
"x86_64-apple-darwin-0.9.30": "ce069bf750567e9a4a31d6e285d1eae75d444d8a281409b641235903943b7681",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.30": "875981be7908295937dee09532bb66d576986d4f223259e171b0c767c885897a",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.30": "8b3762374972daa7a74bbc6896cc73229ca69a07403dd9f9ea3805a51ffd7582",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.30": "1caf8fe092e2005dd4c134ba515c1aa3eea3d3c143f8a1903bcb58fcdf169365",
|
||||||
|
"aarch64-apple-darwin-0.9.29": "0729ddd5c02df33669b03627aa5d9ac7cde4421657f808d54585e3cda944bb55",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.29": "39f7dce0d2993cd18d67980c012945ea678a99aef199f7afcea522b5bd70ecf7",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.29": "935b35542b7e25493a551dcb3487af23b72ad284ee8ac6a488a97d02ce2d84ec",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.29": "b1edc94f5d6c36bb28a20f8c8afb400e55a428fcf396b03bf78cb7394f75077c",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.29": "c72ae74c04668d4cf3143fb11ad5bbd1c9e9a80aaa439cb3e43208c127249202",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.29": "e263645c9ab44e3f7e732b0317da775082f077bb86933be662395eeab97fb3d2",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.29": "98ab47dcb345d746b230a359d72a96444b1be21cf24026c653d5c7848c680beb",
|
||||||
|
"i686-pc-windows-msvc-0.9.29": "049a929882a3f4a2d054c9dc44848d2c24175079696e131a57d60d9ab62df81a",
|
||||||
|
"i686-unknown-linux-gnu-0.9.29": "9415828fc2fdacadb56263382a27da6661a89a4bb3a6683d6d864d5c013b7c6a",
|
||||||
|
"i686-unknown-linux-musl-0.9.29": "3ac91c9cccc85c07c0950afc4f45b3e14f2a3e9484f4940366ebab72e71fa8dc",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.29": "7feb1fb35fe66b4f83d3bc7776810f708c6609c9be48ceed6ec024b15733101d",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.29": "1f4e1f859868abcf3557afe78b8b7525a938921af745945deef737927a017d82",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.29": "18dc2d3b513c4bfe0fc4b3a67a80f62ce32077f84db343a1f0eb8003ab276732",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.29": "10e6d5dcd72bf99daee6678f6b508d1056e9f1670f6d76c1cfdf02b7560bcb4a",
|
||||||
|
"x86_64-apple-darwin-0.9.29": "d251e48db2a962272a2efeb2771c82c02e40f473193a255e8e5c05eb61112139",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.29": "9825b1a5955d8a432b664e56660641aac8886ed30cd9c59a94aacc68ae9116ce",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.29": "1ce5212f8f42dc7427a1bd3db4168d6d1abcf81b38d8c82a5b9d0ddc54ceebfc",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.29": "44c93c73e8870e003bda17ab50d433e27d201d0cb28d2bb75351ef1497ffa9db",
|
||||||
|
"aarch64-apple-darwin-0.9.28": "12163fe09eb292d3ad1ea0f132a84485c902e2ff360d57562bf676e6615fcba0",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.28": "081703fa19ae05a49f486f97468f7792e1cdacda403a091b151af7f5bd6f4595",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.28": "382c342735ff29f8ba4574d88e39bca798bcbac50bff6742710ca9cd8143e7d2",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.28": "eec3249254efac972d2555ff858f8ed20f05b40fbb38ac83b15cf0a2ccc86749",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.28": "d0df2a9e7db464a567038bd560dc5007e488542c073989334a4a293b8957e1e1",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.28": "6ddf1979609a3f5bdf897965ed6984dacce860ce57c579596bdc4b514c19320b",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.28": "e391ba4cc05a3a1096f1ab6cd82fcbed059d048a6ba108b4cb18da311a07c4d5",
|
||||||
|
"i686-pc-windows-msvc-0.9.28": "fb5015efd0db178268312a7a7dcde7b0d3b7d7e0eccd0372a4b6f1dcfc075472",
|
||||||
|
"i686-unknown-linux-gnu-0.9.28": "c0d34d92cb11925530fbc313de7536da3e1d097a442f54668417d241697fb3a2",
|
||||||
|
"i686-unknown-linux-musl-0.9.28": "be1ad4f30d97c95af5105405fc38329d66375cde3de18cd0f9fe73b4581155c7",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.28": "6f23bfca0febb001792e7124d0c2ba41ddcfe01d6c030f4a8668ed634a5a582b",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.28": "894ac114f076cffbf041e55e1ad0df759f7bc9dba1291158690781baad38001e",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.28": "e61fa014a0b77acd17f9f366a55cbc0e67b377c4eff13629021a4242cc71eabb",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.28": "af15dc54893b2caecc3604ac68104914b155a8bbf821f667996549e777919a90",
|
||||||
|
"x86_64-apple-darwin-0.9.28": "3a8030881d13b824e5168f5e4d060e715e40753249766bda3d52d6771d93b169",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.28": "9cb567fcd92f31431220ce620787043b946c30b9bb46ca213780e5ef471453be",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.28": "66ad1822dd9cf96694b95c24f25bc05cff417a65351464da01682a91796d1f2b",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.28": "83cd032167b6b97ac94830608efe11159b3d485654e39fdb0bf84718ef236afe",
|
||||||
|
"aarch64-apple-darwin-0.9.27": "1359538ed8664d172692cf4719ee0933a4a3bfb22fc91b0be1e19e7bdd8f5ef3",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.27": "b448ab228f5d1165b8497e8ca10346af6f652eb8ad4e75e47fa55e8cdb5b60d7",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.27": "a58b3b77a25620ae15ff3587049b755c7cbf3eaa7df187620b3e6c3dbf71daa0",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.27": "f80e97e1154a06e42143a173831289336ca9e34a67096ab070346958153e8e52",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.27": "b80f4db9254b9ddec4b576190bdf15723e948f37f648d9b273be2e153d05f820",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.27": "03b45c99ca940739c2a093f6a514da3dd858b3bc1e8c957c16c1832e30b30c28",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.27": "da43ee6e2f17b4646e35e2d55ce6a021fdf47c06601a6ae8b827de7bb7b3b02f",
|
||||||
|
"i686-pc-windows-msvc-0.9.27": "f47831a97b8a1bc7c7211905c1e517cc2f4ef84df877f2a283c49609275db0fa",
|
||||||
|
"i686-unknown-linux-gnu-0.9.27": "fdf3067e0c05d39b849ad48fbbc2b58919f70a686a40506c643d32688ceba1a9",
|
||||||
|
"i686-unknown-linux-musl-0.9.27": "3c1f8c2b148ebf884311558aaff32b9fb5b68fe4f4242e3e3765381bb594386a",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.27": "c3cbda5118b06f2261d32f4802adfdc71f618f808df0c6a3184695a6ffecb88a",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.27": "9011f6085cee3921c9fce82ce03041ca97aacc8cab86b7a5791faa71fa5f2712",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.27": "7193628620c2c50c2d6632ea8e53a4ab5313f7e8003ddedd9e999f48b6d2c222",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.27": "5b055f02f2c8e5086ae1d05cf70d32d66982d27d8469ed896a65067fac2001d2",
|
||||||
|
"x86_64-apple-darwin-0.9.27": "3977309c5c79984c13c55d2d1cd7aa114a718eb29436c5bdb4bdfa08bf243438",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.27": "c3bf465d5f2b93c836f369aec9f3fa8350843f24abd5f710bb74e72440b82898",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.27": "8636e693ea0e05f5f4294b161f816c4d8df065267fdb0405cfb84c8e326991fa",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.27": "9f269bfb9c2e80808c373902af6a4af6cd5f4b4668b28c44aa09639cfed925c5",
|
||||||
|
"aarch64-apple-darwin-0.9.26": "fcf0a9ea6599c6ae28a4c854ac6da76f2c889354d7c36ce136ef071f7ab9721f",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.26": "79e1398ec98681b1b0494ed3485b0f4565e98a7db109a3f205d0fcdc6a1992f7",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.26": "f71040c59798f79c44c08a7a1c1af7de95a8d334ea924b47b67ad6b9632be270",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.26": "ba8698c36c00c22efed4bd3506339b03c95604d001f02eaf6fbc814c9224d801",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.26": "8baa850e6f7a4f8edeef411891780161e95682bf291c85405fdc331925c425c2",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.26": "f9cf9806b3bd434b4aca5de1a8412502a29bcbc908848cdea18e32480964ab79",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.26": "881df52998da192f0609be37abe445ab0d89f28daceecb171ea8a14088153aee",
|
||||||
|
"i686-pc-windows-msvc-0.9.26": "2fa5e36d7dc3053962a95a2583b2bcc19aab2ec6c5d4c887cca58de819cf77dd",
|
||||||
|
"i686-unknown-linux-gnu-0.9.26": "03548a2abd1d604724c9d65184b506d3eafef1b0a7d8cea974a083f5f9c9496f",
|
||||||
|
"i686-unknown-linux-musl-0.9.26": "5208601b9baee1a04a604f441bd94a1ab91b511f142b27729b073f4286994f8f",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.26": "6ac6baa2dd7db742ff58a2d54e3fc09693e69c878666bcacf9d49bc58decc98a",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.26": "1a7fbd268b7520e03747022f879113545a5bd71cad02e9cbabd591b268b5a36c",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.26": "9f202ad04cc398dc77a6efe20ea91ec044ad66e1f7a60777e6efd20a357f479a",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.26": "f8e6b8f1264821add1ea21d592b4522300401f44ac4124fba9fea6874fd79797",
|
||||||
|
"x86_64-apple-darwin-0.9.26": "171eb8c518313e157c5b4cec7b4f743bc6bab1bd23e09b646679a02d096a047f",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.26": "eb02fd95d8e0eed462b4a67ecdd320d865b38c560bffcda9a0b87ec944bdf036",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.26": "30ccbf0a66dc8727a02b0e245c583ee970bdafecf3a443c1686e1b30ec4939e8",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.26": "708b752876aeeb753257e1d55470569789e465684c1d3bc1760db26360b6c28b",
|
||||||
|
"aarch64-apple-darwin-0.9.25": "606b3c6949d971709f2526fa0d9f0fd23ccf60e09f117999b406b424af18a6a6",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.25": "6a4c2a753a94d9639725b435f5d1a65bfa25cd196d448ad60841f5fe81ef0052",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.25": "a8f1d71a42c4470251a880348b2d28d530018693324175084fa1749d267c98c6",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.25": "11cddffc61826e3b7af02db37bc3ed8e9e6747dad328d45c8b02f89408afbf75",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.25": "52f3a96605a7873ec44bb84c33ee08e717df61136fec121f715871cae5b779ec",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.25": "7ae274742a5b2398bd75f9075536c7f0b3f99ebc8c6588c37e3bfcd9cc9d781d",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.25": "77220a539dfffe576cdc9b9e9ab5432c07dd1b63915c859c227883af7ba00538",
|
||||||
|
"i686-pc-windows-msvc-0.9.25": "55dbf32074a76e029410620e7e3fbef9762799c7dfcf539b098ccc0a64cac9a3",
|
||||||
|
"i686-unknown-linux-gnu-0.9.25": "b9dae29f4e37bc89e69836e59169a51d8cac4da118b7548a20b2269b19c94cad",
|
||||||
|
"i686-unknown-linux-musl-0.9.25": "a84a159856a0227c273e86594d9cf8fbf84c56bd4eeeb9a665c946304c49dbec",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.25": "37bc519ebe5e4efb12fd155eb94512547a874f0e41251203b49d715f75eb5a20",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.25": "a01a273b5cd64ece96d4589afbacaf5e99a0695f37ebe9a72fd6b2f7cf0a7071",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.25": "9d9692f1bd5ff6d9db2c4bffc4ceeb8d8746ae03ddeca0b24a0f8fc9ea81b911",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.25": "92d5e4504ef83f421a841381678f871bf2a8821a69d3374dd638e2014d4762ab",
|
||||||
|
"x86_64-apple-darwin-0.9.25": "4982dfff14b3548bc85d0fa0abec6ab8ae62836b218bf1223741ba1392ef93bf",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.25": "d63f8e59cf76bcce9cb8a3eac6c1a89adce0f89a29bacca978c9bf842f419277",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.25": "fa1f4abfe101d43e820342210c3c6854028703770f81e95b119ed1e65ec81b35",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.25": "700776c376ce36ed5b731fcd699e141d897551f5111907987b63897e0c1ad797",
|
||||||
|
"aarch64-apple-darwin-0.9.24": "89661d9a16682197086df54bb43d0b03e58e23d4d9360fc8c6c0166f2828fd71",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.24": "40ceb66af2667fc9b4d30a65ad8b8795d4effc39a44019b4218ad03f8f1d5a14",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.24": "9b291a1a4f2fefc430e4fc49c00cb93eb448d41c5c79edf45211ceffedde3334",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.24": "b16359904ede857b90b68168f10b0f6bf500858df9bed4e7156dbc59fd3f0747",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.24": "b343d7f49ea5c0982c9696cbc5c7f96d7053cf8f9c7383a58d6c0c44fbeb6422",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.24": "8d05b55fe2108ecab3995c2b656679a72c543fd9dc72eeb3a525106a709cfdcb",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.24": "788d2bee1dfdb57a462f2a5c4e3d6e8c68ee9f9f1a938bdcdc00fa9e5edeaeec",
|
||||||
|
"i686-pc-windows-msvc-0.9.24": "b49265a713cb3f874bcb373572095993d3098ab77cd2665483f53b24b788e5e9",
|
||||||
|
"i686-unknown-linux-gnu-0.9.24": "940b8985c4d464c7cc69e40b17bf09d840b980028e1d82a3fb8dd007a737f29e",
|
||||||
|
"i686-unknown-linux-musl-0.9.24": "4ffe6f377b7d68904d8d882af8adc85f2fa1bbccd26151785ff961adb67f2a99",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.24": "1fbaff65544a2c36bbd8992e2abe6c50179401745dc00b5e12bded89794056a4",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.24": "57ea84430ccf49f97184d9ee21102b250214fc6e6af4a87eefaaf8bb7c9c2b9a",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.24": "81a884380f0ee954afd968140aaa55df19f2bee30d74f3c0c94a11d2265bb388",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.24": "3da41f22f78f27a7764e303b07c68f5716f748128327c7d3d72f11c6b81b6c78",
|
||||||
|
"x86_64-apple-darwin-0.9.24": "fda9b3203cce6ec3a37177440c33c4c1963c4957fff17e2820c60ab6ccd625da",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.24": "cf9d6fa12017199d19c6f9a8f7f55811c8c04d70681b8cb6d89ffb179f08cf1f",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.24": "fb13ad85106da6b21dd16613afca910994446fe94a78ee0b5bed9c75cd066078",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.24": "cf307aa4271038daa334ca64e75aa40c0c085ce6fa0c0e6f21e41a2b62c7904d",
|
||||||
|
"aarch64-apple-darwin-0.9.23": "3aae069424778d13ef45ebd2ec906c66ab10e459e7b33341a64cd371a3d70998",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.23": "dfdb23dbfa6c89847e4163f0b3b683de889df7d9bdf95a3909dfbc6430106304",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.23": "d60b0b2aee79f9d83897615fed427bee1ea4ebcb2f15b48dd522319ecdb3de91",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.23": "ee987d943427ee24c1d3af79c7ad676950c9ad634e60a4d07e328d8a54fff92f",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.23": "1950c235e76e007f75d30903dc5da6747a344c72a1608123feff720c134ecbfe",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.23": "a7104ab491a0c2f0c58760bcb9a13cfb64c899e02a7b747c4d11da114b3f9114",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.23": "c5d494337a5ca86ad83d6a887634fda3f8392560799e4236a44d76f8e27621b6",
|
||||||
|
"i686-pc-windows-msvc-0.9.23": "94292f02b7484616bb3cd7361411540a5a52e952d149eb6faeec610b6657015d",
|
||||||
|
"i686-unknown-linux-gnu-0.9.23": "627627174d31e6fa270e91c7b2988558e4b18b86cc31de9222b6cf3b7354e9b7",
|
||||||
|
"i686-unknown-linux-musl-0.9.23": "5f65a0eb1f9067a4f5149275faba3bcb3af94dd68fbce7cd9e93ba86b5bc59c3",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.23": "69e2925397d0e781e8525ad0fd22896a114ffa02f5055e7a360e4dda3796c24e",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.23": "fb3ad2cb1a19f1bb4785580dc71837161147beab134fdc3eb4e8ccda577db1e0",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.23": "0d1d9300e2df3155b0d0b071c292fb27f8213d91854decdfb27c293397dc8e0e",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.23": "7d0b411a365b0cd8fad2b336c259743e7381676654adfbdb4f887b4136820cb8",
|
||||||
|
"x86_64-apple-darwin-0.9.23": "b5bbfbd5d8c7effa24b505365ae306116fdac58880bc9b024ec4c89435d57728",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.23": "bb6d2987906b27d3031640c4a909b6f7c134cd29674c41ef545c6e7d57dd6700",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.23": "b7bd7d9b9c9c34327f1118f99fe8c298252787ea35f7b345b8bf639377f63217",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.23": "a824a0f5f7aa67b668f54756284d458a25dea332da6e558d303890d134cc06d1",
|
||||||
"aarch64-apple-darwin-0.9.22": "4bfc6dacc9bcc9e433a9214a658495ca082b94fd607949b6745a955f34ccbc3c",
|
"aarch64-apple-darwin-0.9.22": "4bfc6dacc9bcc9e433a9214a658495ca082b94fd607949b6745a955f34ccbc3c",
|
||||||
"aarch64-pc-windows-msvc-0.9.22": "19b848523d5802279702f5df4ade6d45f17d111cf9e368883d4f6560f0426d49",
|
"aarch64-pc-windows-msvc-0.9.22": "19b848523d5802279702f5df4ade6d45f17d111cf9e368883d4f6560f0426d49",
|
||||||
"aarch64-unknown-linux-gnu-0.9.22": "2f8716c407d5da21b8a3e8609ed358147216aaab28b96b1d6d7f48e9bcc6254e",
|
"aarch64-unknown-linux-gnu-0.9.22": "2f8716c407d5da21b8a3e8609ed358147216aaab28b96b1d6d7f48e9bcc6254e",
|
||||||
@@ -32280,275 +31691,320 @@ exports.KNOWN_CHECKSUMS = {
|
|||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 6182:
|
/***/ 6182:
|
||||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
||||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
||||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
||||||
}
|
|
||||||
Object.defineProperty(o, k2, desc);
|
|
||||||
}) : (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
o[k2] = m[k];
|
|
||||||
}));
|
|
||||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
||||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
||||||
}) : function(o, v) {
|
|
||||||
o["default"] = v;
|
|
||||||
});
|
|
||||||
var __importStar = (this && this.__importStar) || (function () {
|
|
||||||
var ownKeys = function(o) {
|
|
||||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
||||||
var ar = [];
|
|
||||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
||||||
return ar;
|
|
||||||
};
|
|
||||||
return ownKeys(o);
|
|
||||||
};
|
|
||||||
return function (mod) {
|
|
||||||
if (mod && mod.__esModule) return mod;
|
|
||||||
var result = {};
|
|
||||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
||||||
__setModuleDefault(result, mod);
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
})();
|
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.updateChecksums = updateChecksums;
|
exports.updateChecksums = updateChecksums;
|
||||||
const node_fs_1 = __nccwpck_require__(3024);
|
const node_fs_1 = __nccwpck_require__(3024);
|
||||||
const tc = __importStar(__nccwpck_require__(3472));
|
async function updateChecksums(filePath, checksumEntries) {
|
||||||
const known_checksums_1 = __nccwpck_require__(2764);
|
const deduplicatedEntries = new Map();
|
||||||
async function updateChecksums(filePath, downloadUrls) {
|
for (const entry of checksumEntries) {
|
||||||
await node_fs_1.promises.rm(filePath);
|
if (deduplicatedEntries.has(entry.key)) {
|
||||||
await node_fs_1.promises.appendFile(filePath, "// AUTOGENERATED_DO_NOT_EDIT\nexport const KNOWN_CHECKSUMS: { [key: string]: string } = {\n");
|
|
||||||
let firstLine = true;
|
|
||||||
for (const downloadUrl of downloadUrls) {
|
|
||||||
const key = getKey(downloadUrl);
|
|
||||||
if (key === undefined) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const checksum = await getOrDownloadChecksum(key, downloadUrl);
|
deduplicatedEntries.set(entry.key, entry.checksum);
|
||||||
if (!firstLine) {
|
|
||||||
await node_fs_1.promises.appendFile(filePath, ",\n");
|
|
||||||
}
|
|
||||||
await node_fs_1.promises.appendFile(filePath, ` "${key}":\n "${checksum}"`);
|
|
||||||
firstLine = false;
|
|
||||||
}
|
}
|
||||||
await node_fs_1.promises.appendFile(filePath, ",\n};\n");
|
const body = [...deduplicatedEntries.entries()]
|
||||||
|
.map(([key, checksum]) => ` "${key}":\n "${checksum}"`)
|
||||||
|
.join(",\n");
|
||||||
|
const content = "// AUTOGENERATED_DO_NOT_EDIT\n" +
|
||||||
|
"export const KNOWN_CHECKSUMS: { [key: string]: string } = {\n" +
|
||||||
|
body +
|
||||||
|
(body === "" ? "" : ",\n") +
|
||||||
|
"};\n";
|
||||||
|
await node_fs_1.promises.writeFile(filePath, content);
|
||||||
}
|
}
|
||||||
function getKey(downloadUrl) {
|
|
||||||
// https://github.com/astral-sh/uv/releases/download/0.3.2/uv-aarch64-apple-darwin.tar.gz.sha256
|
|
||||||
const parts = downloadUrl.split("/");
|
/***/ }),
|
||||||
const fileName = parts[parts.length - 1];
|
|
||||||
if (fileName.startsWith("source")) {
|
/***/ 5986:
|
||||||
|
/***/ ((__unused_webpack_module, exports) => {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
|
exports.selectDefaultVariant = selectDefaultVariant;
|
||||||
|
function selectDefaultVariant(entries, duplicateEntryDescription) {
|
||||||
|
const firstEntry = entries[0];
|
||||||
|
if (firstEntry === undefined) {
|
||||||
|
throw new Error("selectDefaultVariant requires at least one candidate.");
|
||||||
|
}
|
||||||
|
if (entries.length === 1) {
|
||||||
|
return firstEntry;
|
||||||
|
}
|
||||||
|
const defaultEntries = entries.filter((entry) => isDefaultVariant(entry.variant));
|
||||||
|
if (defaultEntries.length === 1) {
|
||||||
|
return defaultEntries[0];
|
||||||
|
}
|
||||||
|
throw new Error(`${duplicateEntryDescription} with variants ${formatVariants(entries)}. setup-uv currently requires a single default variant for duplicate platform entries.`);
|
||||||
|
}
|
||||||
|
function isDefaultVariant(variant) {
|
||||||
|
return variant === undefined || variant === "default";
|
||||||
|
}
|
||||||
|
function formatVariants(entries) {
|
||||||
|
return entries
|
||||||
|
.map((entry) => entry.variant ?? "default")
|
||||||
|
.sort((left, right) => left.localeCompare(right))
|
||||||
|
.join(", ");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 203:
|
||||||
|
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||||
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||||
|
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||||
|
}
|
||||||
|
Object.defineProperty(o, k2, desc);
|
||||||
|
}) : (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
o[k2] = m[k];
|
||||||
|
}));
|
||||||
|
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||||
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||||
|
}) : function(o, v) {
|
||||||
|
o["default"] = v;
|
||||||
|
});
|
||||||
|
var __importStar = (this && this.__importStar) || (function () {
|
||||||
|
var ownKeys = function(o) {
|
||||||
|
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||||
|
var ar = [];
|
||||||
|
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||||
|
return ar;
|
||||||
|
};
|
||||||
|
return ownKeys(o);
|
||||||
|
};
|
||||||
|
return function (mod) {
|
||||||
|
if (mod && mod.__esModule) return mod;
|
||||||
|
var result = {};
|
||||||
|
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||||
|
__setModuleDefault(result, mod);
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
|
exports.fetchVersionData = fetchVersionData;
|
||||||
|
exports.parseVersionData = parseVersionData;
|
||||||
|
exports.getLatestVersion = getLatestVersion;
|
||||||
|
exports.getAllVersions = getAllVersions;
|
||||||
|
exports.getArtifact = getArtifact;
|
||||||
|
exports.clearCache = clearCache;
|
||||||
|
const core = __importStar(__nccwpck_require__(7484));
|
||||||
|
const constants_1 = __nccwpck_require__(6156);
|
||||||
|
const fetch_1 = __nccwpck_require__(3385);
|
||||||
|
const variant_selection_1 = __nccwpck_require__(5986);
|
||||||
|
const cachedVersionData = new Map();
|
||||||
|
async function fetchVersionData(url = constants_1.VERSIONS_NDJSON_URL) {
|
||||||
|
const cachedVersions = cachedVersionData.get(url);
|
||||||
|
if (cachedVersions !== undefined) {
|
||||||
|
core.debug(`Using cached NDJSON version data from ${url}`);
|
||||||
|
return cachedVersions;
|
||||||
|
}
|
||||||
|
core.info(`Fetching version data from ${url} ...`);
|
||||||
|
const response = await (0, fetch_1.fetch)(url, {});
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(`Failed to fetch version data: ${response.status} ${response.statusText}`);
|
||||||
|
}
|
||||||
|
const body = await response.text();
|
||||||
|
const versions = parseVersionData(body, url);
|
||||||
|
cachedVersionData.set(url, versions);
|
||||||
|
return versions;
|
||||||
|
}
|
||||||
|
function parseVersionData(data, sourceDescription) {
|
||||||
|
const versions = [];
|
||||||
|
for (const [index, line] of data.split("\n").entries()) {
|
||||||
|
const trimmed = line.trim();
|
||||||
|
if (trimmed === "") {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
let parsed;
|
||||||
|
try {
|
||||||
|
parsed = JSON.parse(trimmed);
|
||||||
|
}
|
||||||
|
catch (error) {
|
||||||
|
throw new Error(`Failed to parse version data from ${sourceDescription} at line ${index + 1}: ${error.message}`);
|
||||||
|
}
|
||||||
|
if (!isNdjsonVersion(parsed)) {
|
||||||
|
throw new Error(`Invalid NDJSON record in ${sourceDescription} at line ${index + 1}.`);
|
||||||
|
}
|
||||||
|
versions.push(parsed);
|
||||||
|
}
|
||||||
|
if (versions.length === 0) {
|
||||||
|
throw new Error(`No version data found in ${sourceDescription}.`);
|
||||||
|
}
|
||||||
|
return versions;
|
||||||
|
}
|
||||||
|
async function getLatestVersion() {
|
||||||
|
const versions = await fetchVersionData();
|
||||||
|
const latestVersion = versions[0]?.version;
|
||||||
|
if (!latestVersion) {
|
||||||
|
throw new Error("No versions found in NDJSON data");
|
||||||
|
}
|
||||||
|
core.debug(`Latest version from NDJSON: ${latestVersion}`);
|
||||||
|
return latestVersion;
|
||||||
|
}
|
||||||
|
async function getAllVersions() {
|
||||||
|
const versions = await fetchVersionData();
|
||||||
|
return versions.map((versionData) => versionData.version);
|
||||||
|
}
|
||||||
|
async function getArtifact(version, arch, platform) {
|
||||||
|
const versions = await fetchVersionData();
|
||||||
|
const versionData = versions.find((candidate) => candidate.version === version);
|
||||||
|
if (!versionData) {
|
||||||
|
core.debug(`Version ${version} not found in NDJSON data`);
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
const name = fileName.split(".")[0].split("uv-")[1];
|
const targetPlatform = `${arch}-${platform}`;
|
||||||
const version = parts[parts.length - 2];
|
const matchingArtifacts = versionData.artifacts.filter((candidate) => candidate.platform === targetPlatform);
|
||||||
return `${name}-${version}`;
|
if (matchingArtifacts.length === 0) {
|
||||||
}
|
core.debug(`Artifact for ${targetPlatform} not found in version ${version}. Available platforms: ${versionData.artifacts
|
||||||
async function getOrDownloadChecksum(key, downloadUrl) {
|
.map((candidate) => candidate.platform)
|
||||||
let checksum = "";
|
.join(", ")}`);
|
||||||
if (key in known_checksums_1.KNOWN_CHECKSUMS) {
|
return undefined;
|
||||||
checksum = known_checksums_1.KNOWN_CHECKSUMS[key];
|
|
||||||
}
|
}
|
||||||
else {
|
const artifact = selectArtifact(matchingArtifacts, version, targetPlatform);
|
||||||
const content = await downloadAssetContent(downloadUrl);
|
return {
|
||||||
checksum = content.split(" ")[0].trim();
|
archiveFormat: artifact.archive_format,
|
||||||
}
|
sha256: artifact.sha256,
|
||||||
return checksum;
|
url: artifact.url,
|
||||||
}
|
|
||||||
async function downloadAssetContent(downloadUrl) {
|
|
||||||
const downloadPath = await tc.downloadTool(downloadUrl);
|
|
||||||
const content = await node_fs_1.promises.readFile(downloadPath, "utf8");
|
|
||||||
return content;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 4000:
|
|
||||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
||||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
||||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
||||||
}
|
|
||||||
Object.defineProperty(o, k2, desc);
|
|
||||||
}) : (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
o[k2] = m[k];
|
|
||||||
}));
|
|
||||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
||||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
||||||
}) : function(o, v) {
|
|
||||||
o["default"] = v;
|
|
||||||
});
|
|
||||||
var __importStar = (this && this.__importStar) || (function () {
|
|
||||||
var ownKeys = function(o) {
|
|
||||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
||||||
var ar = [];
|
|
||||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
||||||
return ar;
|
|
||||||
};
|
|
||||||
return ownKeys(o);
|
|
||||||
};
|
};
|
||||||
return function (mod) {
|
|
||||||
if (mod && mod.__esModule) return mod;
|
|
||||||
var result = {};
|
|
||||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
||||||
__setModuleDefault(result, mod);
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
})();
|
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
||||||
exports.getLatestKnownVersion = getLatestKnownVersion;
|
|
||||||
exports.getDownloadUrl = getDownloadUrl;
|
|
||||||
exports.updateVersionManifest = updateVersionManifest;
|
|
||||||
const node_fs_1 = __nccwpck_require__(3024);
|
|
||||||
const node_path_1 = __nccwpck_require__(6760);
|
|
||||||
const core = __importStar(__nccwpck_require__(7484));
|
|
||||||
const semver = __importStar(__nccwpck_require__(9318));
|
|
||||||
const fetch_1 = __nccwpck_require__(3385);
|
|
||||||
const localManifestFile = (0, node_path_1.join)(__dirname, "..", "..", "version-manifest.json");
|
|
||||||
async function getLatestKnownVersion(manifestUrl) {
|
|
||||||
const manifestEntries = await getManifestEntries(manifestUrl);
|
|
||||||
return manifestEntries.reduce((a, b) => semver.gt(a.version, b.version) ? a : b).version;
|
|
||||||
}
|
}
|
||||||
async function getDownloadUrl(manifestUrl, version, arch, platform) {
|
function clearCache(url) {
|
||||||
const manifestEntries = await getManifestEntries(manifestUrl);
|
if (url === undefined) {
|
||||||
const entry = manifestEntries.find((entry) => entry.version === version &&
|
cachedVersionData.clear();
|
||||||
entry.arch === arch &&
|
|
||||||
entry.platform === platform);
|
|
||||||
return entry ? entry.downloadUrl : undefined;
|
|
||||||
}
|
|
||||||
async function getManifestEntries(manifestUrl) {
|
|
||||||
let data;
|
|
||||||
if (manifestUrl !== undefined) {
|
|
||||||
core.info(`Fetching manifest-file from: ${manifestUrl}`);
|
|
||||||
const response = await (0, fetch_1.fetch)(manifestUrl, {});
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error(`Failed to fetch manifest-file: ${response.status} ${response.statusText}`);
|
|
||||||
}
|
|
||||||
data = await response.text();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
core.info("manifest-file not provided, reading from local file.");
|
|
||||||
const fileContent = await node_fs_1.promises.readFile(localManifestFile);
|
|
||||||
data = fileContent.toString();
|
|
||||||
}
|
|
||||||
return JSON.parse(data);
|
|
||||||
}
|
|
||||||
async function updateVersionManifest(manifestUrl, downloadUrls) {
|
|
||||||
const manifest = [];
|
|
||||||
for (const downloadUrl of downloadUrls) {
|
|
||||||
const urlParts = downloadUrl.split("/");
|
|
||||||
const version = urlParts[urlParts.length - 2];
|
|
||||||
const artifactName = urlParts[urlParts.length - 1];
|
|
||||||
if (!artifactName.startsWith("uv-")) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (artifactName.startsWith("uv-installer")) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
const artifactParts = artifactName.split(".")[0].split("-");
|
|
||||||
manifest.push({
|
|
||||||
arch: artifactParts[1],
|
|
||||||
artifactName: artifactName,
|
|
||||||
downloadUrl: downloadUrl,
|
|
||||||
platform: artifactName.split(`uv-${artifactParts[1]}-`)[1].split(".")[0],
|
|
||||||
version: version,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
core.debug(`Updating manifest-file: ${JSON.stringify(manifest)}`);
|
|
||||||
await node_fs_1.promises.writeFile(manifestUrl, JSON.stringify(manifest));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 7416:
|
|
||||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
||||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
||||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
||||||
}
|
|
||||||
Object.defineProperty(o, k2, desc);
|
|
||||||
}) : (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
o[k2] = m[k];
|
|
||||||
}));
|
|
||||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
||||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
||||||
}) : function(o, v) {
|
|
||||||
o["default"] = v;
|
|
||||||
});
|
|
||||||
var __importStar = (this && this.__importStar) || (function () {
|
|
||||||
var ownKeys = function(o) {
|
|
||||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
||||||
var ar = [];
|
|
||||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
||||||
return ar;
|
|
||||||
};
|
|
||||||
return ownKeys(o);
|
|
||||||
};
|
|
||||||
return function (mod) {
|
|
||||||
if (mod && mod.__esModule) return mod;
|
|
||||||
var result = {};
|
|
||||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
||||||
__setModuleDefault(result, mod);
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
})();
|
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
||||||
const core = __importStar(__nccwpck_require__(7484));
|
|
||||||
const semver = __importStar(__nccwpck_require__(9318));
|
|
||||||
const update_known_checksums_1 = __nccwpck_require__(6182);
|
|
||||||
const version_manifest_1 = __nccwpck_require__(4000);
|
|
||||||
const constants_1 = __nccwpck_require__(6156);
|
|
||||||
const octokit_1 = __nccwpck_require__(3352);
|
|
||||||
async function run() {
|
|
||||||
const checksumFilePath = process.argv.slice(2)[0];
|
|
||||||
const versionsManifestFile = process.argv.slice(2)[1];
|
|
||||||
const githubToken = process.argv.slice(2)[2];
|
|
||||||
const octokit = new octokit_1.Octokit({
|
|
||||||
auth: githubToken,
|
|
||||||
});
|
|
||||||
const { data: latestRelease } = await octokit.rest.repos.getLatestRelease({
|
|
||||||
owner: constants_1.OWNER,
|
|
||||||
repo: constants_1.REPO,
|
|
||||||
});
|
|
||||||
const latestKnownVersion = await (0, version_manifest_1.getLatestKnownVersion)(undefined);
|
|
||||||
if (semver.lte(latestRelease.tag_name, latestKnownVersion)) {
|
|
||||||
core.info(`Latest release (${latestRelease.tag_name}) is not newer than the latest known version (${latestKnownVersion}). Skipping update.`);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const releases = await octokit.paginate(octokit.rest.repos.listReleases, {
|
cachedVersionData.delete(url);
|
||||||
owner: constants_1.OWNER,
|
}
|
||||||
repo: constants_1.REPO,
|
function selectArtifact(artifacts, version, targetPlatform) {
|
||||||
});
|
return (0, variant_selection_1.selectDefaultVariant)(artifacts, `Multiple artifacts found for ${targetPlatform} in version ${version}`);
|
||||||
const checksumDownloadUrls = releases.flatMap((release) => release.assets
|
}
|
||||||
.filter((asset) => asset.name.endsWith(".sha256"))
|
function isNdjsonVersion(value) {
|
||||||
.map((asset) => asset.browser_download_url));
|
if (!isRecord(value)) {
|
||||||
await (0, update_known_checksums_1.updateChecksums)(checksumFilePath, checksumDownloadUrls);
|
return false;
|
||||||
const artifactDownloadUrls = releases.flatMap((release) => release.assets
|
}
|
||||||
.filter((asset) => !asset.name.endsWith(".sha256"))
|
if (typeof value.version !== "string" || !Array.isArray(value.artifacts)) {
|
||||||
.map((asset) => asset.browser_download_url));
|
return false;
|
||||||
await (0, version_manifest_1.updateVersionManifest)(versionsManifestFile, artifactDownloadUrls);
|
}
|
||||||
core.setOutput("latest-version", latestRelease.tag_name);
|
return value.artifacts.every(isNdjsonArtifact);
|
||||||
|
}
|
||||||
|
function isNdjsonArtifact(value) {
|
||||||
|
if (!isRecord(value)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const variantIsValid = typeof value.variant === "string" || value.variant === undefined;
|
||||||
|
return (typeof value.archive_format === "string" &&
|
||||||
|
typeof value.platform === "string" &&
|
||||||
|
typeof value.sha256 === "string" &&
|
||||||
|
typeof value.url === "string" &&
|
||||||
|
variantIsValid);
|
||||||
|
}
|
||||||
|
function isRecord(value) {
|
||||||
|
return typeof value === "object" && value !== null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 5653:
|
||||||
|
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||||
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||||
|
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||||
|
}
|
||||||
|
Object.defineProperty(o, k2, desc);
|
||||||
|
}) : (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
o[k2] = m[k];
|
||||||
|
}));
|
||||||
|
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||||
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||||
|
}) : function(o, v) {
|
||||||
|
o["default"] = v;
|
||||||
|
});
|
||||||
|
var __importStar = (this && this.__importStar) || (function () {
|
||||||
|
var ownKeys = function(o) {
|
||||||
|
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||||
|
var ar = [];
|
||||||
|
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||||
|
return ar;
|
||||||
|
};
|
||||||
|
return ownKeys(o);
|
||||||
|
};
|
||||||
|
return function (mod) {
|
||||||
|
if (mod && mod.__esModule) return mod;
|
||||||
|
var result = {};
|
||||||
|
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||||
|
__setModuleDefault(result, mod);
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
|
const core = __importStar(__nccwpck_require__(7484));
|
||||||
|
const semver = __importStar(__nccwpck_require__(9318));
|
||||||
|
const known_checksums_1 = __nccwpck_require__(2764);
|
||||||
|
const update_known_checksums_1 = __nccwpck_require__(6182);
|
||||||
|
const versions_client_1 = __nccwpck_require__(203);
|
||||||
|
const VERSION_IN_CHECKSUM_KEY_PATTERN = /-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)$/;
|
||||||
|
async function run() {
|
||||||
|
const checksumFilePath = process.argv.slice(2)[0];
|
||||||
|
if (!checksumFilePath) {
|
||||||
|
throw new Error("Missing checksum file path. Usage: node dist/update-known-checksums/index.js <checksum-file-path>");
|
||||||
|
}
|
||||||
|
const latestVersion = await (0, versions_client_1.getLatestVersion)();
|
||||||
|
const latestKnownVersion = getLatestKnownVersionFromChecksums();
|
||||||
|
if (semver.lte(latestVersion, latestKnownVersion)) {
|
||||||
|
core.info(`Latest release (${latestVersion}) is not newer than the latest known version (${latestKnownVersion}). Skipping update.`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const versions = await (0, versions_client_1.fetchVersionData)();
|
||||||
|
const checksumEntries = extractChecksumsFromNdjson(versions);
|
||||||
|
await (0, update_known_checksums_1.updateChecksums)(checksumFilePath, checksumEntries);
|
||||||
|
core.setOutput("latest-version", latestVersion);
|
||||||
|
}
|
||||||
|
function getLatestKnownVersionFromChecksums() {
|
||||||
|
const versions = new Set();
|
||||||
|
for (const key of Object.keys(known_checksums_1.KNOWN_CHECKSUMS)) {
|
||||||
|
const version = extractVersionFromChecksumKey(key);
|
||||||
|
if (version !== undefined) {
|
||||||
|
versions.add(version);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const latestVersion = [...versions].sort(semver.rcompare)[0];
|
||||||
|
if (!latestVersion) {
|
||||||
|
throw new Error("Could not determine latest known version from checksums.");
|
||||||
|
}
|
||||||
|
return latestVersion;
|
||||||
|
}
|
||||||
|
function extractVersionFromChecksumKey(key) {
|
||||||
|
return key.match(VERSION_IN_CHECKSUM_KEY_PATTERN)?.[1];
|
||||||
|
}
|
||||||
|
function extractChecksumsFromNdjson(versions) {
|
||||||
|
const checksums = [];
|
||||||
|
for (const version of versions) {
|
||||||
|
for (const artifact of version.artifacts) {
|
||||||
|
checksums.push({
|
||||||
|
checksum: artifact.sha256,
|
||||||
|
key: `${artifact.platform}-${version.version}`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return checksums;
|
||||||
}
|
}
|
||||||
run();
|
run();
|
||||||
|
|
||||||
@@ -32561,12 +32017,11 @@ run();
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.STATE_UV_VERSION = exports.STATE_UV_PATH = exports.TOOL_CACHE_NAME = exports.OWNER = exports.REPO = void 0;
|
exports.VERSIONS_NDJSON_URL = exports.STATE_UV_VERSION = exports.STATE_UV_PATH = exports.TOOL_CACHE_NAME = void 0;
|
||||||
exports.REPO = "uv";
|
|
||||||
exports.OWNER = "astral-sh";
|
|
||||||
exports.TOOL_CACHE_NAME = "uv";
|
exports.TOOL_CACHE_NAME = "uv";
|
||||||
exports.STATE_UV_PATH = "uv-path";
|
exports.STATE_UV_PATH = "uv-path";
|
||||||
exports.STATE_UV_VERSION = "uv-version";
|
exports.STATE_UV_VERSION = "uv-version";
|
||||||
|
exports.VERSIONS_NDJSON_URL = "https://raw.githubusercontent.com/astral-sh/versions/main/v1/uv.ndjson";
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
@@ -32598,36 +32053,6 @@ const fetch = async (url, opts) => await (0, undici_1.fetch)(url, {
|
|||||||
exports.fetch = fetch;
|
exports.fetch = fetch;
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 3352:
|
|
||||||
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
||||||
exports.Octokit = void 0;
|
|
||||||
const core_1 = __nccwpck_require__(767);
|
|
||||||
const plugin_paginate_rest_1 = __nccwpck_require__(3779);
|
|
||||||
const plugin_rest_endpoint_methods_1 = __nccwpck_require__(9210);
|
|
||||||
const fetch_1 = __nccwpck_require__(3385);
|
|
||||||
const DEFAULTS = {
|
|
||||||
baseUrl: "https://api.github.com",
|
|
||||||
userAgent: "setup-uv",
|
|
||||||
};
|
|
||||||
const OctokitWithPlugins = core_1.Octokit.plugin(plugin_paginate_rest_1.paginateRest, plugin_rest_endpoint_methods_1.legacyRestEndpointMethods);
|
|
||||||
exports.Octokit = OctokitWithPlugins.defaults(function buildDefaults(options) {
|
|
||||||
return {
|
|
||||||
...DEFAULTS,
|
|
||||||
...options,
|
|
||||||
request: {
|
|
||||||
fetch: fetch_1.fetch,
|
|
||||||
...options.request,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 2613:
|
/***/ 2613:
|
||||||
@@ -32758,14 +32183,6 @@ module.exports = require("node:fs");
|
|||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 6760:
|
|
||||||
/***/ ((module) => {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
module.exports = require("node:path");
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 7075:
|
/***/ 7075:
|
||||||
/***/ ((module) => {
|
/***/ ((module) => {
|
||||||
|
|
||||||
@@ -34517,4164 +33934,6 @@ function parseParams (str) {
|
|||||||
module.exports = parseParams
|
module.exports = parseParams
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 1120:
|
|
||||||
/***/ ((module) => {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
var __webpack_unused_export__;
|
|
||||||
|
|
||||||
|
|
||||||
const NullObject = function NullObject () { }
|
|
||||||
NullObject.prototype = Object.create(null)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* RegExp to match *( ";" parameter ) in RFC 7231 sec 3.1.1.1
|
|
||||||
*
|
|
||||||
* parameter = token "=" ( token / quoted-string )
|
|
||||||
* token = 1*tchar
|
|
||||||
* tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*"
|
|
||||||
* / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
|
|
||||||
* / DIGIT / ALPHA
|
|
||||||
* ; any VCHAR, except delimiters
|
|
||||||
* quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE
|
|
||||||
* qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text
|
|
||||||
* obs-text = %x80-FF
|
|
||||||
* quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text )
|
|
||||||
*/
|
|
||||||
const paramRE = /; *([!#$%&'*+.^\w`|~-]+)=("(?:[\v\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\v\u0020-\u00ff])*"|[!#$%&'*+.^\w`|~-]+) */gu
|
|
||||||
|
|
||||||
/**
|
|
||||||
* RegExp to match quoted-pair in RFC 7230 sec 3.2.6
|
|
||||||
*
|
|
||||||
* quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text )
|
|
||||||
* obs-text = %x80-FF
|
|
||||||
*/
|
|
||||||
const quotedPairRE = /\\([\v\u0020-\u00ff])/gu
|
|
||||||
|
|
||||||
/**
|
|
||||||
* RegExp to match type in RFC 7231 sec 3.1.1.1
|
|
||||||
*
|
|
||||||
* media-type = type "/" subtype
|
|
||||||
* type = token
|
|
||||||
* subtype = token
|
|
||||||
*/
|
|
||||||
const mediaTypeRE = /^[!#$%&'*+.^\w|~-]+\/[!#$%&'*+.^\w|~-]+$/u
|
|
||||||
|
|
||||||
// default ContentType to prevent repeated object creation
|
|
||||||
const defaultContentType = { type: '', parameters: new NullObject() }
|
|
||||||
Object.freeze(defaultContentType.parameters)
|
|
||||||
Object.freeze(defaultContentType)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parse media type to object.
|
|
||||||
*
|
|
||||||
* @param {string|object} header
|
|
||||||
* @return {Object}
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function parse (header) {
|
|
||||||
if (typeof header !== 'string') {
|
|
||||||
throw new TypeError('argument header is required and must be a string')
|
|
||||||
}
|
|
||||||
|
|
||||||
let index = header.indexOf(';')
|
|
||||||
const type = index !== -1
|
|
||||||
? header.slice(0, index).trim()
|
|
||||||
: header.trim()
|
|
||||||
|
|
||||||
if (mediaTypeRE.test(type) === false) {
|
|
||||||
throw new TypeError('invalid media type')
|
|
||||||
}
|
|
||||||
|
|
||||||
const result = {
|
|
||||||
type: type.toLowerCase(),
|
|
||||||
parameters: new NullObject()
|
|
||||||
}
|
|
||||||
|
|
||||||
// parse parameters
|
|
||||||
if (index === -1) {
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
let key
|
|
||||||
let match
|
|
||||||
let value
|
|
||||||
|
|
||||||
paramRE.lastIndex = index
|
|
||||||
|
|
||||||
while ((match = paramRE.exec(header))) {
|
|
||||||
if (match.index !== index) {
|
|
||||||
throw new TypeError('invalid parameter format')
|
|
||||||
}
|
|
||||||
|
|
||||||
index += match[0].length
|
|
||||||
key = match[1].toLowerCase()
|
|
||||||
value = match[2]
|
|
||||||
|
|
||||||
if (value[0] === '"') {
|
|
||||||
// remove quotes and escapes
|
|
||||||
value = value
|
|
||||||
.slice(1, value.length - 1)
|
|
||||||
|
|
||||||
quotedPairRE.test(value) && (value = value.replace(quotedPairRE, '$1'))
|
|
||||||
}
|
|
||||||
|
|
||||||
result.parameters[key] = value
|
|
||||||
}
|
|
||||||
|
|
||||||
if (index !== header.length) {
|
|
||||||
throw new TypeError('invalid parameter format')
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
function safeParse (header) {
|
|
||||||
if (typeof header !== 'string') {
|
|
||||||
return defaultContentType
|
|
||||||
}
|
|
||||||
|
|
||||||
let index = header.indexOf(';')
|
|
||||||
const type = index !== -1
|
|
||||||
? header.slice(0, index).trim()
|
|
||||||
: header.trim()
|
|
||||||
|
|
||||||
if (mediaTypeRE.test(type) === false) {
|
|
||||||
return defaultContentType
|
|
||||||
}
|
|
||||||
|
|
||||||
const result = {
|
|
||||||
type: type.toLowerCase(),
|
|
||||||
parameters: new NullObject()
|
|
||||||
}
|
|
||||||
|
|
||||||
// parse parameters
|
|
||||||
if (index === -1) {
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
let key
|
|
||||||
let match
|
|
||||||
let value
|
|
||||||
|
|
||||||
paramRE.lastIndex = index
|
|
||||||
|
|
||||||
while ((match = paramRE.exec(header))) {
|
|
||||||
if (match.index !== index) {
|
|
||||||
return defaultContentType
|
|
||||||
}
|
|
||||||
|
|
||||||
index += match[0].length
|
|
||||||
key = match[1].toLowerCase()
|
|
||||||
value = match[2]
|
|
||||||
|
|
||||||
if (value[0] === '"') {
|
|
||||||
// remove quotes and escapes
|
|
||||||
value = value
|
|
||||||
.slice(1, value.length - 1)
|
|
||||||
|
|
||||||
quotedPairRE.test(value) && (value = value.replace(quotedPairRE, '$1'))
|
|
||||||
}
|
|
||||||
|
|
||||||
result.parameters[key] = value
|
|
||||||
}
|
|
||||||
|
|
||||||
if (index !== header.length) {
|
|
||||||
return defaultContentType
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
__webpack_unused_export__ = { parse, safeParse }
|
|
||||||
__webpack_unused_export__ = parse
|
|
||||||
module.exports.xL = safeParse
|
|
||||||
__webpack_unused_export__ = defaultContentType
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 767:
|
|
||||||
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
// ESM COMPAT FLAG
|
|
||||||
__nccwpck_require__.r(__webpack_exports__);
|
|
||||||
|
|
||||||
// EXPORTS
|
|
||||||
__nccwpck_require__.d(__webpack_exports__, {
|
|
||||||
Octokit: () => (/* binding */ Octokit)
|
|
||||||
});
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/universal-user-agent/index.js
|
|
||||||
function getUserAgent() {
|
|
||||||
if (typeof navigator === "object" && "userAgent" in navigator) {
|
|
||||||
return navigator.userAgent;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof process === "object" && process.version !== undefined) {
|
|
||||||
return `Node.js/${process.version.substr(1)} (${process.platform}; ${
|
|
||||||
process.arch
|
|
||||||
})`;
|
|
||||||
}
|
|
||||||
|
|
||||||
return "<environment undetectable>";
|
|
||||||
}
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/before-after-hook/lib/register.js
|
|
||||||
// @ts-check
|
|
||||||
|
|
||||||
function register(state, name, method, options) {
|
|
||||||
if (typeof method !== "function") {
|
|
||||||
throw new Error("method for before hook must be a function");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!options) {
|
|
||||||
options = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Array.isArray(name)) {
|
|
||||||
return name.reverse().reduce((callback, name) => {
|
|
||||||
return register.bind(null, state, name, callback, options);
|
|
||||||
}, method)();
|
|
||||||
}
|
|
||||||
|
|
||||||
return Promise.resolve().then(() => {
|
|
||||||
if (!state.registry[name]) {
|
|
||||||
return method(options);
|
|
||||||
}
|
|
||||||
|
|
||||||
return state.registry[name].reduce((method, registered) => {
|
|
||||||
return registered.hook.bind(null, method, options);
|
|
||||||
}, method)();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/before-after-hook/lib/add.js
|
|
||||||
// @ts-check
|
|
||||||
|
|
||||||
function addHook(state, kind, name, hook) {
|
|
||||||
const orig = hook;
|
|
||||||
if (!state.registry[name]) {
|
|
||||||
state.registry[name] = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (kind === "before") {
|
|
||||||
hook = (method, options) => {
|
|
||||||
return Promise.resolve()
|
|
||||||
.then(orig.bind(null, options))
|
|
||||||
.then(method.bind(null, options));
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (kind === "after") {
|
|
||||||
hook = (method, options) => {
|
|
||||||
let result;
|
|
||||||
return Promise.resolve()
|
|
||||||
.then(method.bind(null, options))
|
|
||||||
.then((result_) => {
|
|
||||||
result = result_;
|
|
||||||
return orig(result, options);
|
|
||||||
})
|
|
||||||
.then(() => {
|
|
||||||
return result;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (kind === "error") {
|
|
||||||
hook = (method, options) => {
|
|
||||||
return Promise.resolve()
|
|
||||||
.then(method.bind(null, options))
|
|
||||||
.catch((error) => {
|
|
||||||
return orig(error, options);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
state.registry[name].push({
|
|
||||||
hook: hook,
|
|
||||||
orig: orig,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/before-after-hook/lib/remove.js
|
|
||||||
// @ts-check
|
|
||||||
|
|
||||||
function removeHook(state, name, method) {
|
|
||||||
if (!state.registry[name]) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const index = state.registry[name]
|
|
||||||
.map((registered) => {
|
|
||||||
return registered.orig;
|
|
||||||
})
|
|
||||||
.indexOf(method);
|
|
||||||
|
|
||||||
if (index === -1) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
state.registry[name].splice(index, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/before-after-hook/index.js
|
|
||||||
// @ts-check
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// bind with array of arguments: https://stackoverflow.com/a/21792913
|
|
||||||
const bind = Function.bind;
|
|
||||||
const bindable = bind.bind(bind);
|
|
||||||
|
|
||||||
function bindApi(hook, state, name) {
|
|
||||||
const removeHookRef = bindable(removeHook, null).apply(
|
|
||||||
null,
|
|
||||||
name ? [state, name] : [state]
|
|
||||||
);
|
|
||||||
hook.api = { remove: removeHookRef };
|
|
||||||
hook.remove = removeHookRef;
|
|
||||||
["before", "error", "after", "wrap"].forEach((kind) => {
|
|
||||||
const args = name ? [state, kind, name] : [state, kind];
|
|
||||||
hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function Singular() {
|
|
||||||
const singularHookName = Symbol("Singular");
|
|
||||||
const singularHookState = {
|
|
||||||
registry: {},
|
|
||||||
};
|
|
||||||
const singularHook = register.bind(null, singularHookState, singularHookName);
|
|
||||||
bindApi(singularHook, singularHookState, singularHookName);
|
|
||||||
return singularHook;
|
|
||||||
}
|
|
||||||
|
|
||||||
function Collection() {
|
|
||||||
const state = {
|
|
||||||
registry: {},
|
|
||||||
};
|
|
||||||
|
|
||||||
const hook = register.bind(null, state);
|
|
||||||
bindApi(hook, state);
|
|
||||||
|
|
||||||
return hook;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* harmony default export */ const before_after_hook = ({ Singular, Collection });
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/endpoint/dist-bundle/index.js
|
|
||||||
// pkg/dist-src/defaults.js
|
|
||||||
|
|
||||||
|
|
||||||
// pkg/dist-src/version.js
|
|
||||||
var VERSION = "0.0.0-development";
|
|
||||||
|
|
||||||
// pkg/dist-src/defaults.js
|
|
||||||
var userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;
|
|
||||||
var DEFAULTS = {
|
|
||||||
method: "GET",
|
|
||||||
baseUrl: "https://api.github.com",
|
|
||||||
headers: {
|
|
||||||
accept: "application/vnd.github.v3+json",
|
|
||||||
"user-agent": userAgent
|
|
||||||
},
|
|
||||||
mediaType: {
|
|
||||||
format: ""
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// pkg/dist-src/util/lowercase-keys.js
|
|
||||||
function lowercaseKeys(object) {
|
|
||||||
if (!object) {
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
return Object.keys(object).reduce((newObj, key) => {
|
|
||||||
newObj[key.toLowerCase()] = object[key];
|
|
||||||
return newObj;
|
|
||||||
}, {});
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/util/is-plain-object.js
|
|
||||||
function isPlainObject(value) {
|
|
||||||
if (typeof value !== "object" || value === null) return false;
|
|
||||||
if (Object.prototype.toString.call(value) !== "[object Object]") return false;
|
|
||||||
const proto = Object.getPrototypeOf(value);
|
|
||||||
if (proto === null) return true;
|
|
||||||
const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor;
|
|
||||||
return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/util/merge-deep.js
|
|
||||||
function mergeDeep(defaults, options) {
|
|
||||||
const result = Object.assign({}, defaults);
|
|
||||||
Object.keys(options).forEach((key) => {
|
|
||||||
if (isPlainObject(options[key])) {
|
|
||||||
if (!(key in defaults)) Object.assign(result, { [key]: options[key] });
|
|
||||||
else result[key] = mergeDeep(defaults[key], options[key]);
|
|
||||||
} else {
|
|
||||||
Object.assign(result, { [key]: options[key] });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/util/remove-undefined-properties.js
|
|
||||||
function removeUndefinedProperties(obj) {
|
|
||||||
for (const key in obj) {
|
|
||||||
if (obj[key] === void 0) {
|
|
||||||
delete obj[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/merge.js
|
|
||||||
function merge(defaults, route, options) {
|
|
||||||
if (typeof route === "string") {
|
|
||||||
let [method, url] = route.split(" ");
|
|
||||||
options = Object.assign(url ? { method, url } : { url: method }, options);
|
|
||||||
} else {
|
|
||||||
options = Object.assign({}, route);
|
|
||||||
}
|
|
||||||
options.headers = lowercaseKeys(options.headers);
|
|
||||||
removeUndefinedProperties(options);
|
|
||||||
removeUndefinedProperties(options.headers);
|
|
||||||
const mergedOptions = mergeDeep(defaults || {}, options);
|
|
||||||
if (options.url === "/graphql") {
|
|
||||||
if (defaults && defaults.mediaType.previews?.length) {
|
|
||||||
mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(
|
|
||||||
(preview) => !mergedOptions.mediaType.previews.includes(preview)
|
|
||||||
).concat(mergedOptions.mediaType.previews);
|
|
||||||
}
|
|
||||||
mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, ""));
|
|
||||||
}
|
|
||||||
return mergedOptions;
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/util/add-query-parameters.js
|
|
||||||
function addQueryParameters(url, parameters) {
|
|
||||||
const separator = /\?/.test(url) ? "&" : "?";
|
|
||||||
const names = Object.keys(parameters);
|
|
||||||
if (names.length === 0) {
|
|
||||||
return url;
|
|
||||||
}
|
|
||||||
return url + separator + names.map((name) => {
|
|
||||||
if (name === "q") {
|
|
||||||
return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+");
|
|
||||||
}
|
|
||||||
return `${name}=${encodeURIComponent(parameters[name])}`;
|
|
||||||
}).join("&");
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/util/extract-url-variable-names.js
|
|
||||||
var urlVariableRegex = /\{[^{}}]+\}/g;
|
|
||||||
function removeNonChars(variableName) {
|
|
||||||
return variableName.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g, "").split(/,/);
|
|
||||||
}
|
|
||||||
function extractUrlVariableNames(url) {
|
|
||||||
const matches = url.match(urlVariableRegex);
|
|
||||||
if (!matches) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/util/omit.js
|
|
||||||
function omit(object, keysToOmit) {
|
|
||||||
const result = { __proto__: null };
|
|
||||||
for (const key of Object.keys(object)) {
|
|
||||||
if (keysToOmit.indexOf(key) === -1) {
|
|
||||||
result[key] = object[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/util/url-template.js
|
|
||||||
function encodeReserved(str) {
|
|
||||||
return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) {
|
|
||||||
if (!/%[0-9A-Fa-f]/.test(part)) {
|
|
||||||
part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]");
|
|
||||||
}
|
|
||||||
return part;
|
|
||||||
}).join("");
|
|
||||||
}
|
|
||||||
function encodeUnreserved(str) {
|
|
||||||
return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
|
|
||||||
return "%" + c.charCodeAt(0).toString(16).toUpperCase();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
function encodeValue(operator, value, key) {
|
|
||||||
value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value);
|
|
||||||
if (key) {
|
|
||||||
return encodeUnreserved(key) + "=" + value;
|
|
||||||
} else {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function isDefined(value) {
|
|
||||||
return value !== void 0 && value !== null;
|
|
||||||
}
|
|
||||||
function isKeyOperator(operator) {
|
|
||||||
return operator === ";" || operator === "&" || operator === "?";
|
|
||||||
}
|
|
||||||
function getValues(context, operator, key, modifier) {
|
|
||||||
var value = context[key], result = [];
|
|
||||||
if (isDefined(value) && value !== "") {
|
|
||||||
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
||||||
value = value.toString();
|
|
||||||
if (modifier && modifier !== "*") {
|
|
||||||
value = value.substring(0, parseInt(modifier, 10));
|
|
||||||
}
|
|
||||||
result.push(
|
|
||||||
encodeValue(operator, value, isKeyOperator(operator) ? key : "")
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
if (modifier === "*") {
|
|
||||||
if (Array.isArray(value)) {
|
|
||||||
value.filter(isDefined).forEach(function(value2) {
|
|
||||||
result.push(
|
|
||||||
encodeValue(operator, value2, isKeyOperator(operator) ? key : "")
|
|
||||||
);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
Object.keys(value).forEach(function(k) {
|
|
||||||
if (isDefined(value[k])) {
|
|
||||||
result.push(encodeValue(operator, value[k], k));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
const tmp = [];
|
|
||||||
if (Array.isArray(value)) {
|
|
||||||
value.filter(isDefined).forEach(function(value2) {
|
|
||||||
tmp.push(encodeValue(operator, value2));
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
Object.keys(value).forEach(function(k) {
|
|
||||||
if (isDefined(value[k])) {
|
|
||||||
tmp.push(encodeUnreserved(k));
|
|
||||||
tmp.push(encodeValue(operator, value[k].toString()));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (isKeyOperator(operator)) {
|
|
||||||
result.push(encodeUnreserved(key) + "=" + tmp.join(","));
|
|
||||||
} else if (tmp.length !== 0) {
|
|
||||||
result.push(tmp.join(","));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (operator === ";") {
|
|
||||||
if (isDefined(value)) {
|
|
||||||
result.push(encodeUnreserved(key));
|
|
||||||
}
|
|
||||||
} else if (value === "" && (operator === "&" || operator === "?")) {
|
|
||||||
result.push(encodeUnreserved(key) + "=");
|
|
||||||
} else if (value === "") {
|
|
||||||
result.push("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
function parseUrl(template) {
|
|
||||||
return {
|
|
||||||
expand: expand.bind(null, template)
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function expand(template, context) {
|
|
||||||
var operators = ["+", "#", ".", "/", ";", "?", "&"];
|
|
||||||
template = template.replace(
|
|
||||||
/\{([^\{\}]+)\}|([^\{\}]+)/g,
|
|
||||||
function(_, expression, literal) {
|
|
||||||
if (expression) {
|
|
||||||
let operator = "";
|
|
||||||
const values = [];
|
|
||||||
if (operators.indexOf(expression.charAt(0)) !== -1) {
|
|
||||||
operator = expression.charAt(0);
|
|
||||||
expression = expression.substr(1);
|
|
||||||
}
|
|
||||||
expression.split(/,/g).forEach(function(variable) {
|
|
||||||
var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable);
|
|
||||||
values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));
|
|
||||||
});
|
|
||||||
if (operator && operator !== "+") {
|
|
||||||
var separator = ",";
|
|
||||||
if (operator === "?") {
|
|
||||||
separator = "&";
|
|
||||||
} else if (operator !== "#") {
|
|
||||||
separator = operator;
|
|
||||||
}
|
|
||||||
return (values.length !== 0 ? operator : "") + values.join(separator);
|
|
||||||
} else {
|
|
||||||
return values.join(",");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return encodeReserved(literal);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
if (template === "/") {
|
|
||||||
return template;
|
|
||||||
} else {
|
|
||||||
return template.replace(/\/$/, "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/parse.js
|
|
||||||
function parse(options) {
|
|
||||||
let method = options.method.toUpperCase();
|
|
||||||
let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}");
|
|
||||||
let headers = Object.assign({}, options.headers);
|
|
||||||
let body;
|
|
||||||
let parameters = omit(options, [
|
|
||||||
"method",
|
|
||||||
"baseUrl",
|
|
||||||
"url",
|
|
||||||
"headers",
|
|
||||||
"request",
|
|
||||||
"mediaType"
|
|
||||||
]);
|
|
||||||
const urlVariableNames = extractUrlVariableNames(url);
|
|
||||||
url = parseUrl(url).expand(parameters);
|
|
||||||
if (!/^http/.test(url)) {
|
|
||||||
url = options.baseUrl + url;
|
|
||||||
}
|
|
||||||
const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl");
|
|
||||||
const remainingParameters = omit(parameters, omittedParameters);
|
|
||||||
const isBinaryRequest = /application\/octet-stream/i.test(headers.accept);
|
|
||||||
if (!isBinaryRequest) {
|
|
||||||
if (options.mediaType.format) {
|
|
||||||
headers.accept = headers.accept.split(/,/).map(
|
|
||||||
(format) => format.replace(
|
|
||||||
/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,
|
|
||||||
`application/vnd$1$2.${options.mediaType.format}`
|
|
||||||
)
|
|
||||||
).join(",");
|
|
||||||
}
|
|
||||||
if (url.endsWith("/graphql")) {
|
|
||||||
if (options.mediaType.previews?.length) {
|
|
||||||
const previewsFromAcceptHeader = headers.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g) || [];
|
|
||||||
headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => {
|
|
||||||
const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json";
|
|
||||||
return `application/vnd.github.${preview}-preview${format}`;
|
|
||||||
}).join(",");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (["GET", "HEAD"].includes(method)) {
|
|
||||||
url = addQueryParameters(url, remainingParameters);
|
|
||||||
} else {
|
|
||||||
if ("data" in remainingParameters) {
|
|
||||||
body = remainingParameters.data;
|
|
||||||
} else {
|
|
||||||
if (Object.keys(remainingParameters).length) {
|
|
||||||
body = remainingParameters;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!headers["content-type"] && typeof body !== "undefined") {
|
|
||||||
headers["content-type"] = "application/json; charset=utf-8";
|
|
||||||
}
|
|
||||||
if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") {
|
|
||||||
body = "";
|
|
||||||
}
|
|
||||||
return Object.assign(
|
|
||||||
{ method, url, headers },
|
|
||||||
typeof body !== "undefined" ? { body } : null,
|
|
||||||
options.request ? { request: options.request } : null
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/endpoint-with-defaults.js
|
|
||||||
function endpointWithDefaults(defaults, route, options) {
|
|
||||||
return parse(merge(defaults, route, options));
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/with-defaults.js
|
|
||||||
function withDefaults(oldDefaults, newDefaults) {
|
|
||||||
const DEFAULTS2 = merge(oldDefaults, newDefaults);
|
|
||||||
const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2);
|
|
||||||
return Object.assign(endpoint2, {
|
|
||||||
DEFAULTS: DEFAULTS2,
|
|
||||||
defaults: withDefaults.bind(null, DEFAULTS2),
|
|
||||||
merge: merge.bind(null, DEFAULTS2),
|
|
||||||
parse
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/index.js
|
|
||||||
var endpoint = withDefaults(null, DEFAULTS);
|
|
||||||
|
|
||||||
|
|
||||||
// EXTERNAL MODULE: ./node_modules/fast-content-type-parse/index.js
|
|
||||||
var fast_content_type_parse = __nccwpck_require__(1120);
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/request-error/dist-src/index.js
|
|
||||||
class RequestError extends Error {
|
|
||||||
name;
|
|
||||||
/**
|
|
||||||
* http status code
|
|
||||||
*/
|
|
||||||
status;
|
|
||||||
/**
|
|
||||||
* Request options that lead to the error.
|
|
||||||
*/
|
|
||||||
request;
|
|
||||||
/**
|
|
||||||
* Response object if a response was received
|
|
||||||
*/
|
|
||||||
response;
|
|
||||||
constructor(message, statusCode, options) {
|
|
||||||
super(message, { cause: options.cause });
|
|
||||||
this.name = "HttpError";
|
|
||||||
this.status = Number.parseInt(statusCode);
|
|
||||||
if (Number.isNaN(this.status)) {
|
|
||||||
this.status = 0;
|
|
||||||
}
|
|
||||||
/* v8 ignore else -- @preserve -- Bug with vitest coverage where it sees an else branch that doesn't exist */
|
|
||||||
if ("response" in options) {
|
|
||||||
this.response = options.response;
|
|
||||||
}
|
|
||||||
const requestCopy = Object.assign({}, options.request);
|
|
||||||
if (options.request.headers.authorization) {
|
|
||||||
requestCopy.headers = Object.assign({}, options.request.headers, {
|
|
||||||
authorization: options.request.headers.authorization.replace(
|
|
||||||
/(?<! ) .*$/,
|
|
||||||
" [REDACTED]"
|
|
||||||
)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
requestCopy.url = requestCopy.url.replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]").replace(/\baccess_token=\w+/g, "access_token=[REDACTED]");
|
|
||||||
this.request = requestCopy;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/request/dist-bundle/index.js
|
|
||||||
// pkg/dist-src/index.js
|
|
||||||
|
|
||||||
|
|
||||||
// pkg/dist-src/defaults.js
|
|
||||||
|
|
||||||
|
|
||||||
// pkg/dist-src/version.js
|
|
||||||
var dist_bundle_VERSION = "10.0.7";
|
|
||||||
|
|
||||||
// pkg/dist-src/defaults.js
|
|
||||||
var defaults_default = {
|
|
||||||
headers: {
|
|
||||||
"user-agent": `octokit-request.js/${dist_bundle_VERSION} ${getUserAgent()}`
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// pkg/dist-src/fetch-wrapper.js
|
|
||||||
|
|
||||||
|
|
||||||
// pkg/dist-src/is-plain-object.js
|
|
||||||
function dist_bundle_isPlainObject(value) {
|
|
||||||
if (typeof value !== "object" || value === null) return false;
|
|
||||||
if (Object.prototype.toString.call(value) !== "[object Object]") return false;
|
|
||||||
const proto = Object.getPrototypeOf(value);
|
|
||||||
if (proto === null) return true;
|
|
||||||
const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor;
|
|
||||||
return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/fetch-wrapper.js
|
|
||||||
|
|
||||||
var noop = () => "";
|
|
||||||
async function fetchWrapper(requestOptions) {
|
|
||||||
const fetch = requestOptions.request?.fetch || globalThis.fetch;
|
|
||||||
if (!fetch) {
|
|
||||||
throw new Error(
|
|
||||||
"fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
const log = requestOptions.request?.log || console;
|
|
||||||
const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false;
|
|
||||||
const body = dist_bundle_isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body) ? JSON.stringify(requestOptions.body) : requestOptions.body;
|
|
||||||
const requestHeaders = Object.fromEntries(
|
|
||||||
Object.entries(requestOptions.headers).map(([name, value]) => [
|
|
||||||
name,
|
|
||||||
String(value)
|
|
||||||
])
|
|
||||||
);
|
|
||||||
let fetchResponse;
|
|
||||||
try {
|
|
||||||
fetchResponse = await fetch(requestOptions.url, {
|
|
||||||
method: requestOptions.method,
|
|
||||||
body,
|
|
||||||
redirect: requestOptions.request?.redirect,
|
|
||||||
headers: requestHeaders,
|
|
||||||
signal: requestOptions.request?.signal,
|
|
||||||
// duplex must be set if request.body is ReadableStream or Async Iterables.
|
|
||||||
// See https://fetch.spec.whatwg.org/#dom-requestinit-duplex.
|
|
||||||
...requestOptions.body && { duplex: "half" }
|
|
||||||
});
|
|
||||||
} catch (error) {
|
|
||||||
let message = "Unknown Error";
|
|
||||||
if (error instanceof Error) {
|
|
||||||
if (error.name === "AbortError") {
|
|
||||||
error.status = 500;
|
|
||||||
throw error;
|
|
||||||
}
|
|
||||||
message = error.message;
|
|
||||||
if (error.name === "TypeError" && "cause" in error) {
|
|
||||||
if (error.cause instanceof Error) {
|
|
||||||
message = error.cause.message;
|
|
||||||
} else if (typeof error.cause === "string") {
|
|
||||||
message = error.cause;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const requestError = new RequestError(message, 500, {
|
|
||||||
request: requestOptions
|
|
||||||
});
|
|
||||||
requestError.cause = error;
|
|
||||||
throw requestError;
|
|
||||||
}
|
|
||||||
const status = fetchResponse.status;
|
|
||||||
const url = fetchResponse.url;
|
|
||||||
const responseHeaders = {};
|
|
||||||
for (const [key, value] of fetchResponse.headers) {
|
|
||||||
responseHeaders[key] = value;
|
|
||||||
}
|
|
||||||
const octokitResponse = {
|
|
||||||
url,
|
|
||||||
status,
|
|
||||||
headers: responseHeaders,
|
|
||||||
data: ""
|
|
||||||
};
|
|
||||||
if ("deprecation" in responseHeaders) {
|
|
||||||
const matches = responseHeaders.link && responseHeaders.link.match(/<([^<>]+)>; rel="deprecation"/);
|
|
||||||
const deprecationLink = matches && matches.pop();
|
|
||||||
log.warn(
|
|
||||||
`[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${responseHeaders.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (status === 204 || status === 205) {
|
|
||||||
return octokitResponse;
|
|
||||||
}
|
|
||||||
if (requestOptions.method === "HEAD") {
|
|
||||||
if (status < 400) {
|
|
||||||
return octokitResponse;
|
|
||||||
}
|
|
||||||
throw new RequestError(fetchResponse.statusText, status, {
|
|
||||||
response: octokitResponse,
|
|
||||||
request: requestOptions
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (status === 304) {
|
|
||||||
octokitResponse.data = await getResponseData(fetchResponse);
|
|
||||||
throw new RequestError("Not modified", status, {
|
|
||||||
response: octokitResponse,
|
|
||||||
request: requestOptions
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (status >= 400) {
|
|
||||||
octokitResponse.data = await getResponseData(fetchResponse);
|
|
||||||
throw new RequestError(toErrorMessage(octokitResponse.data), status, {
|
|
||||||
response: octokitResponse,
|
|
||||||
request: requestOptions
|
|
||||||
});
|
|
||||||
}
|
|
||||||
octokitResponse.data = parseSuccessResponseBody ? await getResponseData(fetchResponse) : fetchResponse.body;
|
|
||||||
return octokitResponse;
|
|
||||||
}
|
|
||||||
async function getResponseData(response) {
|
|
||||||
const contentType = response.headers.get("content-type");
|
|
||||||
if (!contentType) {
|
|
||||||
return response.text().catch(noop);
|
|
||||||
}
|
|
||||||
const mimetype = (0,fast_content_type_parse/* safeParse */.xL)(contentType);
|
|
||||||
if (isJSONResponse(mimetype)) {
|
|
||||||
let text = "";
|
|
||||||
try {
|
|
||||||
text = await response.text();
|
|
||||||
return JSON.parse(text);
|
|
||||||
} catch (err) {
|
|
||||||
return text;
|
|
||||||
}
|
|
||||||
} else if (mimetype.type.startsWith("text/") || mimetype.parameters.charset?.toLowerCase() === "utf-8") {
|
|
||||||
return response.text().catch(noop);
|
|
||||||
} else {
|
|
||||||
return response.arrayBuffer().catch(
|
|
||||||
/* v8 ignore next -- @preserve */
|
|
||||||
() => new ArrayBuffer(0)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function isJSONResponse(mimetype) {
|
|
||||||
return mimetype.type === "application/json" || mimetype.type === "application/scim+json";
|
|
||||||
}
|
|
||||||
function toErrorMessage(data) {
|
|
||||||
if (typeof data === "string") {
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
if (data instanceof ArrayBuffer) {
|
|
||||||
return "Unknown error";
|
|
||||||
}
|
|
||||||
if ("message" in data) {
|
|
||||||
const suffix = "documentation_url" in data ? ` - ${data.documentation_url}` : "";
|
|
||||||
return Array.isArray(data.errors) ? `${data.message}: ${data.errors.map((v) => JSON.stringify(v)).join(", ")}${suffix}` : `${data.message}${suffix}`;
|
|
||||||
}
|
|
||||||
return `Unknown error: ${JSON.stringify(data)}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/with-defaults.js
|
|
||||||
function dist_bundle_withDefaults(oldEndpoint, newDefaults) {
|
|
||||||
const endpoint2 = oldEndpoint.defaults(newDefaults);
|
|
||||||
const newApi = function(route, parameters) {
|
|
||||||
const endpointOptions = endpoint2.merge(route, parameters);
|
|
||||||
if (!endpointOptions.request || !endpointOptions.request.hook) {
|
|
||||||
return fetchWrapper(endpoint2.parse(endpointOptions));
|
|
||||||
}
|
|
||||||
const request2 = (route2, parameters2) => {
|
|
||||||
return fetchWrapper(
|
|
||||||
endpoint2.parse(endpoint2.merge(route2, parameters2))
|
|
||||||
);
|
|
||||||
};
|
|
||||||
Object.assign(request2, {
|
|
||||||
endpoint: endpoint2,
|
|
||||||
defaults: dist_bundle_withDefaults.bind(null, endpoint2)
|
|
||||||
});
|
|
||||||
return endpointOptions.request.hook(request2, endpointOptions);
|
|
||||||
};
|
|
||||||
return Object.assign(newApi, {
|
|
||||||
endpoint: endpoint2,
|
|
||||||
defaults: dist_bundle_withDefaults.bind(null, endpoint2)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/index.js
|
|
||||||
var request = dist_bundle_withDefaults(endpoint, defaults_default);
|
|
||||||
|
|
||||||
/* v8 ignore next -- @preserve */
|
|
||||||
/* v8 ignore else -- @preserve */
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/graphql/dist-bundle/index.js
|
|
||||||
// pkg/dist-src/index.js
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// pkg/dist-src/version.js
|
|
||||||
var graphql_dist_bundle_VERSION = "0.0.0-development";
|
|
||||||
|
|
||||||
// pkg/dist-src/with-defaults.js
|
|
||||||
|
|
||||||
|
|
||||||
// pkg/dist-src/graphql.js
|
|
||||||
|
|
||||||
|
|
||||||
// pkg/dist-src/error.js
|
|
||||||
function _buildMessageForResponseErrors(data) {
|
|
||||||
return `Request failed due to following response errors:
|
|
||||||
` + data.errors.map((e) => ` - ${e.message}`).join("\n");
|
|
||||||
}
|
|
||||||
var GraphqlResponseError = class extends Error {
|
|
||||||
constructor(request2, headers, response) {
|
|
||||||
super(_buildMessageForResponseErrors(response));
|
|
||||||
this.request = request2;
|
|
||||||
this.headers = headers;
|
|
||||||
this.response = response;
|
|
||||||
this.errors = response.errors;
|
|
||||||
this.data = response.data;
|
|
||||||
if (Error.captureStackTrace) {
|
|
||||||
Error.captureStackTrace(this, this.constructor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
name = "GraphqlResponseError";
|
|
||||||
errors;
|
|
||||||
data;
|
|
||||||
};
|
|
||||||
|
|
||||||
// pkg/dist-src/graphql.js
|
|
||||||
var NON_VARIABLE_OPTIONS = [
|
|
||||||
"method",
|
|
||||||
"baseUrl",
|
|
||||||
"url",
|
|
||||||
"headers",
|
|
||||||
"request",
|
|
||||||
"query",
|
|
||||||
"mediaType",
|
|
||||||
"operationName"
|
|
||||||
];
|
|
||||||
var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"];
|
|
||||||
var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/;
|
|
||||||
function graphql(request2, query, options) {
|
|
||||||
if (options) {
|
|
||||||
if (typeof query === "string" && "query" in options) {
|
|
||||||
return Promise.reject(
|
|
||||||
new Error(`[@octokit/graphql] "query" cannot be used as variable name`)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
for (const key in options) {
|
|
||||||
if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;
|
|
||||||
return Promise.reject(
|
|
||||||
new Error(
|
|
||||||
`[@octokit/graphql] "${key}" cannot be used as variable name`
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query;
|
|
||||||
const requestOptions = Object.keys(
|
|
||||||
parsedOptions
|
|
||||||
).reduce((result, key) => {
|
|
||||||
if (NON_VARIABLE_OPTIONS.includes(key)) {
|
|
||||||
result[key] = parsedOptions[key];
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
if (!result.variables) {
|
|
||||||
result.variables = {};
|
|
||||||
}
|
|
||||||
result.variables[key] = parsedOptions[key];
|
|
||||||
return result;
|
|
||||||
}, {});
|
|
||||||
const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl;
|
|
||||||
if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {
|
|
||||||
requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql");
|
|
||||||
}
|
|
||||||
return request2(requestOptions).then((response) => {
|
|
||||||
if (response.data.errors) {
|
|
||||||
const headers = {};
|
|
||||||
for (const key of Object.keys(response.headers)) {
|
|
||||||
headers[key] = response.headers[key];
|
|
||||||
}
|
|
||||||
throw new GraphqlResponseError(
|
|
||||||
requestOptions,
|
|
||||||
headers,
|
|
||||||
response.data
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return response.data.data;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/with-defaults.js
|
|
||||||
function graphql_dist_bundle_withDefaults(request2, newDefaults) {
|
|
||||||
const newRequest = request2.defaults(newDefaults);
|
|
||||||
const newApi = (query, options) => {
|
|
||||||
return graphql(newRequest, query, options);
|
|
||||||
};
|
|
||||||
return Object.assign(newApi, {
|
|
||||||
defaults: graphql_dist_bundle_withDefaults.bind(null, newRequest),
|
|
||||||
endpoint: newRequest.endpoint
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/index.js
|
|
||||||
var graphql2 = graphql_dist_bundle_withDefaults(request, {
|
|
||||||
headers: {
|
|
||||||
"user-agent": `octokit-graphql.js/${graphql_dist_bundle_VERSION} ${getUserAgent()}`
|
|
||||||
},
|
|
||||||
method: "POST",
|
|
||||||
url: "/graphql"
|
|
||||||
});
|
|
||||||
function withCustomRequest(customRequest) {
|
|
||||||
return graphql_dist_bundle_withDefaults(customRequest, {
|
|
||||||
method: "POST",
|
|
||||||
url: "/graphql"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/auth-token/dist-bundle/index.js
|
|
||||||
// pkg/dist-src/is-jwt.js
|
|
||||||
var b64url = "(?:[a-zA-Z0-9_-]+)";
|
|
||||||
var sep = "\\.";
|
|
||||||
var jwtRE = new RegExp(`^${b64url}${sep}${b64url}${sep}${b64url}$`);
|
|
||||||
var isJWT = jwtRE.test.bind(jwtRE);
|
|
||||||
|
|
||||||
// pkg/dist-src/auth.js
|
|
||||||
async function auth(token) {
|
|
||||||
const isApp = isJWT(token);
|
|
||||||
const isInstallation = token.startsWith("v1.") || token.startsWith("ghs_");
|
|
||||||
const isUserToServer = token.startsWith("ghu_");
|
|
||||||
const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth";
|
|
||||||
return {
|
|
||||||
type: "token",
|
|
||||||
token,
|
|
||||||
tokenType
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/with-authorization-prefix.js
|
|
||||||
function withAuthorizationPrefix(token) {
|
|
||||||
if (token.split(/\./).length === 3) {
|
|
||||||
return `bearer ${token}`;
|
|
||||||
}
|
|
||||||
return `token ${token}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/hook.js
|
|
||||||
async function hook(token, request, route, parameters) {
|
|
||||||
const endpoint = request.endpoint.merge(
|
|
||||||
route,
|
|
||||||
parameters
|
|
||||||
);
|
|
||||||
endpoint.headers.authorization = withAuthorizationPrefix(token);
|
|
||||||
return request(endpoint);
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/index.js
|
|
||||||
var createTokenAuth = function createTokenAuth2(token) {
|
|
||||||
if (!token) {
|
|
||||||
throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");
|
|
||||||
}
|
|
||||||
if (typeof token !== "string") {
|
|
||||||
throw new Error(
|
|
||||||
"[@octokit/auth-token] Token passed to createTokenAuth is not a string"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
token = token.replace(/^(token|bearer) +/i, "");
|
|
||||||
return Object.assign(auth.bind(null, token), {
|
|
||||||
hook: hook.bind(null, token)
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/core/dist-src/version.js
|
|
||||||
const version_VERSION = "7.0.6";
|
|
||||||
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/core/dist-src/index.js
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const dist_src_noop = () => {
|
|
||||||
};
|
|
||||||
const consoleWarn = console.warn.bind(console);
|
|
||||||
const consoleError = console.error.bind(console);
|
|
||||||
function createLogger(logger = {}) {
|
|
||||||
if (typeof logger.debug !== "function") {
|
|
||||||
logger.debug = dist_src_noop;
|
|
||||||
}
|
|
||||||
if (typeof logger.info !== "function") {
|
|
||||||
logger.info = dist_src_noop;
|
|
||||||
}
|
|
||||||
if (typeof logger.warn !== "function") {
|
|
||||||
logger.warn = consoleWarn;
|
|
||||||
}
|
|
||||||
if (typeof logger.error !== "function") {
|
|
||||||
logger.error = consoleError;
|
|
||||||
}
|
|
||||||
return logger;
|
|
||||||
}
|
|
||||||
const userAgentTrail = `octokit-core.js/${version_VERSION} ${getUserAgent()}`;
|
|
||||||
class Octokit {
|
|
||||||
static VERSION = version_VERSION;
|
|
||||||
static defaults(defaults) {
|
|
||||||
const OctokitWithDefaults = class extends this {
|
|
||||||
constructor(...args) {
|
|
||||||
const options = args[0] || {};
|
|
||||||
if (typeof defaults === "function") {
|
|
||||||
super(defaults(options));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
super(
|
|
||||||
Object.assign(
|
|
||||||
{},
|
|
||||||
defaults,
|
|
||||||
options,
|
|
||||||
options.userAgent && defaults.userAgent ? {
|
|
||||||
userAgent: `${options.userAgent} ${defaults.userAgent}`
|
|
||||||
} : null
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return OctokitWithDefaults;
|
|
||||||
}
|
|
||||||
static plugins = [];
|
|
||||||
/**
|
|
||||||
* Attach a plugin (or many) to your Octokit instance.
|
|
||||||
*
|
|
||||||
* @example
|
|
||||||
* const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)
|
|
||||||
*/
|
|
||||||
static plugin(...newPlugins) {
|
|
||||||
const currentPlugins = this.plugins;
|
|
||||||
const NewOctokit = class extends this {
|
|
||||||
static plugins = currentPlugins.concat(
|
|
||||||
newPlugins.filter((plugin) => !currentPlugins.includes(plugin))
|
|
||||||
);
|
|
||||||
};
|
|
||||||
return NewOctokit;
|
|
||||||
}
|
|
||||||
constructor(options = {}) {
|
|
||||||
const hook = new before_after_hook.Collection();
|
|
||||||
const requestDefaults = {
|
|
||||||
baseUrl: request.endpoint.DEFAULTS.baseUrl,
|
|
||||||
headers: {},
|
|
||||||
request: Object.assign({}, options.request, {
|
|
||||||
// @ts-ignore internal usage only, no need to type
|
|
||||||
hook: hook.bind(null, "request")
|
|
||||||
}),
|
|
||||||
mediaType: {
|
|
||||||
previews: [],
|
|
||||||
format: ""
|
|
||||||
}
|
|
||||||
};
|
|
||||||
requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail;
|
|
||||||
if (options.baseUrl) {
|
|
||||||
requestDefaults.baseUrl = options.baseUrl;
|
|
||||||
}
|
|
||||||
if (options.previews) {
|
|
||||||
requestDefaults.mediaType.previews = options.previews;
|
|
||||||
}
|
|
||||||
if (options.timeZone) {
|
|
||||||
requestDefaults.headers["time-zone"] = options.timeZone;
|
|
||||||
}
|
|
||||||
this.request = request.defaults(requestDefaults);
|
|
||||||
this.graphql = withCustomRequest(this.request).defaults(requestDefaults);
|
|
||||||
this.log = createLogger(options.log);
|
|
||||||
this.hook = hook;
|
|
||||||
if (!options.authStrategy) {
|
|
||||||
if (!options.auth) {
|
|
||||||
this.auth = async () => ({
|
|
||||||
type: "unauthenticated"
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
const auth = createTokenAuth(options.auth);
|
|
||||||
hook.wrap("request", auth.hook);
|
|
||||||
this.auth = auth;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
const { authStrategy, ...otherOptions } = options;
|
|
||||||
const auth = authStrategy(
|
|
||||||
Object.assign(
|
|
||||||
{
|
|
||||||
request: this.request,
|
|
||||||
log: this.log,
|
|
||||||
// we pass the current octokit instance as well as its constructor options
|
|
||||||
// to allow for authentication strategies that return a new octokit instance
|
|
||||||
// that shares the same internal state as the current one. The original
|
|
||||||
// requirement for this was the "event-octokit" authentication strategy
|
|
||||||
// of https://github.com/probot/octokit-auth-probot.
|
|
||||||
octokit: this,
|
|
||||||
octokitOptions: otherOptions
|
|
||||||
},
|
|
||||||
options.auth
|
|
||||||
)
|
|
||||||
);
|
|
||||||
hook.wrap("request", auth.hook);
|
|
||||||
this.auth = auth;
|
|
||||||
}
|
|
||||||
const classConstructor = this.constructor;
|
|
||||||
for (let i = 0; i < classConstructor.plugins.length; ++i) {
|
|
||||||
Object.assign(this, classConstructor.plugins[i](this, options));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// assigned during constructor
|
|
||||||
request;
|
|
||||||
graphql;
|
|
||||||
log;
|
|
||||||
hook;
|
|
||||||
// TODO: type `octokit.auth` based on passed options.authStrategy
|
|
||||||
auth;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 3779:
|
|
||||||
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
__nccwpck_require__.r(__webpack_exports__);
|
|
||||||
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
||||||
/* harmony export */ composePaginateRest: () => (/* binding */ composePaginateRest),
|
|
||||||
/* harmony export */ isPaginatingEndpoint: () => (/* binding */ isPaginatingEndpoint),
|
|
||||||
/* harmony export */ paginateRest: () => (/* binding */ paginateRest),
|
|
||||||
/* harmony export */ paginatingEndpoints: () => (/* binding */ paginatingEndpoints)
|
|
||||||
/* harmony export */ });
|
|
||||||
// pkg/dist-src/version.js
|
|
||||||
var VERSION = "0.0.0-development";
|
|
||||||
|
|
||||||
// pkg/dist-src/normalize-paginated-list-response.js
|
|
||||||
function normalizePaginatedListResponse(response) {
|
|
||||||
if (!response.data) {
|
|
||||||
return {
|
|
||||||
...response,
|
|
||||||
data: []
|
|
||||||
};
|
|
||||||
}
|
|
||||||
const responseNeedsNormalization = ("total_count" in response.data || "total_commits" in response.data) && !("url" in response.data);
|
|
||||||
if (!responseNeedsNormalization) return response;
|
|
||||||
const incompleteResults = response.data.incomplete_results;
|
|
||||||
const repositorySelection = response.data.repository_selection;
|
|
||||||
const totalCount = response.data.total_count;
|
|
||||||
const totalCommits = response.data.total_commits;
|
|
||||||
delete response.data.incomplete_results;
|
|
||||||
delete response.data.repository_selection;
|
|
||||||
delete response.data.total_count;
|
|
||||||
delete response.data.total_commits;
|
|
||||||
const namespaceKey = Object.keys(response.data)[0];
|
|
||||||
const data = response.data[namespaceKey];
|
|
||||||
response.data = data;
|
|
||||||
if (typeof incompleteResults !== "undefined") {
|
|
||||||
response.data.incomplete_results = incompleteResults;
|
|
||||||
}
|
|
||||||
if (typeof repositorySelection !== "undefined") {
|
|
||||||
response.data.repository_selection = repositorySelection;
|
|
||||||
}
|
|
||||||
response.data.total_count = totalCount;
|
|
||||||
response.data.total_commits = totalCommits;
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/iterator.js
|
|
||||||
function iterator(octokit, route, parameters) {
|
|
||||||
const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);
|
|
||||||
const requestMethod = typeof route === "function" ? route : octokit.request;
|
|
||||||
const method = options.method;
|
|
||||||
const headers = options.headers;
|
|
||||||
let url = options.url;
|
|
||||||
return {
|
|
||||||
[Symbol.asyncIterator]: () => ({
|
|
||||||
async next() {
|
|
||||||
if (!url) return { done: true };
|
|
||||||
try {
|
|
||||||
const response = await requestMethod({ method, url, headers });
|
|
||||||
const normalizedResponse = normalizePaginatedListResponse(response);
|
|
||||||
url = ((normalizedResponse.headers.link || "").match(
|
|
||||||
/<([^<>]+)>;\s*rel="next"/
|
|
||||||
) || [])[1];
|
|
||||||
if (!url && "total_commits" in normalizedResponse.data) {
|
|
||||||
const parsedUrl = new URL(normalizedResponse.url);
|
|
||||||
const params = parsedUrl.searchParams;
|
|
||||||
const page = parseInt(params.get("page") || "1", 10);
|
|
||||||
const per_page = parseInt(params.get("per_page") || "250", 10);
|
|
||||||
if (page * per_page < normalizedResponse.data.total_commits) {
|
|
||||||
params.set("page", String(page + 1));
|
|
||||||
url = parsedUrl.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return { value: normalizedResponse };
|
|
||||||
} catch (error) {
|
|
||||||
if (error.status !== 409) throw error;
|
|
||||||
url = "";
|
|
||||||
return {
|
|
||||||
value: {
|
|
||||||
status: 200,
|
|
||||||
headers: {},
|
|
||||||
data: []
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/paginate.js
|
|
||||||
function paginate(octokit, route, parameters, mapFn) {
|
|
||||||
if (typeof parameters === "function") {
|
|
||||||
mapFn = parameters;
|
|
||||||
parameters = void 0;
|
|
||||||
}
|
|
||||||
return gather(
|
|
||||||
octokit,
|
|
||||||
[],
|
|
||||||
iterator(octokit, route, parameters)[Symbol.asyncIterator](),
|
|
||||||
mapFn
|
|
||||||
);
|
|
||||||
}
|
|
||||||
function gather(octokit, results, iterator2, mapFn) {
|
|
||||||
return iterator2.next().then((result) => {
|
|
||||||
if (result.done) {
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
let earlyExit = false;
|
|
||||||
function done() {
|
|
||||||
earlyExit = true;
|
|
||||||
}
|
|
||||||
results = results.concat(
|
|
||||||
mapFn ? mapFn(result.value, done) : result.value.data
|
|
||||||
);
|
|
||||||
if (earlyExit) {
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
return gather(octokit, results, iterator2, mapFn);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/compose-paginate.js
|
|
||||||
var composePaginateRest = Object.assign(paginate, {
|
|
||||||
iterator
|
|
||||||
});
|
|
||||||
|
|
||||||
// pkg/dist-src/generated/paginating-endpoints.js
|
|
||||||
var paginatingEndpoints = [
|
|
||||||
"GET /advisories",
|
|
||||||
"GET /app/hook/deliveries",
|
|
||||||
"GET /app/installation-requests",
|
|
||||||
"GET /app/installations",
|
|
||||||
"GET /assignments/{assignment_id}/accepted_assignments",
|
|
||||||
"GET /classrooms",
|
|
||||||
"GET /classrooms/{classroom_id}/assignments",
|
|
||||||
"GET /enterprises/{enterprise}/code-security/configurations",
|
|
||||||
"GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories",
|
|
||||||
"GET /enterprises/{enterprise}/dependabot/alerts",
|
|
||||||
"GET /enterprises/{enterprise}/teams",
|
|
||||||
"GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships",
|
|
||||||
"GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations",
|
|
||||||
"GET /events",
|
|
||||||
"GET /gists",
|
|
||||||
"GET /gists/public",
|
|
||||||
"GET /gists/starred",
|
|
||||||
"GET /gists/{gist_id}/comments",
|
|
||||||
"GET /gists/{gist_id}/commits",
|
|
||||||
"GET /gists/{gist_id}/forks",
|
|
||||||
"GET /installation/repositories",
|
|
||||||
"GET /issues",
|
|
||||||
"GET /licenses",
|
|
||||||
"GET /marketplace_listing/plans",
|
|
||||||
"GET /marketplace_listing/plans/{plan_id}/accounts",
|
|
||||||
"GET /marketplace_listing/stubbed/plans",
|
|
||||||
"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts",
|
|
||||||
"GET /networks/{owner}/{repo}/events",
|
|
||||||
"GET /notifications",
|
|
||||||
"GET /organizations",
|
|
||||||
"GET /organizations/{org}/dependabot/repository-access",
|
|
||||||
"GET /orgs/{org}/actions/cache/usage-by-repository",
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners",
|
|
||||||
"GET /orgs/{org}/actions/permissions/repositories",
|
|
||||||
"GET /orgs/{org}/actions/permissions/self-hosted-runners/repositories",
|
|
||||||
"GET /orgs/{org}/actions/runner-groups",
|
|
||||||
"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners",
|
|
||||||
"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories",
|
|
||||||
"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners",
|
|
||||||
"GET /orgs/{org}/actions/runners",
|
|
||||||
"GET /orgs/{org}/actions/secrets",
|
|
||||||
"GET /orgs/{org}/actions/secrets/{secret_name}/repositories",
|
|
||||||
"GET /orgs/{org}/actions/variables",
|
|
||||||
"GET /orgs/{org}/actions/variables/{name}/repositories",
|
|
||||||
"GET /orgs/{org}/attestations/repositories",
|
|
||||||
"GET /orgs/{org}/attestations/{subject_digest}",
|
|
||||||
"GET /orgs/{org}/blocks",
|
|
||||||
"GET /orgs/{org}/campaigns",
|
|
||||||
"GET /orgs/{org}/code-scanning/alerts",
|
|
||||||
"GET /orgs/{org}/code-security/configurations",
|
|
||||||
"GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories",
|
|
||||||
"GET /orgs/{org}/codespaces",
|
|
||||||
"GET /orgs/{org}/codespaces/secrets",
|
|
||||||
"GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories",
|
|
||||||
"GET /orgs/{org}/copilot/billing/seats",
|
|
||||||
"GET /orgs/{org}/copilot/metrics",
|
|
||||||
"GET /orgs/{org}/dependabot/alerts",
|
|
||||||
"GET /orgs/{org}/dependabot/secrets",
|
|
||||||
"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories",
|
|
||||||
"GET /orgs/{org}/events",
|
|
||||||
"GET /orgs/{org}/failed_invitations",
|
|
||||||
"GET /orgs/{org}/hooks",
|
|
||||||
"GET /orgs/{org}/hooks/{hook_id}/deliveries",
|
|
||||||
"GET /orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}",
|
|
||||||
"GET /orgs/{org}/insights/api/subject-stats",
|
|
||||||
"GET /orgs/{org}/insights/api/user-stats/{user_id}",
|
|
||||||
"GET /orgs/{org}/installations",
|
|
||||||
"GET /orgs/{org}/invitations",
|
|
||||||
"GET /orgs/{org}/invitations/{invitation_id}/teams",
|
|
||||||
"GET /orgs/{org}/issues",
|
|
||||||
"GET /orgs/{org}/members",
|
|
||||||
"GET /orgs/{org}/members/{username}/codespaces",
|
|
||||||
"GET /orgs/{org}/migrations",
|
|
||||||
"GET /orgs/{org}/migrations/{migration_id}/repositories",
|
|
||||||
"GET /orgs/{org}/organization-roles/{role_id}/teams",
|
|
||||||
"GET /orgs/{org}/organization-roles/{role_id}/users",
|
|
||||||
"GET /orgs/{org}/outside_collaborators",
|
|
||||||
"GET /orgs/{org}/packages",
|
|
||||||
"GET /orgs/{org}/packages/{package_type}/{package_name}/versions",
|
|
||||||
"GET /orgs/{org}/personal-access-token-requests",
|
|
||||||
"GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories",
|
|
||||||
"GET /orgs/{org}/personal-access-tokens",
|
|
||||||
"GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories",
|
|
||||||
"GET /orgs/{org}/private-registries",
|
|
||||||
"GET /orgs/{org}/projects",
|
|
||||||
"GET /orgs/{org}/projectsV2",
|
|
||||||
"GET /orgs/{org}/projectsV2/{project_number}/fields",
|
|
||||||
"GET /orgs/{org}/projectsV2/{project_number}/items",
|
|
||||||
"GET /orgs/{org}/properties/values",
|
|
||||||
"GET /orgs/{org}/public_members",
|
|
||||||
"GET /orgs/{org}/repos",
|
|
||||||
"GET /orgs/{org}/rulesets",
|
|
||||||
"GET /orgs/{org}/rulesets/rule-suites",
|
|
||||||
"GET /orgs/{org}/rulesets/{ruleset_id}/history",
|
|
||||||
"GET /orgs/{org}/secret-scanning/alerts",
|
|
||||||
"GET /orgs/{org}/security-advisories",
|
|
||||||
"GET /orgs/{org}/settings/immutable-releases/repositories",
|
|
||||||
"GET /orgs/{org}/settings/network-configurations",
|
|
||||||
"GET /orgs/{org}/team/{team_slug}/copilot/metrics",
|
|
||||||
"GET /orgs/{org}/teams",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/invitations",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/members",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/projects",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/repos",
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/teams",
|
|
||||||
"GET /projects/{project_id}/collaborators",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/artifacts",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/caches",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/organization-secrets",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/organization-variables",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runners",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/secrets",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/variables",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/workflows",
|
|
||||||
"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs",
|
|
||||||
"GET /repos/{owner}/{repo}/activity",
|
|
||||||
"GET /repos/{owner}/{repo}/assignees",
|
|
||||||
"GET /repos/{owner}/{repo}/attestations/{subject_digest}",
|
|
||||||
"GET /repos/{owner}/{repo}/branches",
|
|
||||||
"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations",
|
|
||||||
"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs",
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/alerts",
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/analyses",
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces",
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/devcontainers",
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/secrets",
|
|
||||||
"GET /repos/{owner}/{repo}/collaborators",
|
|
||||||
"GET /repos/{owner}/{repo}/comments",
|
|
||||||
"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions",
|
|
||||||
"GET /repos/{owner}/{repo}/commits",
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments",
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls",
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{ref}/check-runs",
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{ref}/check-suites",
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{ref}/status",
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{ref}/statuses",
|
|
||||||
"GET /repos/{owner}/{repo}/compare/{basehead}",
|
|
||||||
"GET /repos/{owner}/{repo}/compare/{base}...{head}",
|
|
||||||
"GET /repos/{owner}/{repo}/contributors",
|
|
||||||
"GET /repos/{owner}/{repo}/dependabot/alerts",
|
|
||||||
"GET /repos/{owner}/{repo}/dependabot/secrets",
|
|
||||||
"GET /repos/{owner}/{repo}/deployments",
|
|
||||||
"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses",
|
|
||||||
"GET /repos/{owner}/{repo}/environments",
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies",
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps",
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/secrets",
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/variables",
|
|
||||||
"GET /repos/{owner}/{repo}/events",
|
|
||||||
"GET /repos/{owner}/{repo}/forks",
|
|
||||||
"GET /repos/{owner}/{repo}/hooks",
|
|
||||||
"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries",
|
|
||||||
"GET /repos/{owner}/{repo}/invitations",
|
|
||||||
"GET /repos/{owner}/{repo}/issues",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/comments",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/events",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/comments",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/events",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/labels",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues",
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline",
|
|
||||||
"GET /repos/{owner}/{repo}/keys",
|
|
||||||
"GET /repos/{owner}/{repo}/labels",
|
|
||||||
"GET /repos/{owner}/{repo}/milestones",
|
|
||||||
"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels",
|
|
||||||
"GET /repos/{owner}/{repo}/notifications",
|
|
||||||
"GET /repos/{owner}/{repo}/pages/builds",
|
|
||||||
"GET /repos/{owner}/{repo}/projects",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/comments",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/files",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews",
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments",
|
|
||||||
"GET /repos/{owner}/{repo}/releases",
|
|
||||||
"GET /repos/{owner}/{repo}/releases/{release_id}/assets",
|
|
||||||
"GET /repos/{owner}/{repo}/releases/{release_id}/reactions",
|
|
||||||
"GET /repos/{owner}/{repo}/rules/branches/{branch}",
|
|
||||||
"GET /repos/{owner}/{repo}/rulesets",
|
|
||||||
"GET /repos/{owner}/{repo}/rulesets/rule-suites",
|
|
||||||
"GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history",
|
|
||||||
"GET /repos/{owner}/{repo}/secret-scanning/alerts",
|
|
||||||
"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations",
|
|
||||||
"GET /repos/{owner}/{repo}/security-advisories",
|
|
||||||
"GET /repos/{owner}/{repo}/stargazers",
|
|
||||||
"GET /repos/{owner}/{repo}/subscribers",
|
|
||||||
"GET /repos/{owner}/{repo}/tags",
|
|
||||||
"GET /repos/{owner}/{repo}/teams",
|
|
||||||
"GET /repos/{owner}/{repo}/topics",
|
|
||||||
"GET /repositories",
|
|
||||||
"GET /search/code",
|
|
||||||
"GET /search/commits",
|
|
||||||
"GET /search/issues",
|
|
||||||
"GET /search/labels",
|
|
||||||
"GET /search/repositories",
|
|
||||||
"GET /search/topics",
|
|
||||||
"GET /search/users",
|
|
||||||
"GET /teams/{team_id}/discussions",
|
|
||||||
"GET /teams/{team_id}/discussions/{discussion_number}/comments",
|
|
||||||
"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions",
|
|
||||||
"GET /teams/{team_id}/discussions/{discussion_number}/reactions",
|
|
||||||
"GET /teams/{team_id}/invitations",
|
|
||||||
"GET /teams/{team_id}/members",
|
|
||||||
"GET /teams/{team_id}/projects",
|
|
||||||
"GET /teams/{team_id}/repos",
|
|
||||||
"GET /teams/{team_id}/teams",
|
|
||||||
"GET /user/blocks",
|
|
||||||
"GET /user/codespaces",
|
|
||||||
"GET /user/codespaces/secrets",
|
|
||||||
"GET /user/emails",
|
|
||||||
"GET /user/followers",
|
|
||||||
"GET /user/following",
|
|
||||||
"GET /user/gpg_keys",
|
|
||||||
"GET /user/installations",
|
|
||||||
"GET /user/installations/{installation_id}/repositories",
|
|
||||||
"GET /user/issues",
|
|
||||||
"GET /user/keys",
|
|
||||||
"GET /user/marketplace_purchases",
|
|
||||||
"GET /user/marketplace_purchases/stubbed",
|
|
||||||
"GET /user/memberships/orgs",
|
|
||||||
"GET /user/migrations",
|
|
||||||
"GET /user/migrations/{migration_id}/repositories",
|
|
||||||
"GET /user/orgs",
|
|
||||||
"GET /user/packages",
|
|
||||||
"GET /user/packages/{package_type}/{package_name}/versions",
|
|
||||||
"GET /user/public_emails",
|
|
||||||
"GET /user/repos",
|
|
||||||
"GET /user/repository_invitations",
|
|
||||||
"GET /user/social_accounts",
|
|
||||||
"GET /user/ssh_signing_keys",
|
|
||||||
"GET /user/starred",
|
|
||||||
"GET /user/subscriptions",
|
|
||||||
"GET /user/teams",
|
|
||||||
"GET /users",
|
|
||||||
"GET /users/{username}/attestations/{subject_digest}",
|
|
||||||
"GET /users/{username}/events",
|
|
||||||
"GET /users/{username}/events/orgs/{org}",
|
|
||||||
"GET /users/{username}/events/public",
|
|
||||||
"GET /users/{username}/followers",
|
|
||||||
"GET /users/{username}/following",
|
|
||||||
"GET /users/{username}/gists",
|
|
||||||
"GET /users/{username}/gpg_keys",
|
|
||||||
"GET /users/{username}/keys",
|
|
||||||
"GET /users/{username}/orgs",
|
|
||||||
"GET /users/{username}/packages",
|
|
||||||
"GET /users/{username}/projects",
|
|
||||||
"GET /users/{username}/projectsV2",
|
|
||||||
"GET /users/{username}/projectsV2/{project_number}/fields",
|
|
||||||
"GET /users/{username}/projectsV2/{project_number}/items",
|
|
||||||
"GET /users/{username}/received_events",
|
|
||||||
"GET /users/{username}/received_events/public",
|
|
||||||
"GET /users/{username}/repos",
|
|
||||||
"GET /users/{username}/social_accounts",
|
|
||||||
"GET /users/{username}/ssh_signing_keys",
|
|
||||||
"GET /users/{username}/starred",
|
|
||||||
"GET /users/{username}/subscriptions"
|
|
||||||
];
|
|
||||||
|
|
||||||
// pkg/dist-src/paginating-endpoints.js
|
|
||||||
function isPaginatingEndpoint(arg) {
|
|
||||||
if (typeof arg === "string") {
|
|
||||||
return paginatingEndpoints.includes(arg);
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkg/dist-src/index.js
|
|
||||||
function paginateRest(octokit) {
|
|
||||||
return {
|
|
||||||
paginate: Object.assign(paginate.bind(null, octokit), {
|
|
||||||
iterator: iterator.bind(null, octokit)
|
|
||||||
})
|
|
||||||
};
|
|
||||||
}
|
|
||||||
paginateRest.VERSION = VERSION;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 9210:
|
|
||||||
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
// ESM COMPAT FLAG
|
|
||||||
__nccwpck_require__.r(__webpack_exports__);
|
|
||||||
|
|
||||||
// EXPORTS
|
|
||||||
__nccwpck_require__.d(__webpack_exports__, {
|
|
||||||
legacyRestEndpointMethods: () => (/* binding */ legacyRestEndpointMethods),
|
|
||||||
restEndpointMethods: () => (/* binding */ restEndpointMethods)
|
|
||||||
});
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js
|
|
||||||
const VERSION = "17.0.0";
|
|
||||||
|
|
||||||
//# sourceMappingURL=version.js.map
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js
|
|
||||||
const Endpoints = {
|
|
||||||
actions: {
|
|
||||||
addCustomLabelsToSelfHostedRunnerForOrg: [
|
|
||||||
"POST /orgs/{org}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
addCustomLabelsToSelfHostedRunnerForRepo: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
addRepoAccessToSelfHostedRunnerGroupInOrg: [
|
|
||||||
"PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
addSelectedRepoToOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
addSelectedRepoToOrgVariable: [
|
|
||||||
"PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
approveWorkflowRun: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"
|
|
||||||
],
|
|
||||||
cancelWorkflowRun: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"
|
|
||||||
],
|
|
||||||
createEnvironmentVariable: [
|
|
||||||
"POST /repos/{owner}/{repo}/environments/{environment_name}/variables"
|
|
||||||
],
|
|
||||||
createHostedRunnerForOrg: ["POST /orgs/{org}/actions/hosted-runners"],
|
|
||||||
createOrUpdateEnvironmentSecret: [
|
|
||||||
"PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"],
|
|
||||||
createOrUpdateRepoSecret: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
createOrgVariable: ["POST /orgs/{org}/actions/variables"],
|
|
||||||
createRegistrationTokenForOrg: [
|
|
||||||
"POST /orgs/{org}/actions/runners/registration-token"
|
|
||||||
],
|
|
||||||
createRegistrationTokenForRepo: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runners/registration-token"
|
|
||||||
],
|
|
||||||
createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"],
|
|
||||||
createRemoveTokenForRepo: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runners/remove-token"
|
|
||||||
],
|
|
||||||
createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"],
|
|
||||||
createWorkflowDispatch: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"
|
|
||||||
],
|
|
||||||
deleteActionsCacheById: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"
|
|
||||||
],
|
|
||||||
deleteActionsCacheByKey: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"
|
|
||||||
],
|
|
||||||
deleteArtifact: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"
|
|
||||||
],
|
|
||||||
deleteCustomImageFromOrg: [
|
|
||||||
"DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"
|
|
||||||
],
|
|
||||||
deleteCustomImageVersionFromOrg: [
|
|
||||||
"DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"
|
|
||||||
],
|
|
||||||
deleteEnvironmentSecret: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
deleteEnvironmentVariable: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"
|
|
||||||
],
|
|
||||||
deleteHostedRunnerForOrg: [
|
|
||||||
"DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"
|
|
||||||
],
|
|
||||||
deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"],
|
|
||||||
deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"],
|
|
||||||
deleteRepoSecret: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
deleteRepoVariable: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/variables/{name}"
|
|
||||||
],
|
|
||||||
deleteSelfHostedRunnerFromOrg: [
|
|
||||||
"DELETE /orgs/{org}/actions/runners/{runner_id}"
|
|
||||||
],
|
|
||||||
deleteSelfHostedRunnerFromRepo: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"
|
|
||||||
],
|
|
||||||
deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],
|
|
||||||
deleteWorkflowRunLogs: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"
|
|
||||||
],
|
|
||||||
disableSelectedRepositoryGithubActionsOrganization: [
|
|
||||||
"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
disableWorkflow: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"
|
|
||||||
],
|
|
||||||
downloadArtifact: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"
|
|
||||||
],
|
|
||||||
downloadJobLogsForWorkflowRun: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"
|
|
||||||
],
|
|
||||||
downloadWorkflowRunAttemptLogs: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"
|
|
||||||
],
|
|
||||||
downloadWorkflowRunLogs: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"
|
|
||||||
],
|
|
||||||
enableSelectedRepositoryGithubActionsOrganization: [
|
|
||||||
"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
enableWorkflow: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"
|
|
||||||
],
|
|
||||||
forceCancelWorkflowRun: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"
|
|
||||||
],
|
|
||||||
generateRunnerJitconfigForOrg: [
|
|
||||||
"POST /orgs/{org}/actions/runners/generate-jitconfig"
|
|
||||||
],
|
|
||||||
generateRunnerJitconfigForRepo: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"
|
|
||||||
],
|
|
||||||
getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"],
|
|
||||||
getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"],
|
|
||||||
getActionsCacheUsageByRepoForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/cache/usage-by-repository"
|
|
||||||
],
|
|
||||||
getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"],
|
|
||||||
getAllowedActionsOrganization: [
|
|
||||||
"GET /orgs/{org}/actions/permissions/selected-actions"
|
|
||||||
],
|
|
||||||
getAllowedActionsRepository: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/permissions/selected-actions"
|
|
||||||
],
|
|
||||||
getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],
|
|
||||||
getCustomImageForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"
|
|
||||||
],
|
|
||||||
getCustomImageVersionForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"
|
|
||||||
],
|
|
||||||
getCustomOidcSubClaimForRepo: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/oidc/customization/sub"
|
|
||||||
],
|
|
||||||
getEnvironmentPublicKey: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"
|
|
||||||
],
|
|
||||||
getEnvironmentSecret: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
getEnvironmentVariable: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"
|
|
||||||
],
|
|
||||||
getGithubActionsDefaultWorkflowPermissionsOrganization: [
|
|
||||||
"GET /orgs/{org}/actions/permissions/workflow"
|
|
||||||
],
|
|
||||||
getGithubActionsDefaultWorkflowPermissionsRepository: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/permissions/workflow"
|
|
||||||
],
|
|
||||||
getGithubActionsPermissionsOrganization: [
|
|
||||||
"GET /orgs/{org}/actions/permissions"
|
|
||||||
],
|
|
||||||
getGithubActionsPermissionsRepository: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/permissions"
|
|
||||||
],
|
|
||||||
getHostedRunnerForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"
|
|
||||||
],
|
|
||||||
getHostedRunnersGithubOwnedImagesForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/images/github-owned"
|
|
||||||
],
|
|
||||||
getHostedRunnersLimitsForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/limits"
|
|
||||||
],
|
|
||||||
getHostedRunnersMachineSpecsForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/machine-sizes"
|
|
||||||
],
|
|
||||||
getHostedRunnersPartnerImagesForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/images/partner"
|
|
||||||
],
|
|
||||||
getHostedRunnersPlatformsForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/platforms"
|
|
||||||
],
|
|
||||||
getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],
|
|
||||||
getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"],
|
|
||||||
getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"],
|
|
||||||
getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"],
|
|
||||||
getPendingDeploymentsForRun: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"
|
|
||||||
],
|
|
||||||
getRepoPermissions: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/permissions",
|
|
||||||
{},
|
|
||||||
{ renamed: ["actions", "getGithubActionsPermissionsRepository"] }
|
|
||||||
],
|
|
||||||
getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"],
|
|
||||||
getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],
|
|
||||||
getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"],
|
|
||||||
getReviewsForRun: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"
|
|
||||||
],
|
|
||||||
getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"],
|
|
||||||
getSelfHostedRunnerForRepo: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runners/{runner_id}"
|
|
||||||
],
|
|
||||||
getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],
|
|
||||||
getWorkflowAccessToRepository: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/permissions/access"
|
|
||||||
],
|
|
||||||
getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],
|
|
||||||
getWorkflowRunAttempt: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"
|
|
||||||
],
|
|
||||||
getWorkflowRunUsage: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"
|
|
||||||
],
|
|
||||||
getWorkflowUsage: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"
|
|
||||||
],
|
|
||||||
listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"],
|
|
||||||
listCustomImageVersionsForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"
|
|
||||||
],
|
|
||||||
listCustomImagesForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/hosted-runners/images/custom"
|
|
||||||
],
|
|
||||||
listEnvironmentSecrets: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"
|
|
||||||
],
|
|
||||||
listEnvironmentVariables: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/variables"
|
|
||||||
],
|
|
||||||
listGithubHostedRunnersInGroupForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"
|
|
||||||
],
|
|
||||||
listHostedRunnersForOrg: ["GET /orgs/{org}/actions/hosted-runners"],
|
|
||||||
listJobsForWorkflowRun: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"
|
|
||||||
],
|
|
||||||
listJobsForWorkflowRunAttempt: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"
|
|
||||||
],
|
|
||||||
listLabelsForSelfHostedRunnerForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
listLabelsForSelfHostedRunnerForRepo: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
listOrgSecrets: ["GET /orgs/{org}/actions/secrets"],
|
|
||||||
listOrgVariables: ["GET /orgs/{org}/actions/variables"],
|
|
||||||
listRepoOrganizationSecrets: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/organization-secrets"
|
|
||||||
],
|
|
||||||
listRepoOrganizationVariables: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/organization-variables"
|
|
||||||
],
|
|
||||||
listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"],
|
|
||||||
listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"],
|
|
||||||
listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"],
|
|
||||||
listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"],
|
|
||||||
listRunnerApplicationsForRepo: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runners/downloads"
|
|
||||||
],
|
|
||||||
listSelectedReposForOrgSecret: [
|
|
||||||
"GET /orgs/{org}/actions/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
listSelectedReposForOrgVariable: [
|
|
||||||
"GET /orgs/{org}/actions/variables/{name}/repositories"
|
|
||||||
],
|
|
||||||
listSelectedRepositoriesEnabledGithubActionsOrganization: [
|
|
||||||
"GET /orgs/{org}/actions/permissions/repositories"
|
|
||||||
],
|
|
||||||
listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"],
|
|
||||||
listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"],
|
|
||||||
listWorkflowRunArtifacts: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"
|
|
||||||
],
|
|
||||||
listWorkflowRuns: [
|
|
||||||
"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"
|
|
||||||
],
|
|
||||||
listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"],
|
|
||||||
reRunJobForWorkflowRun: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"
|
|
||||||
],
|
|
||||||
reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],
|
|
||||||
reRunWorkflowFailedJobs: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"
|
|
||||||
],
|
|
||||||
removeAllCustomLabelsFromSelfHostedRunnerForOrg: [
|
|
||||||
"DELETE /orgs/{org}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
removeAllCustomLabelsFromSelfHostedRunnerForRepo: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
removeCustomLabelFromSelfHostedRunnerForOrg: [
|
|
||||||
"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"
|
|
||||||
],
|
|
||||||
removeCustomLabelFromSelfHostedRunnerForRepo: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"
|
|
||||||
],
|
|
||||||
removeSelectedRepoFromOrgSecret: [
|
|
||||||
"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
removeSelectedRepoFromOrgVariable: [
|
|
||||||
"DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
reviewCustomGatesForRun: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"
|
|
||||||
],
|
|
||||||
reviewPendingDeploymentsForRun: [
|
|
||||||
"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"
|
|
||||||
],
|
|
||||||
setAllowedActionsOrganization: [
|
|
||||||
"PUT /orgs/{org}/actions/permissions/selected-actions"
|
|
||||||
],
|
|
||||||
setAllowedActionsRepository: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"
|
|
||||||
],
|
|
||||||
setCustomLabelsForSelfHostedRunnerForOrg: [
|
|
||||||
"PUT /orgs/{org}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
setCustomLabelsForSelfHostedRunnerForRepo: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
|
|
||||||
],
|
|
||||||
setCustomOidcSubClaimForRepo: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"
|
|
||||||
],
|
|
||||||
setGithubActionsDefaultWorkflowPermissionsOrganization: [
|
|
||||||
"PUT /orgs/{org}/actions/permissions/workflow"
|
|
||||||
],
|
|
||||||
setGithubActionsDefaultWorkflowPermissionsRepository: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/permissions/workflow"
|
|
||||||
],
|
|
||||||
setGithubActionsPermissionsOrganization: [
|
|
||||||
"PUT /orgs/{org}/actions/permissions"
|
|
||||||
],
|
|
||||||
setGithubActionsPermissionsRepository: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/permissions"
|
|
||||||
],
|
|
||||||
setSelectedReposForOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
setSelectedReposForOrgVariable: [
|
|
||||||
"PUT /orgs/{org}/actions/variables/{name}/repositories"
|
|
||||||
],
|
|
||||||
setSelectedRepositoriesEnabledGithubActionsOrganization: [
|
|
||||||
"PUT /orgs/{org}/actions/permissions/repositories"
|
|
||||||
],
|
|
||||||
setWorkflowAccessToRepository: [
|
|
||||||
"PUT /repos/{owner}/{repo}/actions/permissions/access"
|
|
||||||
],
|
|
||||||
updateEnvironmentVariable: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"
|
|
||||||
],
|
|
||||||
updateHostedRunnerForOrg: [
|
|
||||||
"PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"
|
|
||||||
],
|
|
||||||
updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"],
|
|
||||||
updateRepoVariable: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/actions/variables/{name}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
activity: {
|
|
||||||
checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"],
|
|
||||||
deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"],
|
|
||||||
deleteThreadSubscription: [
|
|
||||||
"DELETE /notifications/threads/{thread_id}/subscription"
|
|
||||||
],
|
|
||||||
getFeeds: ["GET /feeds"],
|
|
||||||
getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"],
|
|
||||||
getThread: ["GET /notifications/threads/{thread_id}"],
|
|
||||||
getThreadSubscriptionForAuthenticatedUser: [
|
|
||||||
"GET /notifications/threads/{thread_id}/subscription"
|
|
||||||
],
|
|
||||||
listEventsForAuthenticatedUser: ["GET /users/{username}/events"],
|
|
||||||
listNotificationsForAuthenticatedUser: ["GET /notifications"],
|
|
||||||
listOrgEventsForAuthenticatedUser: [
|
|
||||||
"GET /users/{username}/events/orgs/{org}"
|
|
||||||
],
|
|
||||||
listPublicEvents: ["GET /events"],
|
|
||||||
listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"],
|
|
||||||
listPublicEventsForUser: ["GET /users/{username}/events/public"],
|
|
||||||
listPublicOrgEvents: ["GET /orgs/{org}/events"],
|
|
||||||
listReceivedEventsForUser: ["GET /users/{username}/received_events"],
|
|
||||||
listReceivedPublicEventsForUser: [
|
|
||||||
"GET /users/{username}/received_events/public"
|
|
||||||
],
|
|
||||||
listRepoEvents: ["GET /repos/{owner}/{repo}/events"],
|
|
||||||
listRepoNotificationsForAuthenticatedUser: [
|
|
||||||
"GET /repos/{owner}/{repo}/notifications"
|
|
||||||
],
|
|
||||||
listReposStarredByAuthenticatedUser: ["GET /user/starred"],
|
|
||||||
listReposStarredByUser: ["GET /users/{username}/starred"],
|
|
||||||
listReposWatchedByUser: ["GET /users/{username}/subscriptions"],
|
|
||||||
listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"],
|
|
||||||
listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"],
|
|
||||||
listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"],
|
|
||||||
markNotificationsAsRead: ["PUT /notifications"],
|
|
||||||
markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"],
|
|
||||||
markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"],
|
|
||||||
markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"],
|
|
||||||
setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"],
|
|
||||||
setThreadSubscription: [
|
|
||||||
"PUT /notifications/threads/{thread_id}/subscription"
|
|
||||||
],
|
|
||||||
starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"],
|
|
||||||
unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"]
|
|
||||||
},
|
|
||||||
apps: {
|
|
||||||
addRepoToInstallation: [
|
|
||||||
"PUT /user/installations/{installation_id}/repositories/{repository_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
addRepoToInstallationForAuthenticatedUser: [
|
|
||||||
"PUT /user/installations/{installation_id}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
checkToken: ["POST /applications/{client_id}/token"],
|
|
||||||
createFromManifest: ["POST /app-manifests/{code}/conversions"],
|
|
||||||
createInstallationAccessToken: [
|
|
||||||
"POST /app/installations/{installation_id}/access_tokens"
|
|
||||||
],
|
|
||||||
deleteAuthorization: ["DELETE /applications/{client_id}/grant"],
|
|
||||||
deleteInstallation: ["DELETE /app/installations/{installation_id}"],
|
|
||||||
deleteToken: ["DELETE /applications/{client_id}/token"],
|
|
||||||
getAuthenticated: ["GET /app"],
|
|
||||||
getBySlug: ["GET /apps/{app_slug}"],
|
|
||||||
getInstallation: ["GET /app/installations/{installation_id}"],
|
|
||||||
getOrgInstallation: ["GET /orgs/{org}/installation"],
|
|
||||||
getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"],
|
|
||||||
getSubscriptionPlanForAccount: [
|
|
||||||
"GET /marketplace_listing/accounts/{account_id}"
|
|
||||||
],
|
|
||||||
getSubscriptionPlanForAccountStubbed: [
|
|
||||||
"GET /marketplace_listing/stubbed/accounts/{account_id}"
|
|
||||||
],
|
|
||||||
getUserInstallation: ["GET /users/{username}/installation"],
|
|
||||||
getWebhookConfigForApp: ["GET /app/hook/config"],
|
|
||||||
getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"],
|
|
||||||
listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"],
|
|
||||||
listAccountsForPlanStubbed: [
|
|
||||||
"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"
|
|
||||||
],
|
|
||||||
listInstallationReposForAuthenticatedUser: [
|
|
||||||
"GET /user/installations/{installation_id}/repositories"
|
|
||||||
],
|
|
||||||
listInstallationRequestsForAuthenticatedApp: [
|
|
||||||
"GET /app/installation-requests"
|
|
||||||
],
|
|
||||||
listInstallations: ["GET /app/installations"],
|
|
||||||
listInstallationsForAuthenticatedUser: ["GET /user/installations"],
|
|
||||||
listPlans: ["GET /marketplace_listing/plans"],
|
|
||||||
listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"],
|
|
||||||
listReposAccessibleToInstallation: ["GET /installation/repositories"],
|
|
||||||
listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"],
|
|
||||||
listSubscriptionsForAuthenticatedUserStubbed: [
|
|
||||||
"GET /user/marketplace_purchases/stubbed"
|
|
||||||
],
|
|
||||||
listWebhookDeliveries: ["GET /app/hook/deliveries"],
|
|
||||||
redeliverWebhookDelivery: [
|
|
||||||
"POST /app/hook/deliveries/{delivery_id}/attempts"
|
|
||||||
],
|
|
||||||
removeRepoFromInstallation: [
|
|
||||||
"DELETE /user/installations/{installation_id}/repositories/{repository_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
removeRepoFromInstallationForAuthenticatedUser: [
|
|
||||||
"DELETE /user/installations/{installation_id}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
resetToken: ["PATCH /applications/{client_id}/token"],
|
|
||||||
revokeInstallationAccessToken: ["DELETE /installation/token"],
|
|
||||||
scopeToken: ["POST /applications/{client_id}/token/scoped"],
|
|
||||||
suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"],
|
|
||||||
unsuspendInstallation: [
|
|
||||||
"DELETE /app/installations/{installation_id}/suspended"
|
|
||||||
],
|
|
||||||
updateWebhookConfigForApp: ["PATCH /app/hook/config"]
|
|
||||||
},
|
|
||||||
billing: {
|
|
||||||
getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"],
|
|
||||||
getGithubActionsBillingUser: [
|
|
||||||
"GET /users/{username}/settings/billing/actions"
|
|
||||||
],
|
|
||||||
getGithubBillingPremiumRequestUsageReportOrg: [
|
|
||||||
"GET /organizations/{org}/settings/billing/premium_request/usage"
|
|
||||||
],
|
|
||||||
getGithubBillingPremiumRequestUsageReportUser: [
|
|
||||||
"GET /users/{username}/settings/billing/premium_request/usage"
|
|
||||||
],
|
|
||||||
getGithubBillingUsageReportOrg: [
|
|
||||||
"GET /organizations/{org}/settings/billing/usage"
|
|
||||||
],
|
|
||||||
getGithubBillingUsageReportUser: [
|
|
||||||
"GET /users/{username}/settings/billing/usage"
|
|
||||||
],
|
|
||||||
getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"],
|
|
||||||
getGithubPackagesBillingUser: [
|
|
||||||
"GET /users/{username}/settings/billing/packages"
|
|
||||||
],
|
|
||||||
getSharedStorageBillingOrg: [
|
|
||||||
"GET /orgs/{org}/settings/billing/shared-storage"
|
|
||||||
],
|
|
||||||
getSharedStorageBillingUser: [
|
|
||||||
"GET /users/{username}/settings/billing/shared-storage"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
campaigns: {
|
|
||||||
createCampaign: ["POST /orgs/{org}/campaigns"],
|
|
||||||
deleteCampaign: ["DELETE /orgs/{org}/campaigns/{campaign_number}"],
|
|
||||||
getCampaignSummary: ["GET /orgs/{org}/campaigns/{campaign_number}"],
|
|
||||||
listOrgCampaigns: ["GET /orgs/{org}/campaigns"],
|
|
||||||
updateCampaign: ["PATCH /orgs/{org}/campaigns/{campaign_number}"]
|
|
||||||
},
|
|
||||||
checks: {
|
|
||||||
create: ["POST /repos/{owner}/{repo}/check-runs"],
|
|
||||||
createSuite: ["POST /repos/{owner}/{repo}/check-suites"],
|
|
||||||
get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],
|
|
||||||
getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],
|
|
||||||
listAnnotations: [
|
|
||||||
"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"
|
|
||||||
],
|
|
||||||
listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],
|
|
||||||
listForSuite: [
|
|
||||||
"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"
|
|
||||||
],
|
|
||||||
listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],
|
|
||||||
rerequestRun: [
|
|
||||||
"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"
|
|
||||||
],
|
|
||||||
rerequestSuite: [
|
|
||||||
"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"
|
|
||||||
],
|
|
||||||
setSuitesPreferences: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/check-suites/preferences"
|
|
||||||
],
|
|
||||||
update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]
|
|
||||||
},
|
|
||||||
codeScanning: {
|
|
||||||
commitAutofix: [
|
|
||||||
"POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"
|
|
||||||
],
|
|
||||||
createAutofix: [
|
|
||||||
"POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"
|
|
||||||
],
|
|
||||||
createVariantAnalysis: [
|
|
||||||
"POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"
|
|
||||||
],
|
|
||||||
deleteAnalysis: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"
|
|
||||||
],
|
|
||||||
deleteCodeqlDatabase: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"
|
|
||||||
],
|
|
||||||
getAlert: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",
|
|
||||||
{},
|
|
||||||
{ renamedParameters: { alert_id: "alert_number" } }
|
|
||||||
],
|
|
||||||
getAnalysis: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"
|
|
||||||
],
|
|
||||||
getAutofix: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"
|
|
||||||
],
|
|
||||||
getCodeqlDatabase: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"
|
|
||||||
],
|
|
||||||
getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"],
|
|
||||||
getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],
|
|
||||||
getVariantAnalysis: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"
|
|
||||||
],
|
|
||||||
getVariantAnalysisRepoTask: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"
|
|
||||||
],
|
|
||||||
listAlertInstances: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"
|
|
||||||
],
|
|
||||||
listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"],
|
|
||||||
listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"],
|
|
||||||
listAlertsInstances: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",
|
|
||||||
{},
|
|
||||||
{ renamed: ["codeScanning", "listAlertInstances"] }
|
|
||||||
],
|
|
||||||
listCodeqlDatabases: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-scanning/codeql/databases"
|
|
||||||
],
|
|
||||||
listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"],
|
|
||||||
updateAlert: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"
|
|
||||||
],
|
|
||||||
updateDefaultSetup: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/code-scanning/default-setup"
|
|
||||||
],
|
|
||||||
uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"]
|
|
||||||
},
|
|
||||||
codeSecurity: {
|
|
||||||
attachConfiguration: [
|
|
||||||
"POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"
|
|
||||||
],
|
|
||||||
attachEnterpriseConfiguration: [
|
|
||||||
"POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"
|
|
||||||
],
|
|
||||||
createConfiguration: ["POST /orgs/{org}/code-security/configurations"],
|
|
||||||
createConfigurationForEnterprise: [
|
|
||||||
"POST /enterprises/{enterprise}/code-security/configurations"
|
|
||||||
],
|
|
||||||
deleteConfiguration: [
|
|
||||||
"DELETE /orgs/{org}/code-security/configurations/{configuration_id}"
|
|
||||||
],
|
|
||||||
deleteConfigurationForEnterprise: [
|
|
||||||
"DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"
|
|
||||||
],
|
|
||||||
detachConfiguration: [
|
|
||||||
"DELETE /orgs/{org}/code-security/configurations/detach"
|
|
||||||
],
|
|
||||||
getConfiguration: [
|
|
||||||
"GET /orgs/{org}/code-security/configurations/{configuration_id}"
|
|
||||||
],
|
|
||||||
getConfigurationForRepository: [
|
|
||||||
"GET /repos/{owner}/{repo}/code-security-configuration"
|
|
||||||
],
|
|
||||||
getConfigurationsForEnterprise: [
|
|
||||||
"GET /enterprises/{enterprise}/code-security/configurations"
|
|
||||||
],
|
|
||||||
getConfigurationsForOrg: ["GET /orgs/{org}/code-security/configurations"],
|
|
||||||
getDefaultConfigurations: [
|
|
||||||
"GET /orgs/{org}/code-security/configurations/defaults"
|
|
||||||
],
|
|
||||||
getDefaultConfigurationsForEnterprise: [
|
|
||||||
"GET /enterprises/{enterprise}/code-security/configurations/defaults"
|
|
||||||
],
|
|
||||||
getRepositoriesForConfiguration: [
|
|
||||||
"GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"
|
|
||||||
],
|
|
||||||
getRepositoriesForEnterpriseConfiguration: [
|
|
||||||
"GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"
|
|
||||||
],
|
|
||||||
getSingleConfigurationForEnterprise: [
|
|
||||||
"GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"
|
|
||||||
],
|
|
||||||
setConfigurationAsDefault: [
|
|
||||||
"PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"
|
|
||||||
],
|
|
||||||
setConfigurationAsDefaultForEnterprise: [
|
|
||||||
"PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"
|
|
||||||
],
|
|
||||||
updateConfiguration: [
|
|
||||||
"PATCH /orgs/{org}/code-security/configurations/{configuration_id}"
|
|
||||||
],
|
|
||||||
updateEnterpriseConfiguration: [
|
|
||||||
"PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
codesOfConduct: {
|
|
||||||
getAllCodesOfConduct: ["GET /codes_of_conduct"],
|
|
||||||
getConductCode: ["GET /codes_of_conduct/{key}"]
|
|
||||||
},
|
|
||||||
codespaces: {
|
|
||||||
addRepositoryForSecretForAuthenticatedUser: [
|
|
||||||
"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
addSelectedRepoToOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
checkPermissionsForDevcontainer: [
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/permissions_check"
|
|
||||||
],
|
|
||||||
codespaceMachinesForAuthenticatedUser: [
|
|
||||||
"GET /user/codespaces/{codespace_name}/machines"
|
|
||||||
],
|
|
||||||
createForAuthenticatedUser: ["POST /user/codespaces"],
|
|
||||||
createOrUpdateOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/codespaces/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
createOrUpdateRepoSecret: [
|
|
||||||
"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
createOrUpdateSecretForAuthenticatedUser: [
|
|
||||||
"PUT /user/codespaces/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
createWithPrForAuthenticatedUser: [
|
|
||||||
"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"
|
|
||||||
],
|
|
||||||
createWithRepoForAuthenticatedUser: [
|
|
||||||
"POST /repos/{owner}/{repo}/codespaces"
|
|
||||||
],
|
|
||||||
deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"],
|
|
||||||
deleteFromOrganization: [
|
|
||||||
"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"
|
|
||||||
],
|
|
||||||
deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],
|
|
||||||
deleteRepoSecret: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
deleteSecretForAuthenticatedUser: [
|
|
||||||
"DELETE /user/codespaces/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
exportForAuthenticatedUser: [
|
|
||||||
"POST /user/codespaces/{codespace_name}/exports"
|
|
||||||
],
|
|
||||||
getCodespacesForUserInOrg: [
|
|
||||||
"GET /orgs/{org}/members/{username}/codespaces"
|
|
||||||
],
|
|
||||||
getExportDetailsForAuthenticatedUser: [
|
|
||||||
"GET /user/codespaces/{codespace_name}/exports/{export_id}"
|
|
||||||
],
|
|
||||||
getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"],
|
|
||||||
getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"],
|
|
||||||
getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"],
|
|
||||||
getPublicKeyForAuthenticatedUser: [
|
|
||||||
"GET /user/codespaces/secrets/public-key"
|
|
||||||
],
|
|
||||||
getRepoPublicKey: [
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/secrets/public-key"
|
|
||||||
],
|
|
||||||
getRepoSecret: [
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
getSecretForAuthenticatedUser: [
|
|
||||||
"GET /user/codespaces/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
listDevcontainersInRepositoryForAuthenticatedUser: [
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/devcontainers"
|
|
||||||
],
|
|
||||||
listForAuthenticatedUser: ["GET /user/codespaces"],
|
|
||||||
listInOrganization: [
|
|
||||||
"GET /orgs/{org}/codespaces",
|
|
||||||
{},
|
|
||||||
{ renamedParameters: { org_id: "org" } }
|
|
||||||
],
|
|
||||||
listInRepositoryForAuthenticatedUser: [
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces"
|
|
||||||
],
|
|
||||||
listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"],
|
|
||||||
listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"],
|
|
||||||
listRepositoriesForSecretForAuthenticatedUser: [
|
|
||||||
"GET /user/codespaces/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"],
|
|
||||||
listSelectedReposForOrgSecret: [
|
|
||||||
"GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
preFlightWithRepoForAuthenticatedUser: [
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/new"
|
|
||||||
],
|
|
||||||
publishForAuthenticatedUser: [
|
|
||||||
"POST /user/codespaces/{codespace_name}/publish"
|
|
||||||
],
|
|
||||||
removeRepositoryForSecretForAuthenticatedUser: [
|
|
||||||
"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
removeSelectedRepoFromOrgSecret: [
|
|
||||||
"DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
repoMachinesForAuthenticatedUser: [
|
|
||||||
"GET /repos/{owner}/{repo}/codespaces/machines"
|
|
||||||
],
|
|
||||||
setRepositoriesForSecretForAuthenticatedUser: [
|
|
||||||
"PUT /user/codespaces/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
setSelectedReposForOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"],
|
|
||||||
stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"],
|
|
||||||
stopInOrganization: [
|
|
||||||
"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"
|
|
||||||
],
|
|
||||||
updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"]
|
|
||||||
},
|
|
||||||
copilot: {
|
|
||||||
addCopilotSeatsForTeams: [
|
|
||||||
"POST /orgs/{org}/copilot/billing/selected_teams"
|
|
||||||
],
|
|
||||||
addCopilotSeatsForUsers: [
|
|
||||||
"POST /orgs/{org}/copilot/billing/selected_users"
|
|
||||||
],
|
|
||||||
cancelCopilotSeatAssignmentForTeams: [
|
|
||||||
"DELETE /orgs/{org}/copilot/billing/selected_teams"
|
|
||||||
],
|
|
||||||
cancelCopilotSeatAssignmentForUsers: [
|
|
||||||
"DELETE /orgs/{org}/copilot/billing/selected_users"
|
|
||||||
],
|
|
||||||
copilotMetricsForOrganization: ["GET /orgs/{org}/copilot/metrics"],
|
|
||||||
copilotMetricsForTeam: ["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],
|
|
||||||
getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"],
|
|
||||||
getCopilotSeatDetailsForUser: [
|
|
||||||
"GET /orgs/{org}/members/{username}/copilot"
|
|
||||||
],
|
|
||||||
listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"]
|
|
||||||
},
|
|
||||||
credentials: { revoke: ["POST /credentials/revoke"] },
|
|
||||||
dependabot: {
|
|
||||||
addSelectedRepoToOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
createOrUpdateOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/dependabot/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
createOrUpdateRepoSecret: [
|
|
||||||
"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],
|
|
||||||
deleteRepoSecret: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],
|
|
||||||
getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"],
|
|
||||||
getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"],
|
|
||||||
getRepoPublicKey: [
|
|
||||||
"GET /repos/{owner}/{repo}/dependabot/secrets/public-key"
|
|
||||||
],
|
|
||||||
getRepoSecret: [
|
|
||||||
"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"
|
|
||||||
],
|
|
||||||
listAlertsForEnterprise: [
|
|
||||||
"GET /enterprises/{enterprise}/dependabot/alerts"
|
|
||||||
],
|
|
||||||
listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"],
|
|
||||||
listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"],
|
|
||||||
listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"],
|
|
||||||
listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"],
|
|
||||||
listSelectedReposForOrgSecret: [
|
|
||||||
"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
removeSelectedRepoFromOrgSecret: [
|
|
||||||
"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
repositoryAccessForOrg: [
|
|
||||||
"GET /organizations/{org}/dependabot/repository-access"
|
|
||||||
],
|
|
||||||
setRepositoryAccessDefaultLevel: [
|
|
||||||
"PUT /organizations/{org}/dependabot/repository-access/default-level"
|
|
||||||
],
|
|
||||||
setSelectedReposForOrgSecret: [
|
|
||||||
"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"
|
|
||||||
],
|
|
||||||
updateAlert: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"
|
|
||||||
],
|
|
||||||
updateRepositoryAccessForOrg: [
|
|
||||||
"PATCH /organizations/{org}/dependabot/repository-access"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
dependencyGraph: {
|
|
||||||
createRepositorySnapshot: [
|
|
||||||
"POST /repos/{owner}/{repo}/dependency-graph/snapshots"
|
|
||||||
],
|
|
||||||
diffRange: [
|
|
||||||
"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"
|
|
||||||
],
|
|
||||||
exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"]
|
|
||||||
},
|
|
||||||
emojis: { get: ["GET /emojis"] },
|
|
||||||
enterpriseTeamMemberships: {
|
|
||||||
add: [
|
|
||||||
"PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"
|
|
||||||
],
|
|
||||||
bulkAdd: [
|
|
||||||
"POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"
|
|
||||||
],
|
|
||||||
bulkRemove: [
|
|
||||||
"POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"
|
|
||||||
],
|
|
||||||
get: [
|
|
||||||
"GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"
|
|
||||||
],
|
|
||||||
list: ["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],
|
|
||||||
remove: [
|
|
||||||
"DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
enterpriseTeamOrganizations: {
|
|
||||||
add: [
|
|
||||||
"PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"
|
|
||||||
],
|
|
||||||
bulkAdd: [
|
|
||||||
"POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"
|
|
||||||
],
|
|
||||||
bulkRemove: [
|
|
||||||
"POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"
|
|
||||||
],
|
|
||||||
delete: [
|
|
||||||
"DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"
|
|
||||||
],
|
|
||||||
getAssignment: [
|
|
||||||
"GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"
|
|
||||||
],
|
|
||||||
getAssignments: [
|
|
||||||
"GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
enterpriseTeams: {
|
|
||||||
create: ["POST /enterprises/{enterprise}/teams"],
|
|
||||||
delete: ["DELETE /enterprises/{enterprise}/teams/{team_slug}"],
|
|
||||||
get: ["GET /enterprises/{enterprise}/teams/{team_slug}"],
|
|
||||||
list: ["GET /enterprises/{enterprise}/teams"],
|
|
||||||
update: ["PATCH /enterprises/{enterprise}/teams/{team_slug}"]
|
|
||||||
},
|
|
||||||
gists: {
|
|
||||||
checkIsStarred: ["GET /gists/{gist_id}/star"],
|
|
||||||
create: ["POST /gists"],
|
|
||||||
createComment: ["POST /gists/{gist_id}/comments"],
|
|
||||||
delete: ["DELETE /gists/{gist_id}"],
|
|
||||||
deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"],
|
|
||||||
fork: ["POST /gists/{gist_id}/forks"],
|
|
||||||
get: ["GET /gists/{gist_id}"],
|
|
||||||
getComment: ["GET /gists/{gist_id}/comments/{comment_id}"],
|
|
||||||
getRevision: ["GET /gists/{gist_id}/{sha}"],
|
|
||||||
list: ["GET /gists"],
|
|
||||||
listComments: ["GET /gists/{gist_id}/comments"],
|
|
||||||
listCommits: ["GET /gists/{gist_id}/commits"],
|
|
||||||
listForUser: ["GET /users/{username}/gists"],
|
|
||||||
listForks: ["GET /gists/{gist_id}/forks"],
|
|
||||||
listPublic: ["GET /gists/public"],
|
|
||||||
listStarred: ["GET /gists/starred"],
|
|
||||||
star: ["PUT /gists/{gist_id}/star"],
|
|
||||||
unstar: ["DELETE /gists/{gist_id}/star"],
|
|
||||||
update: ["PATCH /gists/{gist_id}"],
|
|
||||||
updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"]
|
|
||||||
},
|
|
||||||
git: {
|
|
||||||
createBlob: ["POST /repos/{owner}/{repo}/git/blobs"],
|
|
||||||
createCommit: ["POST /repos/{owner}/{repo}/git/commits"],
|
|
||||||
createRef: ["POST /repos/{owner}/{repo}/git/refs"],
|
|
||||||
createTag: ["POST /repos/{owner}/{repo}/git/tags"],
|
|
||||||
createTree: ["POST /repos/{owner}/{repo}/git/trees"],
|
|
||||||
deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],
|
|
||||||
getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],
|
|
||||||
getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],
|
|
||||||
getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"],
|
|
||||||
getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],
|
|
||||||
getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],
|
|
||||||
listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],
|
|
||||||
updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]
|
|
||||||
},
|
|
||||||
gitignore: {
|
|
||||||
getAllTemplates: ["GET /gitignore/templates"],
|
|
||||||
getTemplate: ["GET /gitignore/templates/{name}"]
|
|
||||||
},
|
|
||||||
hostedCompute: {
|
|
||||||
createNetworkConfigurationForOrg: [
|
|
||||||
"POST /orgs/{org}/settings/network-configurations"
|
|
||||||
],
|
|
||||||
deleteNetworkConfigurationFromOrg: [
|
|
||||||
"DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"
|
|
||||||
],
|
|
||||||
getNetworkConfigurationForOrg: [
|
|
||||||
"GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"
|
|
||||||
],
|
|
||||||
getNetworkSettingsForOrg: [
|
|
||||||
"GET /orgs/{org}/settings/network-settings/{network_settings_id}"
|
|
||||||
],
|
|
||||||
listNetworkConfigurationsForOrg: [
|
|
||||||
"GET /orgs/{org}/settings/network-configurations"
|
|
||||||
],
|
|
||||||
updateNetworkConfigurationForOrg: [
|
|
||||||
"PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
interactions: {
|
|
||||||
getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"],
|
|
||||||
getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"],
|
|
||||||
getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"],
|
|
||||||
getRestrictionsForYourPublicRepos: [
|
|
||||||
"GET /user/interaction-limits",
|
|
||||||
{},
|
|
||||||
{ renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"],
|
|
||||||
removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"],
|
|
||||||
removeRestrictionsForRepo: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/interaction-limits"
|
|
||||||
],
|
|
||||||
removeRestrictionsForYourPublicRepos: [
|
|
||||||
"DELETE /user/interaction-limits",
|
|
||||||
{},
|
|
||||||
{ renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"],
|
|
||||||
setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"],
|
|
||||||
setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"],
|
|
||||||
setRestrictionsForYourPublicRepos: [
|
|
||||||
"PUT /user/interaction-limits",
|
|
||||||
{},
|
|
||||||
{ renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
issues: {
|
|
||||||
addAssignees: [
|
|
||||||
"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"
|
|
||||||
],
|
|
||||||
addBlockedByDependency: [
|
|
||||||
"POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"
|
|
||||||
],
|
|
||||||
addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],
|
|
||||||
addSubIssue: [
|
|
||||||
"POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"
|
|
||||||
],
|
|
||||||
checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"],
|
|
||||||
checkUserCanBeAssignedToIssue: [
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"
|
|
||||||
],
|
|
||||||
create: ["POST /repos/{owner}/{repo}/issues"],
|
|
||||||
createComment: [
|
|
||||||
"POST /repos/{owner}/{repo}/issues/{issue_number}/comments"
|
|
||||||
],
|
|
||||||
createLabel: ["POST /repos/{owner}/{repo}/labels"],
|
|
||||||
createMilestone: ["POST /repos/{owner}/{repo}/milestones"],
|
|
||||||
deleteComment: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"
|
|
||||||
],
|
|
||||||
deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"],
|
|
||||||
deleteMilestone: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"
|
|
||||||
],
|
|
||||||
get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"],
|
|
||||||
getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],
|
|
||||||
getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"],
|
|
||||||
getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"],
|
|
||||||
getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],
|
|
||||||
getParent: ["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],
|
|
||||||
list: ["GET /issues"],
|
|
||||||
listAssignees: ["GET /repos/{owner}/{repo}/assignees"],
|
|
||||||
listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],
|
|
||||||
listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"],
|
|
||||||
listDependenciesBlockedBy: [
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"
|
|
||||||
],
|
|
||||||
listDependenciesBlocking: [
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"
|
|
||||||
],
|
|
||||||
listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],
|
|
||||||
listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"],
|
|
||||||
listEventsForTimeline: [
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"
|
|
||||||
],
|
|
||||||
listForAuthenticatedUser: ["GET /user/issues"],
|
|
||||||
listForOrg: ["GET /orgs/{org}/issues"],
|
|
||||||
listForRepo: ["GET /repos/{owner}/{repo}/issues"],
|
|
||||||
listLabelsForMilestone: [
|
|
||||||
"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"
|
|
||||||
],
|
|
||||||
listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"],
|
|
||||||
listLabelsOnIssue: [
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/labels"
|
|
||||||
],
|
|
||||||
listMilestones: ["GET /repos/{owner}/{repo}/milestones"],
|
|
||||||
listSubIssues: [
|
|
||||||
"GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"
|
|
||||||
],
|
|
||||||
lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],
|
|
||||||
removeAllLabels: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"
|
|
||||||
],
|
|
||||||
removeAssignees: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"
|
|
||||||
],
|
|
||||||
removeDependencyBlockedBy: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"
|
|
||||||
],
|
|
||||||
removeLabel: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"
|
|
||||||
],
|
|
||||||
removeSubIssue: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"
|
|
||||||
],
|
|
||||||
reprioritizeSubIssue: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"
|
|
||||||
],
|
|
||||||
setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],
|
|
||||||
unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],
|
|
||||||
update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],
|
|
||||||
updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],
|
|
||||||
updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"],
|
|
||||||
updateMilestone: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
licenses: {
|
|
||||||
get: ["GET /licenses/{license}"],
|
|
||||||
getAllCommonlyUsed: ["GET /licenses"],
|
|
||||||
getForRepo: ["GET /repos/{owner}/{repo}/license"]
|
|
||||||
},
|
|
||||||
markdown: {
|
|
||||||
render: ["POST /markdown"],
|
|
||||||
renderRaw: [
|
|
||||||
"POST /markdown/raw",
|
|
||||||
{ headers: { "content-type": "text/plain; charset=utf-8" } }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
meta: {
|
|
||||||
get: ["GET /meta"],
|
|
||||||
getAllVersions: ["GET /versions"],
|
|
||||||
getOctocat: ["GET /octocat"],
|
|
||||||
getZen: ["GET /zen"],
|
|
||||||
root: ["GET /"]
|
|
||||||
},
|
|
||||||
migrations: {
|
|
||||||
deleteArchiveForAuthenticatedUser: [
|
|
||||||
"DELETE /user/migrations/{migration_id}/archive"
|
|
||||||
],
|
|
||||||
deleteArchiveForOrg: [
|
|
||||||
"DELETE /orgs/{org}/migrations/{migration_id}/archive"
|
|
||||||
],
|
|
||||||
downloadArchiveForOrg: [
|
|
||||||
"GET /orgs/{org}/migrations/{migration_id}/archive"
|
|
||||||
],
|
|
||||||
getArchiveForAuthenticatedUser: [
|
|
||||||
"GET /user/migrations/{migration_id}/archive"
|
|
||||||
],
|
|
||||||
getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"],
|
|
||||||
getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"],
|
|
||||||
listForAuthenticatedUser: ["GET /user/migrations"],
|
|
||||||
listForOrg: ["GET /orgs/{org}/migrations"],
|
|
||||||
listReposForAuthenticatedUser: [
|
|
||||||
"GET /user/migrations/{migration_id}/repositories"
|
|
||||||
],
|
|
||||||
listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"],
|
|
||||||
listReposForUser: [
|
|
||||||
"GET /user/migrations/{migration_id}/repositories",
|
|
||||||
{},
|
|
||||||
{ renamed: ["migrations", "listReposForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
startForAuthenticatedUser: ["POST /user/migrations"],
|
|
||||||
startForOrg: ["POST /orgs/{org}/migrations"],
|
|
||||||
unlockRepoForAuthenticatedUser: [
|
|
||||||
"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"
|
|
||||||
],
|
|
||||||
unlockRepoForOrg: [
|
|
||||||
"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
oidc: {
|
|
||||||
getOidcCustomSubTemplateForOrg: [
|
|
||||||
"GET /orgs/{org}/actions/oidc/customization/sub"
|
|
||||||
],
|
|
||||||
updateOidcCustomSubTemplateForOrg: [
|
|
||||||
"PUT /orgs/{org}/actions/oidc/customization/sub"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
orgs: {
|
|
||||||
addSecurityManagerTeam: [
|
|
||||||
"PUT /orgs/{org}/security-managers/teams/{team_slug}",
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
deprecated: "octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
assignTeamToOrgRole: [
|
|
||||||
"PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"
|
|
||||||
],
|
|
||||||
assignUserToOrgRole: [
|
|
||||||
"PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"
|
|
||||||
],
|
|
||||||
blockUser: ["PUT /orgs/{org}/blocks/{username}"],
|
|
||||||
cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"],
|
|
||||||
checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"],
|
|
||||||
checkMembershipForUser: ["GET /orgs/{org}/members/{username}"],
|
|
||||||
checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"],
|
|
||||||
convertMemberToOutsideCollaborator: [
|
|
||||||
"PUT /orgs/{org}/outside_collaborators/{username}"
|
|
||||||
],
|
|
||||||
createArtifactStorageRecord: [
|
|
||||||
"POST /orgs/{org}/artifacts/metadata/storage-record"
|
|
||||||
],
|
|
||||||
createInvitation: ["POST /orgs/{org}/invitations"],
|
|
||||||
createIssueType: ["POST /orgs/{org}/issue-types"],
|
|
||||||
createWebhook: ["POST /orgs/{org}/hooks"],
|
|
||||||
customPropertiesForOrgsCreateOrUpdateOrganizationValues: [
|
|
||||||
"PATCH /organizations/{org}/org-properties/values"
|
|
||||||
],
|
|
||||||
customPropertiesForOrgsGetOrganizationValues: [
|
|
||||||
"GET /organizations/{org}/org-properties/values"
|
|
||||||
],
|
|
||||||
customPropertiesForReposCreateOrUpdateOrganizationDefinition: [
|
|
||||||
"PUT /orgs/{org}/properties/schema/{custom_property_name}"
|
|
||||||
],
|
|
||||||
customPropertiesForReposCreateOrUpdateOrganizationDefinitions: [
|
|
||||||
"PATCH /orgs/{org}/properties/schema"
|
|
||||||
],
|
|
||||||
customPropertiesForReposCreateOrUpdateOrganizationValues: [
|
|
||||||
"PATCH /orgs/{org}/properties/values"
|
|
||||||
],
|
|
||||||
customPropertiesForReposDeleteOrganizationDefinition: [
|
|
||||||
"DELETE /orgs/{org}/properties/schema/{custom_property_name}"
|
|
||||||
],
|
|
||||||
customPropertiesForReposGetOrganizationDefinition: [
|
|
||||||
"GET /orgs/{org}/properties/schema/{custom_property_name}"
|
|
||||||
],
|
|
||||||
customPropertiesForReposGetOrganizationDefinitions: [
|
|
||||||
"GET /orgs/{org}/properties/schema"
|
|
||||||
],
|
|
||||||
customPropertiesForReposGetOrganizationValues: [
|
|
||||||
"GET /orgs/{org}/properties/values"
|
|
||||||
],
|
|
||||||
delete: ["DELETE /orgs/{org}"],
|
|
||||||
deleteAttestationsBulk: ["POST /orgs/{org}/attestations/delete-request"],
|
|
||||||
deleteAttestationsById: [
|
|
||||||
"DELETE /orgs/{org}/attestations/{attestation_id}"
|
|
||||||
],
|
|
||||||
deleteAttestationsBySubjectDigest: [
|
|
||||||
"DELETE /orgs/{org}/attestations/digest/{subject_digest}"
|
|
||||||
],
|
|
||||||
deleteIssueType: ["DELETE /orgs/{org}/issue-types/{issue_type_id}"],
|
|
||||||
deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"],
|
|
||||||
disableSelectedRepositoryImmutableReleasesOrganization: [
|
|
||||||
"DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
enableSelectedRepositoryImmutableReleasesOrganization: [
|
|
||||||
"PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"
|
|
||||||
],
|
|
||||||
get: ["GET /orgs/{org}"],
|
|
||||||
getImmutableReleasesSettings: [
|
|
||||||
"GET /orgs/{org}/settings/immutable-releases"
|
|
||||||
],
|
|
||||||
getImmutableReleasesSettingsRepositories: [
|
|
||||||
"GET /orgs/{org}/settings/immutable-releases/repositories"
|
|
||||||
],
|
|
||||||
getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"],
|
|
||||||
getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"],
|
|
||||||
getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"],
|
|
||||||
getOrgRulesetHistory: ["GET /orgs/{org}/rulesets/{ruleset_id}/history"],
|
|
||||||
getOrgRulesetVersion: [
|
|
||||||
"GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"
|
|
||||||
],
|
|
||||||
getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"],
|
|
||||||
getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"],
|
|
||||||
getWebhookDelivery: [
|
|
||||||
"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"
|
|
||||||
],
|
|
||||||
list: ["GET /organizations"],
|
|
||||||
listAppInstallations: ["GET /orgs/{org}/installations"],
|
|
||||||
listArtifactStorageRecords: [
|
|
||||||
"GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"
|
|
||||||
],
|
|
||||||
listAttestationRepositories: ["GET /orgs/{org}/attestations/repositories"],
|
|
||||||
listAttestations: ["GET /orgs/{org}/attestations/{subject_digest}"],
|
|
||||||
listAttestationsBulk: [
|
|
||||||
"POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"
|
|
||||||
],
|
|
||||||
listBlockedUsers: ["GET /orgs/{org}/blocks"],
|
|
||||||
listFailedInvitations: ["GET /orgs/{org}/failed_invitations"],
|
|
||||||
listForAuthenticatedUser: ["GET /user/orgs"],
|
|
||||||
listForUser: ["GET /users/{username}/orgs"],
|
|
||||||
listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"],
|
|
||||||
listIssueTypes: ["GET /orgs/{org}/issue-types"],
|
|
||||||
listMembers: ["GET /orgs/{org}/members"],
|
|
||||||
listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"],
|
|
||||||
listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"],
|
|
||||||
listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"],
|
|
||||||
listOrgRoles: ["GET /orgs/{org}/organization-roles"],
|
|
||||||
listOrganizationFineGrainedPermissions: [
|
|
||||||
"GET /orgs/{org}/organization-fine-grained-permissions"
|
|
||||||
],
|
|
||||||
listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"],
|
|
||||||
listPatGrantRepositories: [
|
|
||||||
"GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"
|
|
||||||
],
|
|
||||||
listPatGrantRequestRepositories: [
|
|
||||||
"GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"
|
|
||||||
],
|
|
||||||
listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"],
|
|
||||||
listPatGrants: ["GET /orgs/{org}/personal-access-tokens"],
|
|
||||||
listPendingInvitations: ["GET /orgs/{org}/invitations"],
|
|
||||||
listPublicMembers: ["GET /orgs/{org}/public_members"],
|
|
||||||
listSecurityManagerTeams: [
|
|
||||||
"GET /orgs/{org}/security-managers",
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
deprecated: "octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"],
|
|
||||||
listWebhooks: ["GET /orgs/{org}/hooks"],
|
|
||||||
pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"],
|
|
||||||
redeliverWebhookDelivery: [
|
|
||||||
"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"
|
|
||||||
],
|
|
||||||
removeMember: ["DELETE /orgs/{org}/members/{username}"],
|
|
||||||
removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"],
|
|
||||||
removeOutsideCollaborator: [
|
|
||||||
"DELETE /orgs/{org}/outside_collaborators/{username}"
|
|
||||||
],
|
|
||||||
removePublicMembershipForAuthenticatedUser: [
|
|
||||||
"DELETE /orgs/{org}/public_members/{username}"
|
|
||||||
],
|
|
||||||
removeSecurityManagerTeam: [
|
|
||||||
"DELETE /orgs/{org}/security-managers/teams/{team_slug}",
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
deprecated: "octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
reviewPatGrantRequest: [
|
|
||||||
"POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"
|
|
||||||
],
|
|
||||||
reviewPatGrantRequestsInBulk: [
|
|
||||||
"POST /orgs/{org}/personal-access-token-requests"
|
|
||||||
],
|
|
||||||
revokeAllOrgRolesTeam: [
|
|
||||||
"DELETE /orgs/{org}/organization-roles/teams/{team_slug}"
|
|
||||||
],
|
|
||||||
revokeAllOrgRolesUser: [
|
|
||||||
"DELETE /orgs/{org}/organization-roles/users/{username}"
|
|
||||||
],
|
|
||||||
revokeOrgRoleTeam: [
|
|
||||||
"DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"
|
|
||||||
],
|
|
||||||
revokeOrgRoleUser: [
|
|
||||||
"DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"
|
|
||||||
],
|
|
||||||
setImmutableReleasesSettings: [
|
|
||||||
"PUT /orgs/{org}/settings/immutable-releases"
|
|
||||||
],
|
|
||||||
setImmutableReleasesSettingsRepositories: [
|
|
||||||
"PUT /orgs/{org}/settings/immutable-releases/repositories"
|
|
||||||
],
|
|
||||||
setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"],
|
|
||||||
setPublicMembershipForAuthenticatedUser: [
|
|
||||||
"PUT /orgs/{org}/public_members/{username}"
|
|
||||||
],
|
|
||||||
unblockUser: ["DELETE /orgs/{org}/blocks/{username}"],
|
|
||||||
update: ["PATCH /orgs/{org}"],
|
|
||||||
updateIssueType: ["PUT /orgs/{org}/issue-types/{issue_type_id}"],
|
|
||||||
updateMembershipForAuthenticatedUser: [
|
|
||||||
"PATCH /user/memberships/orgs/{org}"
|
|
||||||
],
|
|
||||||
updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"],
|
|
||||||
updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"],
|
|
||||||
updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"],
|
|
||||||
updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"]
|
|
||||||
},
|
|
||||||
packages: {
|
|
||||||
deletePackageForAuthenticatedUser: [
|
|
||||||
"DELETE /user/packages/{package_type}/{package_name}"
|
|
||||||
],
|
|
||||||
deletePackageForOrg: [
|
|
||||||
"DELETE /orgs/{org}/packages/{package_type}/{package_name}"
|
|
||||||
],
|
|
||||||
deletePackageForUser: [
|
|
||||||
"DELETE /users/{username}/packages/{package_type}/{package_name}"
|
|
||||||
],
|
|
||||||
deletePackageVersionForAuthenticatedUser: [
|
|
||||||
"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"
|
|
||||||
],
|
|
||||||
deletePackageVersionForOrg: [
|
|
||||||
"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"
|
|
||||||
],
|
|
||||||
deletePackageVersionForUser: [
|
|
||||||
"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"
|
|
||||||
],
|
|
||||||
getAllPackageVersionsForAPackageOwnedByAnOrg: [
|
|
||||||
"GET /orgs/{org}/packages/{package_type}/{package_name}/versions",
|
|
||||||
{},
|
|
||||||
{ renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] }
|
|
||||||
],
|
|
||||||
getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [
|
|
||||||
"GET /user/packages/{package_type}/{package_name}/versions",
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
renamed: [
|
|
||||||
"packages",
|
|
||||||
"getAllPackageVersionsForPackageOwnedByAuthenticatedUser"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [
|
|
||||||
"GET /user/packages/{package_type}/{package_name}/versions"
|
|
||||||
],
|
|
||||||
getAllPackageVersionsForPackageOwnedByOrg: [
|
|
||||||
"GET /orgs/{org}/packages/{package_type}/{package_name}/versions"
|
|
||||||
],
|
|
||||||
getAllPackageVersionsForPackageOwnedByUser: [
|
|
||||||
"GET /users/{username}/packages/{package_type}/{package_name}/versions"
|
|
||||||
],
|
|
||||||
getPackageForAuthenticatedUser: [
|
|
||||||
"GET /user/packages/{package_type}/{package_name}"
|
|
||||||
],
|
|
||||||
getPackageForOrganization: [
|
|
||||||
"GET /orgs/{org}/packages/{package_type}/{package_name}"
|
|
||||||
],
|
|
||||||
getPackageForUser: [
|
|
||||||
"GET /users/{username}/packages/{package_type}/{package_name}"
|
|
||||||
],
|
|
||||||
getPackageVersionForAuthenticatedUser: [
|
|
||||||
"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"
|
|
||||||
],
|
|
||||||
getPackageVersionForOrganization: [
|
|
||||||
"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"
|
|
||||||
],
|
|
||||||
getPackageVersionForUser: [
|
|
||||||
"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"
|
|
||||||
],
|
|
||||||
listDockerMigrationConflictingPackagesForAuthenticatedUser: [
|
|
||||||
"GET /user/docker/conflicts"
|
|
||||||
],
|
|
||||||
listDockerMigrationConflictingPackagesForOrganization: [
|
|
||||||
"GET /orgs/{org}/docker/conflicts"
|
|
||||||
],
|
|
||||||
listDockerMigrationConflictingPackagesForUser: [
|
|
||||||
"GET /users/{username}/docker/conflicts"
|
|
||||||
],
|
|
||||||
listPackagesForAuthenticatedUser: ["GET /user/packages"],
|
|
||||||
listPackagesForOrganization: ["GET /orgs/{org}/packages"],
|
|
||||||
listPackagesForUser: ["GET /users/{username}/packages"],
|
|
||||||
restorePackageForAuthenticatedUser: [
|
|
||||||
"POST /user/packages/{package_type}/{package_name}/restore{?token}"
|
|
||||||
],
|
|
||||||
restorePackageForOrg: [
|
|
||||||
"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"
|
|
||||||
],
|
|
||||||
restorePackageForUser: [
|
|
||||||
"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"
|
|
||||||
],
|
|
||||||
restorePackageVersionForAuthenticatedUser: [
|
|
||||||
"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"
|
|
||||||
],
|
|
||||||
restorePackageVersionForOrg: [
|
|
||||||
"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"
|
|
||||||
],
|
|
||||||
restorePackageVersionForUser: [
|
|
||||||
"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
privateRegistries: {
|
|
||||||
createOrgPrivateRegistry: ["POST /orgs/{org}/private-registries"],
|
|
||||||
deleteOrgPrivateRegistry: [
|
|
||||||
"DELETE /orgs/{org}/private-registries/{secret_name}"
|
|
||||||
],
|
|
||||||
getOrgPrivateRegistry: ["GET /orgs/{org}/private-registries/{secret_name}"],
|
|
||||||
getOrgPublicKey: ["GET /orgs/{org}/private-registries/public-key"],
|
|
||||||
listOrgPrivateRegistries: ["GET /orgs/{org}/private-registries"],
|
|
||||||
updateOrgPrivateRegistry: [
|
|
||||||
"PATCH /orgs/{org}/private-registries/{secret_name}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
projects: {
|
|
||||||
addItemForOrg: ["POST /orgs/{org}/projectsV2/{project_number}/items"],
|
|
||||||
addItemForUser: [
|
|
||||||
"POST /users/{username}/projectsV2/{project_number}/items"
|
|
||||||
],
|
|
||||||
deleteItemForOrg: [
|
|
||||||
"DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"
|
|
||||||
],
|
|
||||||
deleteItemForUser: [
|
|
||||||
"DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"
|
|
||||||
],
|
|
||||||
getFieldForOrg: [
|
|
||||||
"GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"
|
|
||||||
],
|
|
||||||
getFieldForUser: [
|
|
||||||
"GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"
|
|
||||||
],
|
|
||||||
getForOrg: ["GET /orgs/{org}/projectsV2/{project_number}"],
|
|
||||||
getForUser: ["GET /users/{username}/projectsV2/{project_number}"],
|
|
||||||
getOrgItem: ["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],
|
|
||||||
getUserItem: [
|
|
||||||
"GET /users/{username}/projectsV2/{project_number}/items/{item_id}"
|
|
||||||
],
|
|
||||||
listFieldsForOrg: ["GET /orgs/{org}/projectsV2/{project_number}/fields"],
|
|
||||||
listFieldsForUser: [
|
|
||||||
"GET /users/{username}/projectsV2/{project_number}/fields"
|
|
||||||
],
|
|
||||||
listForOrg: ["GET /orgs/{org}/projectsV2"],
|
|
||||||
listForUser: ["GET /users/{username}/projectsV2"],
|
|
||||||
listItemsForOrg: ["GET /orgs/{org}/projectsV2/{project_number}/items"],
|
|
||||||
listItemsForUser: [
|
|
||||||
"GET /users/{username}/projectsV2/{project_number}/items"
|
|
||||||
],
|
|
||||||
updateItemForOrg: [
|
|
||||||
"PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"
|
|
||||||
],
|
|
||||||
updateItemForUser: [
|
|
||||||
"PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
pulls: {
|
|
||||||
checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],
|
|
||||||
create: ["POST /repos/{owner}/{repo}/pulls"],
|
|
||||||
createReplyForReviewComment: [
|
|
||||||
"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"
|
|
||||||
],
|
|
||||||
createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],
|
|
||||||
createReviewComment: [
|
|
||||||
"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"
|
|
||||||
],
|
|
||||||
deletePendingReview: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"
|
|
||||||
],
|
|
||||||
deleteReviewComment: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"
|
|
||||||
],
|
|
||||||
dismissReview: [
|
|
||||||
"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"
|
|
||||||
],
|
|
||||||
get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"],
|
|
||||||
getReview: [
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"
|
|
||||||
],
|
|
||||||
getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],
|
|
||||||
list: ["GET /repos/{owner}/{repo}/pulls"],
|
|
||||||
listCommentsForReview: [
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"
|
|
||||||
],
|
|
||||||
listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],
|
|
||||||
listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],
|
|
||||||
listRequestedReviewers: [
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"
|
|
||||||
],
|
|
||||||
listReviewComments: [
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"
|
|
||||||
],
|
|
||||||
listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"],
|
|
||||||
listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],
|
|
||||||
merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],
|
|
||||||
removeRequestedReviewers: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"
|
|
||||||
],
|
|
||||||
requestReviewers: [
|
|
||||||
"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"
|
|
||||||
],
|
|
||||||
submitReview: [
|
|
||||||
"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"
|
|
||||||
],
|
|
||||||
update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],
|
|
||||||
updateBranch: [
|
|
||||||
"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"
|
|
||||||
],
|
|
||||||
updateReview: [
|
|
||||||
"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"
|
|
||||||
],
|
|
||||||
updateReviewComment: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
rateLimit: { get: ["GET /rate_limit"] },
|
|
||||||
reactions: {
|
|
||||||
createForCommitComment: [
|
|
||||||
"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"
|
|
||||||
],
|
|
||||||
createForIssue: [
|
|
||||||
"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"
|
|
||||||
],
|
|
||||||
createForIssueComment: [
|
|
||||||
"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"
|
|
||||||
],
|
|
||||||
createForPullRequestReviewComment: [
|
|
||||||
"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"
|
|
||||||
],
|
|
||||||
createForRelease: [
|
|
||||||
"POST /repos/{owner}/{repo}/releases/{release_id}/reactions"
|
|
||||||
],
|
|
||||||
createForTeamDiscussionCommentInOrg: [
|
|
||||||
"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"
|
|
||||||
],
|
|
||||||
createForTeamDiscussionInOrg: [
|
|
||||||
"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"
|
|
||||||
],
|
|
||||||
deleteForCommitComment: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"
|
|
||||||
],
|
|
||||||
deleteForIssue: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"
|
|
||||||
],
|
|
||||||
deleteForIssueComment: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"
|
|
||||||
],
|
|
||||||
deleteForPullRequestComment: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"
|
|
||||||
],
|
|
||||||
deleteForRelease: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"
|
|
||||||
],
|
|
||||||
deleteForTeamDiscussion: [
|
|
||||||
"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"
|
|
||||||
],
|
|
||||||
deleteForTeamDiscussionComment: [
|
|
||||||
"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"
|
|
||||||
],
|
|
||||||
listForCommitComment: [
|
|
||||||
"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"
|
|
||||||
],
|
|
||||||
listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],
|
|
||||||
listForIssueComment: [
|
|
||||||
"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"
|
|
||||||
],
|
|
||||||
listForPullRequestReviewComment: [
|
|
||||||
"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"
|
|
||||||
],
|
|
||||||
listForRelease: [
|
|
||||||
"GET /repos/{owner}/{repo}/releases/{release_id}/reactions"
|
|
||||||
],
|
|
||||||
listForTeamDiscussionCommentInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"
|
|
||||||
],
|
|
||||||
listForTeamDiscussionInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
repos: {
|
|
||||||
acceptInvitation: [
|
|
||||||
"PATCH /user/repository_invitations/{invitation_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["repos", "acceptInvitationForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
acceptInvitationForAuthenticatedUser: [
|
|
||||||
"PATCH /user/repository_invitations/{invitation_id}"
|
|
||||||
],
|
|
||||||
addAppAccessRestrictions: [
|
|
||||||
"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",
|
|
||||||
{},
|
|
||||||
{ mapToData: "apps" }
|
|
||||||
],
|
|
||||||
addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"],
|
|
||||||
addStatusCheckContexts: [
|
|
||||||
"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",
|
|
||||||
{},
|
|
||||||
{ mapToData: "contexts" }
|
|
||||||
],
|
|
||||||
addTeamAccessRestrictions: [
|
|
||||||
"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",
|
|
||||||
{},
|
|
||||||
{ mapToData: "teams" }
|
|
||||||
],
|
|
||||||
addUserAccessRestrictions: [
|
|
||||||
"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",
|
|
||||||
{},
|
|
||||||
{ mapToData: "users" }
|
|
||||||
],
|
|
||||||
cancelPagesDeployment: [
|
|
||||||
"POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"
|
|
||||||
],
|
|
||||||
checkAutomatedSecurityFixes: [
|
|
||||||
"GET /repos/{owner}/{repo}/automated-security-fixes"
|
|
||||||
],
|
|
||||||
checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"],
|
|
||||||
checkImmutableReleases: ["GET /repos/{owner}/{repo}/immutable-releases"],
|
|
||||||
checkPrivateVulnerabilityReporting: [
|
|
||||||
"GET /repos/{owner}/{repo}/private-vulnerability-reporting"
|
|
||||||
],
|
|
||||||
checkVulnerabilityAlerts: [
|
|
||||||
"GET /repos/{owner}/{repo}/vulnerability-alerts"
|
|
||||||
],
|
|
||||||
codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"],
|
|
||||||
compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"],
|
|
||||||
compareCommitsWithBasehead: [
|
|
||||||
"GET /repos/{owner}/{repo}/compare/{basehead}"
|
|
||||||
],
|
|
||||||
createAttestation: ["POST /repos/{owner}/{repo}/attestations"],
|
|
||||||
createAutolink: ["POST /repos/{owner}/{repo}/autolinks"],
|
|
||||||
createCommitComment: [
|
|
||||||
"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"
|
|
||||||
],
|
|
||||||
createCommitSignatureProtection: [
|
|
||||||
"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"
|
|
||||||
],
|
|
||||||
createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"],
|
|
||||||
createDeployKey: ["POST /repos/{owner}/{repo}/keys"],
|
|
||||||
createDeployment: ["POST /repos/{owner}/{repo}/deployments"],
|
|
||||||
createDeploymentBranchPolicy: [
|
|
||||||
"POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"
|
|
||||||
],
|
|
||||||
createDeploymentProtectionRule: [
|
|
||||||
"POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"
|
|
||||||
],
|
|
||||||
createDeploymentStatus: [
|
|
||||||
"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"
|
|
||||||
],
|
|
||||||
createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"],
|
|
||||||
createForAuthenticatedUser: ["POST /user/repos"],
|
|
||||||
createFork: ["POST /repos/{owner}/{repo}/forks"],
|
|
||||||
createInOrg: ["POST /orgs/{org}/repos"],
|
|
||||||
createOrUpdateEnvironment: [
|
|
||||||
"PUT /repos/{owner}/{repo}/environments/{environment_name}"
|
|
||||||
],
|
|
||||||
createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"],
|
|
||||||
createOrgRuleset: ["POST /orgs/{org}/rulesets"],
|
|
||||||
createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"],
|
|
||||||
createPagesSite: ["POST /repos/{owner}/{repo}/pages"],
|
|
||||||
createRelease: ["POST /repos/{owner}/{repo}/releases"],
|
|
||||||
createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"],
|
|
||||||
createUsingTemplate: [
|
|
||||||
"POST /repos/{template_owner}/{template_repo}/generate"
|
|
||||||
],
|
|
||||||
createWebhook: ["POST /repos/{owner}/{repo}/hooks"],
|
|
||||||
customPropertiesForReposCreateOrUpdateRepositoryValues: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/properties/values"
|
|
||||||
],
|
|
||||||
customPropertiesForReposGetRepositoryValues: [
|
|
||||||
"GET /repos/{owner}/{repo}/properties/values"
|
|
||||||
],
|
|
||||||
declineInvitation: [
|
|
||||||
"DELETE /user/repository_invitations/{invitation_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["repos", "declineInvitationForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
declineInvitationForAuthenticatedUser: [
|
|
||||||
"DELETE /user/repository_invitations/{invitation_id}"
|
|
||||||
],
|
|
||||||
delete: ["DELETE /repos/{owner}/{repo}"],
|
|
||||||
deleteAccessRestrictions: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"
|
|
||||||
],
|
|
||||||
deleteAdminBranchProtection: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"
|
|
||||||
],
|
|
||||||
deleteAnEnvironment: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/environments/{environment_name}"
|
|
||||||
],
|
|
||||||
deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],
|
|
||||||
deleteBranchProtection: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection"
|
|
||||||
],
|
|
||||||
deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],
|
|
||||||
deleteCommitSignatureProtection: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"
|
|
||||||
],
|
|
||||||
deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"],
|
|
||||||
deleteDeployment: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"
|
|
||||||
],
|
|
||||||
deleteDeploymentBranchPolicy: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"
|
|
||||||
],
|
|
||||||
deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"],
|
|
||||||
deleteInvitation: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"
|
|
||||||
],
|
|
||||||
deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"],
|
|
||||||
deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"],
|
|
||||||
deletePullRequestReviewProtection: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"
|
|
||||||
],
|
|
||||||
deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"],
|
|
||||||
deleteReleaseAsset: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"
|
|
||||||
],
|
|
||||||
deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],
|
|
||||||
deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],
|
|
||||||
disableAutomatedSecurityFixes: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/automated-security-fixes"
|
|
||||||
],
|
|
||||||
disableDeploymentProtectionRule: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"
|
|
||||||
],
|
|
||||||
disableImmutableReleases: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/immutable-releases"
|
|
||||||
],
|
|
||||||
disablePrivateVulnerabilityReporting: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"
|
|
||||||
],
|
|
||||||
disableVulnerabilityAlerts: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/vulnerability-alerts"
|
|
||||||
],
|
|
||||||
downloadArchive: [
|
|
||||||
"GET /repos/{owner}/{repo}/zipball/{ref}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["repos", "downloadZipballArchive"] }
|
|
||||||
],
|
|
||||||
downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"],
|
|
||||||
downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"],
|
|
||||||
enableAutomatedSecurityFixes: [
|
|
||||||
"PUT /repos/{owner}/{repo}/automated-security-fixes"
|
|
||||||
],
|
|
||||||
enableImmutableReleases: ["PUT /repos/{owner}/{repo}/immutable-releases"],
|
|
||||||
enablePrivateVulnerabilityReporting: [
|
|
||||||
"PUT /repos/{owner}/{repo}/private-vulnerability-reporting"
|
|
||||||
],
|
|
||||||
enableVulnerabilityAlerts: [
|
|
||||||
"PUT /repos/{owner}/{repo}/vulnerability-alerts"
|
|
||||||
],
|
|
||||||
generateReleaseNotes: [
|
|
||||||
"POST /repos/{owner}/{repo}/releases/generate-notes"
|
|
||||||
],
|
|
||||||
get: ["GET /repos/{owner}/{repo}"],
|
|
||||||
getAccessRestrictions: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"
|
|
||||||
],
|
|
||||||
getAdminBranchProtection: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"
|
|
||||||
],
|
|
||||||
getAllDeploymentProtectionRules: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"
|
|
||||||
],
|
|
||||||
getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"],
|
|
||||||
getAllStatusCheckContexts: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"
|
|
||||||
],
|
|
||||||
getAllTopics: ["GET /repos/{owner}/{repo}/topics"],
|
|
||||||
getAppsWithAccessToProtectedBranch: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"
|
|
||||||
],
|
|
||||||
getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],
|
|
||||||
getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"],
|
|
||||||
getBranchProtection: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection"
|
|
||||||
],
|
|
||||||
getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"],
|
|
||||||
getClones: ["GET /repos/{owner}/{repo}/traffic/clones"],
|
|
||||||
getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"],
|
|
||||||
getCollaboratorPermissionLevel: [
|
|
||||||
"GET /repos/{owner}/{repo}/collaborators/{username}/permission"
|
|
||||||
],
|
|
||||||
getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"],
|
|
||||||
getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"],
|
|
||||||
getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"],
|
|
||||||
getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"],
|
|
||||||
getCommitSignatureProtection: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"
|
|
||||||
],
|
|
||||||
getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"],
|
|
||||||
getContent: ["GET /repos/{owner}/{repo}/contents/{path}"],
|
|
||||||
getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"],
|
|
||||||
getCustomDeploymentProtectionRule: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"
|
|
||||||
],
|
|
||||||
getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"],
|
|
||||||
getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],
|
|
||||||
getDeploymentBranchPolicy: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"
|
|
||||||
],
|
|
||||||
getDeploymentStatus: [
|
|
||||||
"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"
|
|
||||||
],
|
|
||||||
getEnvironment: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}"
|
|
||||||
],
|
|
||||||
getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"],
|
|
||||||
getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"],
|
|
||||||
getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],
|
|
||||||
getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"],
|
|
||||||
getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"],
|
|
||||||
getOrgRulesets: ["GET /orgs/{org}/rulesets"],
|
|
||||||
getPages: ["GET /repos/{owner}/{repo}/pages"],
|
|
||||||
getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],
|
|
||||||
getPagesDeployment: [
|
|
||||||
"GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"
|
|
||||||
],
|
|
||||||
getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"],
|
|
||||||
getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"],
|
|
||||||
getPullRequestReviewProtection: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"
|
|
||||||
],
|
|
||||||
getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"],
|
|
||||||
getReadme: ["GET /repos/{owner}/{repo}/readme"],
|
|
||||||
getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"],
|
|
||||||
getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"],
|
|
||||||
getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],
|
|
||||||
getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"],
|
|
||||||
getRepoRuleSuite: [
|
|
||||||
"GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"
|
|
||||||
],
|
|
||||||
getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"],
|
|
||||||
getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],
|
|
||||||
getRepoRulesetHistory: [
|
|
||||||
"GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"
|
|
||||||
],
|
|
||||||
getRepoRulesetVersion: [
|
|
||||||
"GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"
|
|
||||||
],
|
|
||||||
getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"],
|
|
||||||
getStatusChecksProtection: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"
|
|
||||||
],
|
|
||||||
getTeamsWithAccessToProtectedBranch: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"
|
|
||||||
],
|
|
||||||
getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"],
|
|
||||||
getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"],
|
|
||||||
getUsersWithAccessToProtectedBranch: [
|
|
||||||
"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"
|
|
||||||
],
|
|
||||||
getViews: ["GET /repos/{owner}/{repo}/traffic/views"],
|
|
||||||
getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"],
|
|
||||||
getWebhookConfigForRepo: [
|
|
||||||
"GET /repos/{owner}/{repo}/hooks/{hook_id}/config"
|
|
||||||
],
|
|
||||||
getWebhookDelivery: [
|
|
||||||
"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"
|
|
||||||
],
|
|
||||||
listActivities: ["GET /repos/{owner}/{repo}/activity"],
|
|
||||||
listAttestations: [
|
|
||||||
"GET /repos/{owner}/{repo}/attestations/{subject_digest}"
|
|
||||||
],
|
|
||||||
listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"],
|
|
||||||
listBranches: ["GET /repos/{owner}/{repo}/branches"],
|
|
||||||
listBranchesForHeadCommit: [
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"
|
|
||||||
],
|
|
||||||
listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"],
|
|
||||||
listCommentsForCommit: [
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"
|
|
||||||
],
|
|
||||||
listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"],
|
|
||||||
listCommitStatusesForRef: [
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{ref}/statuses"
|
|
||||||
],
|
|
||||||
listCommits: ["GET /repos/{owner}/{repo}/commits"],
|
|
||||||
listContributors: ["GET /repos/{owner}/{repo}/contributors"],
|
|
||||||
listCustomDeploymentRuleIntegrations: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"
|
|
||||||
],
|
|
||||||
listDeployKeys: ["GET /repos/{owner}/{repo}/keys"],
|
|
||||||
listDeploymentBranchPolicies: [
|
|
||||||
"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"
|
|
||||||
],
|
|
||||||
listDeploymentStatuses: [
|
|
||||||
"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"
|
|
||||||
],
|
|
||||||
listDeployments: ["GET /repos/{owner}/{repo}/deployments"],
|
|
||||||
listForAuthenticatedUser: ["GET /user/repos"],
|
|
||||||
listForOrg: ["GET /orgs/{org}/repos"],
|
|
||||||
listForUser: ["GET /users/{username}/repos"],
|
|
||||||
listForks: ["GET /repos/{owner}/{repo}/forks"],
|
|
||||||
listInvitations: ["GET /repos/{owner}/{repo}/invitations"],
|
|
||||||
listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"],
|
|
||||||
listLanguages: ["GET /repos/{owner}/{repo}/languages"],
|
|
||||||
listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"],
|
|
||||||
listPublic: ["GET /repositories"],
|
|
||||||
listPullRequestsAssociatedWithCommit: [
|
|
||||||
"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"
|
|
||||||
],
|
|
||||||
listReleaseAssets: [
|
|
||||||
"GET /repos/{owner}/{repo}/releases/{release_id}/assets"
|
|
||||||
],
|
|
||||||
listReleases: ["GET /repos/{owner}/{repo}/releases"],
|
|
||||||
listTags: ["GET /repos/{owner}/{repo}/tags"],
|
|
||||||
listTeams: ["GET /repos/{owner}/{repo}/teams"],
|
|
||||||
listWebhookDeliveries: [
|
|
||||||
"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"
|
|
||||||
],
|
|
||||||
listWebhooks: ["GET /repos/{owner}/{repo}/hooks"],
|
|
||||||
merge: ["POST /repos/{owner}/{repo}/merges"],
|
|
||||||
mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"],
|
|
||||||
pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],
|
|
||||||
redeliverWebhookDelivery: [
|
|
||||||
"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"
|
|
||||||
],
|
|
||||||
removeAppAccessRestrictions: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",
|
|
||||||
{},
|
|
||||||
{ mapToData: "apps" }
|
|
||||||
],
|
|
||||||
removeCollaborator: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/collaborators/{username}"
|
|
||||||
],
|
|
||||||
removeStatusCheckContexts: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",
|
|
||||||
{},
|
|
||||||
{ mapToData: "contexts" }
|
|
||||||
],
|
|
||||||
removeStatusCheckProtection: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"
|
|
||||||
],
|
|
||||||
removeTeamAccessRestrictions: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",
|
|
||||||
{},
|
|
||||||
{ mapToData: "teams" }
|
|
||||||
],
|
|
||||||
removeUserAccessRestrictions: [
|
|
||||||
"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",
|
|
||||||
{},
|
|
||||||
{ mapToData: "users" }
|
|
||||||
],
|
|
||||||
renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"],
|
|
||||||
replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"],
|
|
||||||
requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"],
|
|
||||||
setAdminBranchProtection: [
|
|
||||||
"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"
|
|
||||||
],
|
|
||||||
setAppAccessRestrictions: [
|
|
||||||
"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",
|
|
||||||
{},
|
|
||||||
{ mapToData: "apps" }
|
|
||||||
],
|
|
||||||
setStatusCheckContexts: [
|
|
||||||
"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",
|
|
||||||
{},
|
|
||||||
{ mapToData: "contexts" }
|
|
||||||
],
|
|
||||||
setTeamAccessRestrictions: [
|
|
||||||
"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",
|
|
||||||
{},
|
|
||||||
{ mapToData: "teams" }
|
|
||||||
],
|
|
||||||
setUserAccessRestrictions: [
|
|
||||||
"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",
|
|
||||||
{},
|
|
||||||
{ mapToData: "users" }
|
|
||||||
],
|
|
||||||
testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],
|
|
||||||
transfer: ["POST /repos/{owner}/{repo}/transfer"],
|
|
||||||
update: ["PATCH /repos/{owner}/{repo}"],
|
|
||||||
updateBranchProtection: [
|
|
||||||
"PUT /repos/{owner}/{repo}/branches/{branch}/protection"
|
|
||||||
],
|
|
||||||
updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],
|
|
||||||
updateDeploymentBranchPolicy: [
|
|
||||||
"PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"
|
|
||||||
],
|
|
||||||
updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"],
|
|
||||||
updateInvitation: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"
|
|
||||||
],
|
|
||||||
updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"],
|
|
||||||
updatePullRequestReviewProtection: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"
|
|
||||||
],
|
|
||||||
updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"],
|
|
||||||
updateReleaseAsset: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"
|
|
||||||
],
|
|
||||||
updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],
|
|
||||||
updateStatusCheckPotection: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",
|
|
||||||
{},
|
|
||||||
{ renamed: ["repos", "updateStatusCheckProtection"] }
|
|
||||||
],
|
|
||||||
updateStatusCheckProtection: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"
|
|
||||||
],
|
|
||||||
updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],
|
|
||||||
updateWebhookConfigForRepo: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"
|
|
||||||
],
|
|
||||||
uploadReleaseAsset: [
|
|
||||||
"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",
|
|
||||||
{ baseUrl: "https://uploads.github.com" }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
search: {
|
|
||||||
code: ["GET /search/code"],
|
|
||||||
commits: ["GET /search/commits"],
|
|
||||||
issuesAndPullRequests: ["GET /search/issues"],
|
|
||||||
labels: ["GET /search/labels"],
|
|
||||||
repos: ["GET /search/repositories"],
|
|
||||||
topics: ["GET /search/topics"],
|
|
||||||
users: ["GET /search/users"]
|
|
||||||
},
|
|
||||||
secretScanning: {
|
|
||||||
createPushProtectionBypass: [
|
|
||||||
"POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"
|
|
||||||
],
|
|
||||||
getAlert: [
|
|
||||||
"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"
|
|
||||||
],
|
|
||||||
getScanHistory: ["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],
|
|
||||||
listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"],
|
|
||||||
listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"],
|
|
||||||
listLocationsForAlert: [
|
|
||||||
"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"
|
|
||||||
],
|
|
||||||
listOrgPatternConfigs: [
|
|
||||||
"GET /orgs/{org}/secret-scanning/pattern-configurations"
|
|
||||||
],
|
|
||||||
updateAlert: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"
|
|
||||||
],
|
|
||||||
updateOrgPatternConfigs: [
|
|
||||||
"PATCH /orgs/{org}/secret-scanning/pattern-configurations"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
securityAdvisories: {
|
|
||||||
createFork: [
|
|
||||||
"POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"
|
|
||||||
],
|
|
||||||
createPrivateVulnerabilityReport: [
|
|
||||||
"POST /repos/{owner}/{repo}/security-advisories/reports"
|
|
||||||
],
|
|
||||||
createRepositoryAdvisory: [
|
|
||||||
"POST /repos/{owner}/{repo}/security-advisories"
|
|
||||||
],
|
|
||||||
createRepositoryAdvisoryCveRequest: [
|
|
||||||
"POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"
|
|
||||||
],
|
|
||||||
getGlobalAdvisory: ["GET /advisories/{ghsa_id}"],
|
|
||||||
getRepositoryAdvisory: [
|
|
||||||
"GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"
|
|
||||||
],
|
|
||||||
listGlobalAdvisories: ["GET /advisories"],
|
|
||||||
listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"],
|
|
||||||
listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"],
|
|
||||||
updateRepositoryAdvisory: [
|
|
||||||
"PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
teams: {
|
|
||||||
addOrUpdateMembershipForUserInOrg: [
|
|
||||||
"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"
|
|
||||||
],
|
|
||||||
addOrUpdateRepoPermissionsInOrg: [
|
|
||||||
"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"
|
|
||||||
],
|
|
||||||
checkPermissionsForRepoInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"
|
|
||||||
],
|
|
||||||
create: ["POST /orgs/{org}/teams"],
|
|
||||||
createDiscussionCommentInOrg: [
|
|
||||||
"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"
|
|
||||||
],
|
|
||||||
createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"],
|
|
||||||
deleteDiscussionCommentInOrg: [
|
|
||||||
"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"
|
|
||||||
],
|
|
||||||
deleteDiscussionInOrg: [
|
|
||||||
"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"
|
|
||||||
],
|
|
||||||
deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"],
|
|
||||||
getByName: ["GET /orgs/{org}/teams/{team_slug}"],
|
|
||||||
getDiscussionCommentInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"
|
|
||||||
],
|
|
||||||
getDiscussionInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"
|
|
||||||
],
|
|
||||||
getMembershipForUserInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/memberships/{username}"
|
|
||||||
],
|
|
||||||
list: ["GET /orgs/{org}/teams"],
|
|
||||||
listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"],
|
|
||||||
listDiscussionCommentsInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"
|
|
||||||
],
|
|
||||||
listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"],
|
|
||||||
listForAuthenticatedUser: ["GET /user/teams"],
|
|
||||||
listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"],
|
|
||||||
listPendingInvitationsInOrg: [
|
|
||||||
"GET /orgs/{org}/teams/{team_slug}/invitations"
|
|
||||||
],
|
|
||||||
listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"],
|
|
||||||
removeMembershipForUserInOrg: [
|
|
||||||
"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"
|
|
||||||
],
|
|
||||||
removeRepoInOrg: [
|
|
||||||
"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"
|
|
||||||
],
|
|
||||||
updateDiscussionCommentInOrg: [
|
|
||||||
"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"
|
|
||||||
],
|
|
||||||
updateDiscussionInOrg: [
|
|
||||||
"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"
|
|
||||||
],
|
|
||||||
updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"]
|
|
||||||
},
|
|
||||||
users: {
|
|
||||||
addEmailForAuthenticated: [
|
|
||||||
"POST /user/emails",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "addEmailForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
addEmailForAuthenticatedUser: ["POST /user/emails"],
|
|
||||||
addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"],
|
|
||||||
block: ["PUT /user/blocks/{username}"],
|
|
||||||
checkBlocked: ["GET /user/blocks/{username}"],
|
|
||||||
checkFollowingForUser: ["GET /users/{username}/following/{target_user}"],
|
|
||||||
checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"],
|
|
||||||
createGpgKeyForAuthenticated: [
|
|
||||||
"POST /user/gpg_keys",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "createGpgKeyForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"],
|
|
||||||
createPublicSshKeyForAuthenticated: [
|
|
||||||
"POST /user/keys",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"],
|
|
||||||
createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"],
|
|
||||||
deleteAttestationsBulk: [
|
|
||||||
"POST /users/{username}/attestations/delete-request"
|
|
||||||
],
|
|
||||||
deleteAttestationsById: [
|
|
||||||
"DELETE /users/{username}/attestations/{attestation_id}"
|
|
||||||
],
|
|
||||||
deleteAttestationsBySubjectDigest: [
|
|
||||||
"DELETE /users/{username}/attestations/digest/{subject_digest}"
|
|
||||||
],
|
|
||||||
deleteEmailForAuthenticated: [
|
|
||||||
"DELETE /user/emails",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "deleteEmailForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
deleteEmailForAuthenticatedUser: ["DELETE /user/emails"],
|
|
||||||
deleteGpgKeyForAuthenticated: [
|
|
||||||
"DELETE /user/gpg_keys/{gpg_key_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"],
|
|
||||||
deletePublicSshKeyForAuthenticated: [
|
|
||||||
"DELETE /user/keys/{key_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"],
|
|
||||||
deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"],
|
|
||||||
deleteSshSigningKeyForAuthenticatedUser: [
|
|
||||||
"DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"
|
|
||||||
],
|
|
||||||
follow: ["PUT /user/following/{username}"],
|
|
||||||
getAuthenticated: ["GET /user"],
|
|
||||||
getById: ["GET /user/{account_id}"],
|
|
||||||
getByUsername: ["GET /users/{username}"],
|
|
||||||
getContextForUser: ["GET /users/{username}/hovercard"],
|
|
||||||
getGpgKeyForAuthenticated: [
|
|
||||||
"GET /user/gpg_keys/{gpg_key_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "getGpgKeyForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"],
|
|
||||||
getPublicSshKeyForAuthenticated: [
|
|
||||||
"GET /user/keys/{key_id}",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"],
|
|
||||||
getSshSigningKeyForAuthenticatedUser: [
|
|
||||||
"GET /user/ssh_signing_keys/{ssh_signing_key_id}"
|
|
||||||
],
|
|
||||||
list: ["GET /users"],
|
|
||||||
listAttestations: ["GET /users/{username}/attestations/{subject_digest}"],
|
|
||||||
listAttestationsBulk: [
|
|
||||||
"POST /users/{username}/attestations/bulk-list{?per_page,before,after}"
|
|
||||||
],
|
|
||||||
listBlockedByAuthenticated: [
|
|
||||||
"GET /user/blocks",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "listBlockedByAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
listBlockedByAuthenticatedUser: ["GET /user/blocks"],
|
|
||||||
listEmailsForAuthenticated: [
|
|
||||||
"GET /user/emails",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "listEmailsForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
listEmailsForAuthenticatedUser: ["GET /user/emails"],
|
|
||||||
listFollowedByAuthenticated: [
|
|
||||||
"GET /user/following",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "listFollowedByAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
listFollowedByAuthenticatedUser: ["GET /user/following"],
|
|
||||||
listFollowersForAuthenticatedUser: ["GET /user/followers"],
|
|
||||||
listFollowersForUser: ["GET /users/{username}/followers"],
|
|
||||||
listFollowingForUser: ["GET /users/{username}/following"],
|
|
||||||
listGpgKeysForAuthenticated: [
|
|
||||||
"GET /user/gpg_keys",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "listGpgKeysForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"],
|
|
||||||
listGpgKeysForUser: ["GET /users/{username}/gpg_keys"],
|
|
||||||
listPublicEmailsForAuthenticated: [
|
|
||||||
"GET /user/public_emails",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "listPublicEmailsForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"],
|
|
||||||
listPublicKeysForUser: ["GET /users/{username}/keys"],
|
|
||||||
listPublicSshKeysForAuthenticated: [
|
|
||||||
"GET /user/keys",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"],
|
|
||||||
listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"],
|
|
||||||
listSocialAccountsForUser: ["GET /users/{username}/social_accounts"],
|
|
||||||
listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"],
|
|
||||||
listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"],
|
|
||||||
setPrimaryEmailVisibilityForAuthenticated: [
|
|
||||||
"PATCH /user/email/visibility",
|
|
||||||
{},
|
|
||||||
{ renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] }
|
|
||||||
],
|
|
||||||
setPrimaryEmailVisibilityForAuthenticatedUser: [
|
|
||||||
"PATCH /user/email/visibility"
|
|
||||||
],
|
|
||||||
unblock: ["DELETE /user/blocks/{username}"],
|
|
||||||
unfollow: ["DELETE /user/following/{username}"],
|
|
||||||
updateAuthenticated: ["PATCH /user"]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
var endpoints_default = Endpoints;
|
|
||||||
|
|
||||||
//# sourceMappingURL=endpoints.js.map
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js
|
|
||||||
|
|
||||||
const endpointMethodsMap = /* @__PURE__ */ new Map();
|
|
||||||
for (const [scope, endpoints] of Object.entries(endpoints_default)) {
|
|
||||||
for (const [methodName, endpoint] of Object.entries(endpoints)) {
|
|
||||||
const [route, defaults, decorations] = endpoint;
|
|
||||||
const [method, url] = route.split(/ /);
|
|
||||||
const endpointDefaults = Object.assign(
|
|
||||||
{
|
|
||||||
method,
|
|
||||||
url
|
|
||||||
},
|
|
||||||
defaults
|
|
||||||
);
|
|
||||||
if (!endpointMethodsMap.has(scope)) {
|
|
||||||
endpointMethodsMap.set(scope, /* @__PURE__ */ new Map());
|
|
||||||
}
|
|
||||||
endpointMethodsMap.get(scope).set(methodName, {
|
|
||||||
scope,
|
|
||||||
methodName,
|
|
||||||
endpointDefaults,
|
|
||||||
decorations
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const handler = {
|
|
||||||
has({ scope }, methodName) {
|
|
||||||
return endpointMethodsMap.get(scope).has(methodName);
|
|
||||||
},
|
|
||||||
getOwnPropertyDescriptor(target, methodName) {
|
|
||||||
return {
|
|
||||||
value: this.get(target, methodName),
|
|
||||||
// ensures method is in the cache
|
|
||||||
configurable: true,
|
|
||||||
writable: true,
|
|
||||||
enumerable: true
|
|
||||||
};
|
|
||||||
},
|
|
||||||
defineProperty(target, methodName, descriptor) {
|
|
||||||
Object.defineProperty(target.cache, methodName, descriptor);
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
deleteProperty(target, methodName) {
|
|
||||||
delete target.cache[methodName];
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
ownKeys({ scope }) {
|
|
||||||
return [...endpointMethodsMap.get(scope).keys()];
|
|
||||||
},
|
|
||||||
set(target, methodName, value) {
|
|
||||||
return target.cache[methodName] = value;
|
|
||||||
},
|
|
||||||
get({ octokit, scope, cache }, methodName) {
|
|
||||||
if (cache[methodName]) {
|
|
||||||
return cache[methodName];
|
|
||||||
}
|
|
||||||
const method = endpointMethodsMap.get(scope).get(methodName);
|
|
||||||
if (!method) {
|
|
||||||
return void 0;
|
|
||||||
}
|
|
||||||
const { endpointDefaults, decorations } = method;
|
|
||||||
if (decorations) {
|
|
||||||
cache[methodName] = decorate(
|
|
||||||
octokit,
|
|
||||||
scope,
|
|
||||||
methodName,
|
|
||||||
endpointDefaults,
|
|
||||||
decorations
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
cache[methodName] = octokit.request.defaults(endpointDefaults);
|
|
||||||
}
|
|
||||||
return cache[methodName];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
function endpointsToMethods(octokit) {
|
|
||||||
const newMethods = {};
|
|
||||||
for (const scope of endpointMethodsMap.keys()) {
|
|
||||||
newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler);
|
|
||||||
}
|
|
||||||
return newMethods;
|
|
||||||
}
|
|
||||||
function decorate(octokit, scope, methodName, defaults, decorations) {
|
|
||||||
const requestWithDefaults = octokit.request.defaults(defaults);
|
|
||||||
function withDecorations(...args) {
|
|
||||||
let options = requestWithDefaults.endpoint.merge(...args);
|
|
||||||
if (decorations.mapToData) {
|
|
||||||
options = Object.assign({}, options, {
|
|
||||||
data: options[decorations.mapToData],
|
|
||||||
[decorations.mapToData]: void 0
|
|
||||||
});
|
|
||||||
return requestWithDefaults(options);
|
|
||||||
}
|
|
||||||
if (decorations.renamed) {
|
|
||||||
const [newScope, newMethodName] = decorations.renamed;
|
|
||||||
octokit.log.warn(
|
|
||||||
`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (decorations.deprecated) {
|
|
||||||
octokit.log.warn(decorations.deprecated);
|
|
||||||
}
|
|
||||||
if (decorations.renamedParameters) {
|
|
||||||
const options2 = requestWithDefaults.endpoint.merge(...args);
|
|
||||||
for (const [name, alias] of Object.entries(
|
|
||||||
decorations.renamedParameters
|
|
||||||
)) {
|
|
||||||
if (name in options2) {
|
|
||||||
octokit.log.warn(
|
|
||||||
`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`
|
|
||||||
);
|
|
||||||
if (!(alias in options2)) {
|
|
||||||
options2[alias] = options2[name];
|
|
||||||
}
|
|
||||||
delete options2[name];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return requestWithDefaults(options2);
|
|
||||||
}
|
|
||||||
return requestWithDefaults(...args);
|
|
||||||
}
|
|
||||||
return Object.assign(withDecorations, requestWithDefaults);
|
|
||||||
}
|
|
||||||
|
|
||||||
//# sourceMappingURL=endpoints-to-methods.js.map
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js
|
|
||||||
|
|
||||||
|
|
||||||
function restEndpointMethods(octokit) {
|
|
||||||
const api = endpointsToMethods(octokit);
|
|
||||||
return {
|
|
||||||
rest: api
|
|
||||||
};
|
|
||||||
}
|
|
||||||
restEndpointMethods.VERSION = VERSION;
|
|
||||||
function legacyRestEndpointMethods(octokit) {
|
|
||||||
const api = endpointsToMethods(octokit);
|
|
||||||
return {
|
|
||||||
...api,
|
|
||||||
rest: api
|
|
||||||
};
|
|
||||||
}
|
|
||||||
legacyRestEndpointMethods.VERSION = VERSION;
|
|
||||||
|
|
||||||
//# sourceMappingURL=index.js.map
|
|
||||||
|
|
||||||
|
|
||||||
/***/ })
|
/***/ })
|
||||||
|
|
||||||
/******/ });
|
/******/ });
|
||||||
@@ -38710,34 +33969,6 @@ legacyRestEndpointMethods.VERSION = VERSION;
|
|||||||
/******/ }
|
/******/ }
|
||||||
/******/
|
/******/
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/******/ /* webpack/runtime/define property getters */
|
|
||||||
/******/ (() => {
|
|
||||||
/******/ // define getter functions for harmony exports
|
|
||||||
/******/ __nccwpck_require__.d = (exports, definition) => {
|
|
||||||
/******/ for(var key in definition) {
|
|
||||||
/******/ if(__nccwpck_require__.o(definition, key) && !__nccwpck_require__.o(exports, key)) {
|
|
||||||
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
||||||
/******/ }
|
|
||||||
/******/ }
|
|
||||||
/******/ };
|
|
||||||
/******/ })();
|
|
||||||
/******/
|
|
||||||
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
||||||
/******/ (() => {
|
|
||||||
/******/ __nccwpck_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
||||||
/******/ })();
|
|
||||||
/******/
|
|
||||||
/******/ /* webpack/runtime/make namespace object */
|
|
||||||
/******/ (() => {
|
|
||||||
/******/ // define __esModule on exports
|
|
||||||
/******/ __nccwpck_require__.r = (exports) => {
|
|
||||||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
||||||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
||||||
/******/ }
|
|
||||||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
||||||
/******/ };
|
|
||||||
/******/ })();
|
|
||||||
/******/
|
|
||||||
/******/ /* webpack/runtime/compat */
|
/******/ /* webpack/runtime/compat */
|
||||||
/******/
|
/******/
|
||||||
/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = __dirname + "/";
|
/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = __dirname + "/";
|
||||||
@@ -38747,7 +33978,7 @@ legacyRestEndpointMethods.VERSION = VERSION;
|
|||||||
/******/ // startup
|
/******/ // startup
|
||||||
/******/ // Load entry module and return exports
|
/******/ // Load entry module and return exports
|
||||||
/******/ // This entry module is referenced by other modules so it can't be inlined
|
/******/ // This entry module is referenced by other modules so it can't be inlined
|
||||||
/******/ var __webpack_exports__ = __nccwpck_require__(7416);
|
/******/ var __webpack_exports__ = __nccwpck_require__(5653);
|
||||||
/******/ module.exports = __webpack_exports__;
|
/******/ module.exports = __webpack_exports__;
|
||||||
/******/
|
/******/
|
||||||
/******/ })()
|
/******/ })()
|
||||||
@@ -199,6 +199,10 @@ By default, the Python install dir (`uv python dir` / `UV_PYTHON_INSTALL_DIR`) i
|
|||||||
for the same reason that the dependency cache is pruned.
|
for the same reason that the dependency cache is pruned.
|
||||||
If you want to cache Python installs along with your dependencies, set the `cache-python` input to `true`.
|
If you want to cache Python installs along with your dependencies, set the `cache-python` input to `true`.
|
||||||
|
|
||||||
|
Note that this only caches Python versions that uv actually installs into `UV_PYTHON_INSTALL_DIR`
|
||||||
|
(i.e. managed Python installs). If uv uses a system Python, there may be nothing to cache.
|
||||||
|
To force managed Python installs, set `UV_PYTHON_PREFERENCE=only-managed`.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Cache Python installs
|
- name: Cache Python installs
|
||||||
uses: astral-sh/setup-uv@v7
|
uses: astral-sh/setup-uv@v7
|
||||||
|
|||||||
@@ -18,12 +18,29 @@ are automatically verified by this action. The sha256 hashes can be found on the
|
|||||||
|
|
||||||
## Manifest file
|
## Manifest file
|
||||||
|
|
||||||
The `manifest-file` input allows you to specify a JSON manifest that lists available uv versions,
|
By default, setup-uv reads version metadata from
|
||||||
architectures, and their download URLs. By default, this action uses the manifest file contained
|
[`astral-sh/versions`](https://github.com/astral-sh/versions) (NDJSON format).
|
||||||
in this repository, which is automatically updated with each release of uv.
|
|
||||||
|
|
||||||
The manifest file contains an array of objects, each describing a version,
|
The `manifest-file` input lets you override that source with your own URL, for example to test
|
||||||
architecture, platform, and the corresponding download URL. For example:
|
custom uv builds or alternate download locations.
|
||||||
|
|
||||||
|
### Format
|
||||||
|
|
||||||
|
The manifest file must be in NDJSON format, where each line is a JSON object representing a version and its artifacts. For example:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{"version":"0.10.7","artifacts":[{"platform":"x86_64-unknown-linux-gnu","variant":"default","url":"https://example.com/uv-x86_64-unknown-linux-gnu.tar.gz","archive_format":"tar.gz","sha256":"..."}]}
|
||||||
|
{"version":"0.10.6","artifacts":[{"platform":"x86_64-unknown-linux-gnu","variant":"default","url":"https://example.com/uv-x86_64-unknown-linux-gnu.tar.gz","archive_format":"tar.gz","sha256":"..."}]}
|
||||||
|
```
|
||||||
|
|
||||||
|
setup-uv currently only supports `default` as the `variant`.
|
||||||
|
|
||||||
|
The `archive_format` field is currently ignored.
|
||||||
|
|
||||||
|
### Legacy format: JSON array (deprecated)
|
||||||
|
|
||||||
|
The previous JSON array format is still supported for compatibility, but deprecated and will be
|
||||||
|
removed in a future major release.
|
||||||
|
|
||||||
```json
|
```json
|
||||||
[
|
[
|
||||||
@@ -33,26 +50,20 @@ architecture, platform, and the corresponding download URL. For example:
|
|||||||
"arch": "aarch64",
|
"arch": "aarch64",
|
||||||
"platform": "apple-darwin",
|
"platform": "apple-darwin",
|
||||||
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.7.13/uv-aarch64-apple-darwin.tar.gz"
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.7.13/uv-aarch64-apple-darwin.tar.gz"
|
||||||
},
|
}
|
||||||
...
|
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
You can supply a custom manifest file URL to define additional versions,
|
|
||||||
architectures, or different download URLs.
|
|
||||||
This is useful if you maintain your own uv builds or want to override the default sources.
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Use a custom manifest file
|
- name: Use a custom manifest file
|
||||||
uses: astral-sh/setup-uv@v7
|
uses: astral-sh/setup-uv@v7
|
||||||
with:
|
with:
|
||||||
manifest-file: "https://example.com/my-custom-manifest.json"
|
manifest-file: "https://example.com/my-custom-manifest.ndjson"
|
||||||
```
|
```
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> When you use a custom manifest file and do not set the `version` input, its default value is `latest`.
|
> When you use a custom manifest file and do not set the `version` input, setup-uv installs the
|
||||||
> This means the action will install the latest version available in the custom manifest file.
|
> latest version from that custom manifest.
|
||||||
> This is different from the default behavior of installing the latest version from the official uv releases.
|
|
||||||
|
|
||||||
## Add problem matchers
|
## Add problem matchers
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,17 @@ This allows directly using it in later steps:
|
|||||||
- run: uv pip install pip
|
- run: uv pip install pip
|
||||||
```
|
```
|
||||||
|
|
||||||
|
By default, the venv is created at `.venv` inside the `working-directory`.
|
||||||
|
|
||||||
|
You can customize the venv location with `venv-path`, for example to place it in the runner temp directory:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- uses: astral-sh/setup-uv@v7
|
||||||
|
with:
|
||||||
|
activate-environment: true
|
||||||
|
venv-path: ${{ runner.temp }}/custom-venv
|
||||||
|
```
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
>
|
>
|
||||||
> Activating the environment adds your dependencies to the `PATH`, which could break some workflows.
|
> Activating the environment adds your dependencies to the `PATH`, which could break some workflows.
|
||||||
@@ -27,9 +38,12 @@ This allows directly using it in later steps:
|
|||||||
|
|
||||||
## GitHub authentication token
|
## GitHub authentication token
|
||||||
|
|
||||||
This action uses the GitHub API to fetch the uv release artifacts. To avoid hitting the GitHub API
|
By default, this action resolves available uv versions from
|
||||||
rate limit too quickly, an authentication token can be provided via the `github-token` input. By
|
[`astral-sh/versions`](https://github.com/astral-sh/versions), then downloads uv artifacts from
|
||||||
default, the `GITHUB_TOKEN` secret is used, which is automatically provided by GitHub Actions.
|
GitHub Releases.
|
||||||
|
|
||||||
|
You can provide a token via `github-token` to authenticate those downloads. By default, the
|
||||||
|
`GITHUB_TOKEN` secret is used, which is automatically provided by GitHub Actions.
|
||||||
|
|
||||||
If the default
|
If the default
|
||||||
[permissions for the GitHub token](https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)
|
[permissions for the GitHub token](https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)
|
||||||
|
|||||||
428
package-lock.json
generated
428
package-lock.json
generated
@@ -15,15 +15,12 @@
|
|||||||
"@actions/glob": "^0.5.0",
|
"@actions/glob": "^0.5.0",
|
||||||
"@actions/io": "^1.1.3",
|
"@actions/io": "^1.1.3",
|
||||||
"@actions/tool-cache": "^2.0.2",
|
"@actions/tool-cache": "^2.0.2",
|
||||||
"@octokit/core": "^7.0.6",
|
|
||||||
"@octokit/plugin-paginate-rest": "^14.0.0",
|
|
||||||
"@octokit/plugin-rest-endpoint-methods": "^17.0.0",
|
|
||||||
"@renovatebot/pep440": "^4.2.1",
|
"@renovatebot/pep440": "^4.2.1",
|
||||||
"smol-toml": "^1.4.2",
|
"smol-toml": "^1.6.0",
|
||||||
"undici": "5.28.5"
|
"undici": "5.28.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "2.3.7",
|
"@biomejs/biome": "2.3.8",
|
||||||
"@types/js-yaml": "^4.0.9",
|
"@types/js-yaml": "^4.0.9",
|
||||||
"@types/node": "^24.10.1",
|
"@types/node": "^24.10.1",
|
||||||
"@types/semver": "^7.7.1",
|
"@types/semver": "^7.7.1",
|
||||||
@@ -412,7 +409,6 @@
|
|||||||
"integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==",
|
"integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ampproject/remapping": "^2.2.0",
|
"@ampproject/remapping": "^2.2.0",
|
||||||
"@babel/code-frame": "^7.27.1",
|
"@babel/code-frame": "^7.27.1",
|
||||||
@@ -890,9 +886,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/biome": {
|
"node_modules/@biomejs/biome": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.3.8.tgz",
|
||||||
"integrity": "sha512-CTbAS/jNAiUc6rcq94BrTB8z83O9+BsgWj2sBCQg9rD6Wkh2gjfR87usjx0Ncx0zGXP1NKgT7JNglay5Zfs9jw==",
|
"integrity": "sha512-Qjsgoe6FEBxWAUzwFGFrB+1+M8y/y5kwmg5CHac+GSVOdmOIqsAiXM5QMVGZJ1eCUCLlPZtq4aFAQ0eawEUuUA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT OR Apache-2.0",
|
"license": "MIT OR Apache-2.0",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -906,20 +902,20 @@
|
|||||||
"url": "https://opencollective.com/biome"
|
"url": "https://opencollective.com/biome"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@biomejs/cli-darwin-arm64": "2.3.7",
|
"@biomejs/cli-darwin-arm64": "2.3.8",
|
||||||
"@biomejs/cli-darwin-x64": "2.3.7",
|
"@biomejs/cli-darwin-x64": "2.3.8",
|
||||||
"@biomejs/cli-linux-arm64": "2.3.7",
|
"@biomejs/cli-linux-arm64": "2.3.8",
|
||||||
"@biomejs/cli-linux-arm64-musl": "2.3.7",
|
"@biomejs/cli-linux-arm64-musl": "2.3.8",
|
||||||
"@biomejs/cli-linux-x64": "2.3.7",
|
"@biomejs/cli-linux-x64": "2.3.8",
|
||||||
"@biomejs/cli-linux-x64-musl": "2.3.7",
|
"@biomejs/cli-linux-x64-musl": "2.3.8",
|
||||||
"@biomejs/cli-win32-arm64": "2.3.7",
|
"@biomejs/cli-win32-arm64": "2.3.8",
|
||||||
"@biomejs/cli-win32-x64": "2.3.7"
|
"@biomejs/cli-win32-x64": "2.3.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-darwin-arm64": {
|
"node_modules/@biomejs/cli-darwin-arm64": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.8.tgz",
|
||||||
"integrity": "sha512-LirkamEwzIUULhXcf2D5b+NatXKeqhOwilM+5eRkbrnr6daKz9rsBL0kNZ16Hcy4b8RFq22SG4tcLwM+yx/wFA==",
|
"integrity": "sha512-HM4Zg9CGQ3txTPflxD19n8MFPrmUAjaC7PQdLkugeeC0cQ+PiVrd7i09gaBS/11QKsTDBJhVg85CEIK9f50Qww==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -934,9 +930,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-darwin-x64": {
|
"node_modules/@biomejs/cli-darwin-x64": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.8.tgz",
|
||||||
"integrity": "sha512-Q4TO633kvrMQkKIV7wmf8HXwF0dhdTD9S458LGE24TYgBjSRbuhvio4D5eOQzirEYg6eqxfs53ga/rbdd8nBKg==",
|
"integrity": "sha512-lUDQ03D7y/qEao7RgdjWVGCu+BLYadhKTm40HkpJIi6kn8LSv5PAwRlew/DmwP4YZ9ke9XXoTIQDO1vAnbRZlA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -951,9 +947,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-linux-arm64": {
|
"node_modules/@biomejs/cli-linux-arm64": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.8.tgz",
|
||||||
"integrity": "sha512-inHOTdlstUBzgjDcx0ge71U4SVTbwAljmkfi3MC5WzsYCRhancqfeL+sa4Ke6v2ND53WIwCFD5hGsYExoI3EZQ==",
|
"integrity": "sha512-Uo1OJnIkJgSgF+USx970fsM/drtPcQ39I+JO+Fjsaa9ZdCN1oysQmy6oAGbyESlouz+rzEckLTF6DS7cWse95g==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -968,9 +964,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-linux-arm64-musl": {
|
"node_modules/@biomejs/cli-linux-arm64-musl": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.8.tgz",
|
||||||
"integrity": "sha512-/afy8lto4CB8scWfMdt+NoCZtatBUF62Tk3ilWH2w8ENd5spLhM77zKlFZEvsKJv9AFNHknMl03zO67CiklL2Q==",
|
"integrity": "sha512-PShR4mM0sjksUMyxbyPNMxoKFPVF48fU8Qe8Sfx6w6F42verbwRLbz+QiKNiDPRJwUoMG1nPM50OBL3aOnTevA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -985,9 +981,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-linux-x64": {
|
"node_modules/@biomejs/cli-linux-x64": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.8.tgz",
|
||||||
"integrity": "sha512-fJMc3ZEuo/NaMYo5rvoWjdSS5/uVSW+HPRQujucpZqm2ZCq71b8MKJ9U4th9yrv2L5+5NjPF0nqqILCl8HY/fg==",
|
"integrity": "sha512-QDPMD5bQz6qOVb3kiBui0zKZXASLo0NIQ9JVJio5RveBEFgDgsvJFUvZIbMbUZT3T00M/1wdzwWXk4GIh0KaAw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -1002,9 +998,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-linux-x64-musl": {
|
"node_modules/@biomejs/cli-linux-x64-musl": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.8.tgz",
|
||||||
"integrity": "sha512-CQUtgH1tIN6e5wiYSJqzSwJumHYolNtaj1dwZGCnZXm2PZU1jOJof9TsyiP3bXNDb+VOR7oo7ZvY01If0W3iFQ==",
|
"integrity": "sha512-YGLkqU91r1276uwSjiUD/xaVikdxgV1QpsicT0bIA1TaieM6E5ibMZeSyjQ/izBn4tKQthUSsVZacmoJfa3pDA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -1019,9 +1015,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-win32-arm64": {
|
"node_modules/@biomejs/cli-win32-arm64": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.8.tgz",
|
||||||
"integrity": "sha512-aJAE8eCNyRpcfx2JJAtsPtISnELJ0H4xVVSwnxm13bzI8RwbXMyVtxy2r5DV1xT3WiSP+7LxORcApWw0LM8HiA==",
|
"integrity": "sha512-H4IoCHvL1fXKDrTALeTKMiE7GGWFAraDwBYFquE/L/5r1927Te0mYIGseXi4F+lrrwhSWbSGt5qPFswNoBaCxg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -1036,9 +1032,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-win32-x64": {
|
"node_modules/@biomejs/cli-win32-x64": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.8.tgz",
|
||||||
"integrity": "sha512-pulzUshqv9Ed//MiE8MOUeeEkbkSHVDVY5Cz5wVAnH1DUqliCQG3j6s1POaITTFqFfo7AVIx2sWdKpx/GS+Nqw==",
|
"integrity": "sha512-RguzimPoZWtBapfKhKjcWXBVI91tiSprqdBYu7tWhgN8pKRZhw24rFeNZTNf6UiBfjCYCi9eFQs/JzJZIhuK4w==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -1590,134 +1586,6 @@
|
|||||||
"@tybys/wasm-util": "^0.10.0"
|
"@tybys/wasm-util": "^0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@octokit/auth-token": {
|
|
||||||
"version": "6.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-6.0.0.tgz",
|
|
||||||
"integrity": "sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 20"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@octokit/core": {
|
|
||||||
"version": "7.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.6.tgz",
|
|
||||||
"integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==",
|
|
||||||
"license": "MIT",
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@octokit/auth-token": "^6.0.0",
|
|
||||||
"@octokit/graphql": "^9.0.3",
|
|
||||||
"@octokit/request": "^10.0.6",
|
|
||||||
"@octokit/request-error": "^7.0.2",
|
|
||||||
"@octokit/types": "^16.0.0",
|
|
||||||
"before-after-hook": "^4.0.0",
|
|
||||||
"universal-user-agent": "^7.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 20"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@octokit/endpoint": {
|
|
||||||
"version": "11.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-11.0.2.tgz",
|
|
||||||
"integrity": "sha512-4zCpzP1fWc7QlqunZ5bSEjxc6yLAlRTnDwKtgXfcI/FxxGoqedDG8V2+xJ60bV2kODqcGB+nATdtap/XYq2NZQ==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@octokit/types": "^16.0.0",
|
|
||||||
"universal-user-agent": "^7.0.2"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 20"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@octokit/graphql": {
|
|
||||||
"version": "9.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-9.0.3.tgz",
|
|
||||||
"integrity": "sha512-grAEuupr/C1rALFnXTv6ZQhFuL1D8G5y8CN04RgrO4FIPMrtm+mcZzFG7dcBm+nq+1ppNixu+Jd78aeJOYxlGA==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@octokit/request": "^10.0.6",
|
|
||||||
"@octokit/types": "^16.0.0",
|
|
||||||
"universal-user-agent": "^7.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 20"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@octokit/openapi-types": {
|
|
||||||
"version": "27.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-27.0.0.tgz",
|
|
||||||
"integrity": "sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/@octokit/plugin-paginate-rest": {
|
|
||||||
"version": "14.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-14.0.0.tgz",
|
|
||||||
"integrity": "sha512-fNVRE7ufJiAA3XUrha2omTA39M6IXIc6GIZLvlbsm8QOQCYvpq/LkMNGyFlB1d8hTDzsAXa3OKtybdMAYsV/fw==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@octokit/types": "^16.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 20"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@octokit/core": ">=6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@octokit/plugin-rest-endpoint-methods": {
|
|
||||||
"version": "17.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-17.0.0.tgz",
|
|
||||||
"integrity": "sha512-B5yCyIlOJFPqUUeiD0cnBJwWJO8lkJs5d8+ze9QDP6SvfiXSz1BF+91+0MeI1d2yxgOhU/O+CvtiZ9jSkHhFAw==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@octokit/types": "^16.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 20"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@octokit/core": ">=6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@octokit/request": {
|
|
||||||
"version": "10.0.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.7.tgz",
|
|
||||||
"integrity": "sha512-v93h0i1yu4idj8qFPZwjehoJx4j3Ntn+JhXsdJrG9pYaX6j/XRz2RmasMUHtNgQD39nrv/VwTWSqK0RNXR8upA==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@octokit/endpoint": "^11.0.2",
|
|
||||||
"@octokit/request-error": "^7.0.2",
|
|
||||||
"@octokit/types": "^16.0.0",
|
|
||||||
"fast-content-type-parse": "^3.0.0",
|
|
||||||
"universal-user-agent": "^7.0.2"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 20"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@octokit/request-error": {
|
|
||||||
"version": "7.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-7.1.0.tgz",
|
|
||||||
"integrity": "sha512-KMQIfq5sOPpkQYajXHwnhjCC0slzCNScLHs9JafXc4RAJI+9f+jNDlBNaIMTvazOPLgb4BnlhGJOTbnN0wIjPw==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@octokit/types": "^16.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 20"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@octokit/types": {
|
|
||||||
"version": "16.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-16.0.0.tgz",
|
|
||||||
"integrity": "sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@octokit/openapi-types": "^27.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@opentelemetry/api": {
|
"node_modules/@opentelemetry/api": {
|
||||||
"version": "1.4.1",
|
"version": "1.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz",
|
||||||
@@ -2454,12 +2322,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
||||||
},
|
},
|
||||||
"node_modules/before-after-hook": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-4.0.0.tgz",
|
|
||||||
"integrity": "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/brace-expansion": {
|
"node_modules/brace-expansion": {
|
||||||
"version": "1.1.12",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
@@ -2502,7 +2364,6 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"caniuse-lite": "^1.0.30001733",
|
"caniuse-lite": "^1.0.30001733",
|
||||||
"electron-to-chromium": "^1.5.199",
|
"electron-to-chromium": "^1.5.199",
|
||||||
@@ -3070,22 +2931,6 @@
|
|||||||
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
|
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/fast-content-type-parse": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==",
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "github",
|
|
||||||
"url": "https://github.com/sponsors/fastify"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/fastify"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/fast-json-stable-stringify": {
|
"node_modules/fast-json-stable-stringify": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
||||||
@@ -3630,7 +3475,6 @@
|
|||||||
"integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==",
|
"integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jest/core": "30.2.0",
|
"@jest/core": "30.2.0",
|
||||||
"@jest/types": "30.2.0",
|
"@jest/types": "30.2.0",
|
||||||
@@ -4907,9 +4751,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/smol-toml": {
|
"node_modules/smol-toml": {
|
||||||
"version": "1.4.2",
|
"version": "1.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.0.tgz",
|
||||||
"integrity": "sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==",
|
"integrity": "sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==",
|
||||||
"license": "BSD-3-Clause",
|
"license": "BSD-3-Clause",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 18"
|
"node": ">= 18"
|
||||||
@@ -5329,7 +5173,6 @@
|
|||||||
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"peer": true,
|
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsc": "bin/tsc",
|
"tsc": "bin/tsc",
|
||||||
"tsserver": "bin/tsserver"
|
"tsserver": "bin/tsserver"
|
||||||
@@ -5370,12 +5213,6 @@
|
|||||||
"integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
|
"integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/universal-user-agent": {
|
|
||||||
"version": "7.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.3.tgz",
|
|
||||||
"integrity": "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==",
|
|
||||||
"license": "ISC"
|
|
||||||
},
|
|
||||||
"node_modules/unrs-resolver": {
|
"node_modules/unrs-resolver": {
|
||||||
"version": "1.11.1",
|
"version": "1.11.1",
|
||||||
"resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz",
|
"resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz",
|
||||||
@@ -6072,7 +5909,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz",
|
||||||
"integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==",
|
"integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"@ampproject/remapping": "^2.2.0",
|
"@ampproject/remapping": "^2.2.0",
|
||||||
"@babel/code-frame": "^7.27.1",
|
"@babel/code-frame": "^7.27.1",
|
||||||
@@ -6395,74 +6231,74 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@biomejs/biome": {
|
"@biomejs/biome": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.3.8.tgz",
|
||||||
"integrity": "sha512-CTbAS/jNAiUc6rcq94BrTB8z83O9+BsgWj2sBCQg9rD6Wkh2gjfR87usjx0Ncx0zGXP1NKgT7JNglay5Zfs9jw==",
|
"integrity": "sha512-Qjsgoe6FEBxWAUzwFGFrB+1+M8y/y5kwmg5CHac+GSVOdmOIqsAiXM5QMVGZJ1eCUCLlPZtq4aFAQ0eawEUuUA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@biomejs/cli-darwin-arm64": "2.3.7",
|
"@biomejs/cli-darwin-arm64": "2.3.8",
|
||||||
"@biomejs/cli-darwin-x64": "2.3.7",
|
"@biomejs/cli-darwin-x64": "2.3.8",
|
||||||
"@biomejs/cli-linux-arm64": "2.3.7",
|
"@biomejs/cli-linux-arm64": "2.3.8",
|
||||||
"@biomejs/cli-linux-arm64-musl": "2.3.7",
|
"@biomejs/cli-linux-arm64-musl": "2.3.8",
|
||||||
"@biomejs/cli-linux-x64": "2.3.7",
|
"@biomejs/cli-linux-x64": "2.3.8",
|
||||||
"@biomejs/cli-linux-x64-musl": "2.3.7",
|
"@biomejs/cli-linux-x64-musl": "2.3.8",
|
||||||
"@biomejs/cli-win32-arm64": "2.3.7",
|
"@biomejs/cli-win32-arm64": "2.3.8",
|
||||||
"@biomejs/cli-win32-x64": "2.3.7"
|
"@biomejs/cli-win32-x64": "2.3.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@biomejs/cli-darwin-arm64": {
|
"@biomejs/cli-darwin-arm64": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.8.tgz",
|
||||||
"integrity": "sha512-LirkamEwzIUULhXcf2D5b+NatXKeqhOwilM+5eRkbrnr6daKz9rsBL0kNZ16Hcy4b8RFq22SG4tcLwM+yx/wFA==",
|
"integrity": "sha512-HM4Zg9CGQ3txTPflxD19n8MFPrmUAjaC7PQdLkugeeC0cQ+PiVrd7i09gaBS/11QKsTDBJhVg85CEIK9f50Qww==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"@biomejs/cli-darwin-x64": {
|
"@biomejs/cli-darwin-x64": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.8.tgz",
|
||||||
"integrity": "sha512-Q4TO633kvrMQkKIV7wmf8HXwF0dhdTD9S458LGE24TYgBjSRbuhvio4D5eOQzirEYg6eqxfs53ga/rbdd8nBKg==",
|
"integrity": "sha512-lUDQ03D7y/qEao7RgdjWVGCu+BLYadhKTm40HkpJIi6kn8LSv5PAwRlew/DmwP4YZ9ke9XXoTIQDO1vAnbRZlA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"@biomejs/cli-linux-arm64": {
|
"@biomejs/cli-linux-arm64": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.8.tgz",
|
||||||
"integrity": "sha512-inHOTdlstUBzgjDcx0ge71U4SVTbwAljmkfi3MC5WzsYCRhancqfeL+sa4Ke6v2ND53WIwCFD5hGsYExoI3EZQ==",
|
"integrity": "sha512-Uo1OJnIkJgSgF+USx970fsM/drtPcQ39I+JO+Fjsaa9ZdCN1oysQmy6oAGbyESlouz+rzEckLTF6DS7cWse95g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"@biomejs/cli-linux-arm64-musl": {
|
"@biomejs/cli-linux-arm64-musl": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.8.tgz",
|
||||||
"integrity": "sha512-/afy8lto4CB8scWfMdt+NoCZtatBUF62Tk3ilWH2w8ENd5spLhM77zKlFZEvsKJv9AFNHknMl03zO67CiklL2Q==",
|
"integrity": "sha512-PShR4mM0sjksUMyxbyPNMxoKFPVF48fU8Qe8Sfx6w6F42verbwRLbz+QiKNiDPRJwUoMG1nPM50OBL3aOnTevA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"@biomejs/cli-linux-x64": {
|
"@biomejs/cli-linux-x64": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.8.tgz",
|
||||||
"integrity": "sha512-fJMc3ZEuo/NaMYo5rvoWjdSS5/uVSW+HPRQujucpZqm2ZCq71b8MKJ9U4th9yrv2L5+5NjPF0nqqILCl8HY/fg==",
|
"integrity": "sha512-QDPMD5bQz6qOVb3kiBui0zKZXASLo0NIQ9JVJio5RveBEFgDgsvJFUvZIbMbUZT3T00M/1wdzwWXk4GIh0KaAw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"@biomejs/cli-linux-x64-musl": {
|
"@biomejs/cli-linux-x64-musl": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.8.tgz",
|
||||||
"integrity": "sha512-CQUtgH1tIN6e5wiYSJqzSwJumHYolNtaj1dwZGCnZXm2PZU1jOJof9TsyiP3bXNDb+VOR7oo7ZvY01If0W3iFQ==",
|
"integrity": "sha512-YGLkqU91r1276uwSjiUD/xaVikdxgV1QpsicT0bIA1TaieM6E5ibMZeSyjQ/izBn4tKQthUSsVZacmoJfa3pDA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"@biomejs/cli-win32-arm64": {
|
"@biomejs/cli-win32-arm64": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.8.tgz",
|
||||||
"integrity": "sha512-aJAE8eCNyRpcfx2JJAtsPtISnELJ0H4xVVSwnxm13bzI8RwbXMyVtxy2r5DV1xT3WiSP+7LxORcApWw0LM8HiA==",
|
"integrity": "sha512-H4IoCHvL1fXKDrTALeTKMiE7GGWFAraDwBYFquE/L/5r1927Te0mYIGseXi4F+lrrwhSWbSGt5qPFswNoBaCxg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"@biomejs/cli-win32-x64": {
|
"@biomejs/cli-win32-x64": {
|
||||||
"version": "2.3.7",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.8.tgz",
|
||||||
"integrity": "sha512-pulzUshqv9Ed//MiE8MOUeeEkbkSHVDVY5Cz5wVAnH1DUqliCQG3j6s1POaITTFqFfo7AVIx2sWdKpx/GS+Nqw==",
|
"integrity": "sha512-RguzimPoZWtBapfKhKjcWXBVI91tiSprqdBYu7tWhgN8pKRZhw24rFeNZTNf6UiBfjCYCi9eFQs/JzJZIhuK4w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
@@ -6887,94 +6723,6 @@
|
|||||||
"@tybys/wasm-util": "^0.10.0"
|
"@tybys/wasm-util": "^0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@octokit/auth-token": {
|
|
||||||
"version": "6.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-6.0.0.tgz",
|
|
||||||
"integrity": "sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w=="
|
|
||||||
},
|
|
||||||
"@octokit/core": {
|
|
||||||
"version": "7.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.6.tgz",
|
|
||||||
"integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==",
|
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
|
||||||
"@octokit/auth-token": "^6.0.0",
|
|
||||||
"@octokit/graphql": "^9.0.3",
|
|
||||||
"@octokit/request": "^10.0.6",
|
|
||||||
"@octokit/request-error": "^7.0.2",
|
|
||||||
"@octokit/types": "^16.0.0",
|
|
||||||
"before-after-hook": "^4.0.0",
|
|
||||||
"universal-user-agent": "^7.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@octokit/endpoint": {
|
|
||||||
"version": "11.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-11.0.2.tgz",
|
|
||||||
"integrity": "sha512-4zCpzP1fWc7QlqunZ5bSEjxc6yLAlRTnDwKtgXfcI/FxxGoqedDG8V2+xJ60bV2kODqcGB+nATdtap/XYq2NZQ==",
|
|
||||||
"requires": {
|
|
||||||
"@octokit/types": "^16.0.0",
|
|
||||||
"universal-user-agent": "^7.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@octokit/graphql": {
|
|
||||||
"version": "9.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-9.0.3.tgz",
|
|
||||||
"integrity": "sha512-grAEuupr/C1rALFnXTv6ZQhFuL1D8G5y8CN04RgrO4FIPMrtm+mcZzFG7dcBm+nq+1ppNixu+Jd78aeJOYxlGA==",
|
|
||||||
"requires": {
|
|
||||||
"@octokit/request": "^10.0.6",
|
|
||||||
"@octokit/types": "^16.0.0",
|
|
||||||
"universal-user-agent": "^7.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@octokit/openapi-types": {
|
|
||||||
"version": "27.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-27.0.0.tgz",
|
|
||||||
"integrity": "sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA=="
|
|
||||||
},
|
|
||||||
"@octokit/plugin-paginate-rest": {
|
|
||||||
"version": "14.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-14.0.0.tgz",
|
|
||||||
"integrity": "sha512-fNVRE7ufJiAA3XUrha2omTA39M6IXIc6GIZLvlbsm8QOQCYvpq/LkMNGyFlB1d8hTDzsAXa3OKtybdMAYsV/fw==",
|
|
||||||
"requires": {
|
|
||||||
"@octokit/types": "^16.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@octokit/plugin-rest-endpoint-methods": {
|
|
||||||
"version": "17.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-17.0.0.tgz",
|
|
||||||
"integrity": "sha512-B5yCyIlOJFPqUUeiD0cnBJwWJO8lkJs5d8+ze9QDP6SvfiXSz1BF+91+0MeI1d2yxgOhU/O+CvtiZ9jSkHhFAw==",
|
|
||||||
"requires": {
|
|
||||||
"@octokit/types": "^16.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@octokit/request": {
|
|
||||||
"version": "10.0.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.7.tgz",
|
|
||||||
"integrity": "sha512-v93h0i1yu4idj8qFPZwjehoJx4j3Ntn+JhXsdJrG9pYaX6j/XRz2RmasMUHtNgQD39nrv/VwTWSqK0RNXR8upA==",
|
|
||||||
"requires": {
|
|
||||||
"@octokit/endpoint": "^11.0.2",
|
|
||||||
"@octokit/request-error": "^7.0.2",
|
|
||||||
"@octokit/types": "^16.0.0",
|
|
||||||
"fast-content-type-parse": "^3.0.0",
|
|
||||||
"universal-user-agent": "^7.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@octokit/request-error": {
|
|
||||||
"version": "7.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-7.1.0.tgz",
|
|
||||||
"integrity": "sha512-KMQIfq5sOPpkQYajXHwnhjCC0slzCNScLHs9JafXc4RAJI+9f+jNDlBNaIMTvazOPLgb4BnlhGJOTbnN0wIjPw==",
|
|
||||||
"requires": {
|
|
||||||
"@octokit/types": "^16.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@octokit/types": {
|
|
||||||
"version": "16.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-16.0.0.tgz",
|
|
||||||
"integrity": "sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg==",
|
|
||||||
"requires": {
|
|
||||||
"@octokit/openapi-types": "^27.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@opentelemetry/api": {
|
"@opentelemetry/api": {
|
||||||
"version": "1.4.1",
|
"version": "1.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz",
|
||||||
@@ -7475,11 +7223,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
||||||
},
|
},
|
||||||
"before-after-hook": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-4.0.0.tgz",
|
|
||||||
"integrity": "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ=="
|
|
||||||
},
|
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.12",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
@@ -7503,7 +7246,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.2.tgz",
|
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.2.tgz",
|
||||||
"integrity": "sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==",
|
"integrity": "sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"caniuse-lite": "^1.0.30001733",
|
"caniuse-lite": "^1.0.30001733",
|
||||||
"electron-to-chromium": "^1.5.199",
|
"electron-to-chromium": "^1.5.199",
|
||||||
@@ -7881,11 +7623,6 @@
|
|||||||
"jest-util": "30.2.0"
|
"jest-util": "30.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fast-content-type-parse": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg=="
|
|
||||||
},
|
|
||||||
"fast-json-stable-stringify": {
|
"fast-json-stable-stringify": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
||||||
@@ -8250,7 +7987,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz",
|
||||||
"integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==",
|
"integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"@jest/core": "30.2.0",
|
"@jest/core": "30.2.0",
|
||||||
"@jest/types": "30.2.0",
|
"@jest/types": "30.2.0",
|
||||||
@@ -9131,9 +8867,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"smol-toml": {
|
"smol-toml": {
|
||||||
"version": "1.4.2",
|
"version": "1.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.0.tgz",
|
||||||
"integrity": "sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g=="
|
"integrity": "sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw=="
|
||||||
},
|
},
|
||||||
"source-map": {
|
"source-map": {
|
||||||
"version": "0.6.1",
|
"version": "0.6.1",
|
||||||
@@ -9398,8 +9134,7 @@
|
|||||||
"version": "5.9.3",
|
"version": "5.9.3",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
|
||||||
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
||||||
"dev": true,
|
"dev": true
|
||||||
"peer": true
|
|
||||||
},
|
},
|
||||||
"uglify-js": {
|
"uglify-js": {
|
||||||
"version": "3.19.3",
|
"version": "3.19.3",
|
||||||
@@ -9421,11 +9156,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
|
||||||
"integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="
|
"integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="
|
||||||
},
|
},
|
||||||
"universal-user-agent": {
|
|
||||||
"version": "7.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.3.tgz",
|
|
||||||
"integrity": "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A=="
|
|
||||||
},
|
|
||||||
"unrs-resolver": {
|
"unrs-resolver": {
|
||||||
"version": "1.11.1",
|
"version": "1.11.1",
|
||||||
"resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz",
|
"resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz",
|
||||||
|
|||||||
11
package.json
11
package.json
@@ -7,10 +7,10 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc",
|
"build": "tsc",
|
||||||
"check": "biome check --write",
|
"check": "biome check --write",
|
||||||
"package": "ncc build -o dist/setup src/setup-uv.ts && ncc build -o dist/save-cache src/save-cache.ts && ncc build -o dist/update-known-versions src/update-known-versions.ts",
|
"package": "ncc build -o dist/setup src/setup-uv.ts && ncc build -o dist/save-cache src/save-cache.ts && ncc build -o dist/update-known-checksums src/update-known-checksums.ts",
|
||||||
"test": "jest",
|
"test": "jest",
|
||||||
"act": "act pull_request -W .github/workflows/test.yml --container-architecture linux/amd64 -s GITHUB_TOKEN=\"$(gh auth token)\"",
|
"act": "act pull_request -W .github/workflows/test.yml --container-architecture linux/amd64 -s GITHUB_TOKEN=\"$(gh auth token)\"",
|
||||||
"update-known-versions": "RUNNER_TEMP=known_versions node dist/update-known-versions/index.js src/download/checksum/known-versions.ts \"$(gh auth token)\"",
|
"update-known-checksums": "RUNNER_TEMP=known_versions node dist/update-known-checksums/index.js src/download/checksum/known-checksums.ts",
|
||||||
"all": "npm run build && npm run check && npm run package && npm test"
|
"all": "npm run build && npm run check && npm run package && npm test"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
@@ -32,15 +32,12 @@
|
|||||||
"@actions/glob": "^0.5.0",
|
"@actions/glob": "^0.5.0",
|
||||||
"@actions/io": "^1.1.3",
|
"@actions/io": "^1.1.3",
|
||||||
"@actions/tool-cache": "^2.0.2",
|
"@actions/tool-cache": "^2.0.2",
|
||||||
"@octokit/core": "^7.0.6",
|
|
||||||
"@octokit/plugin-paginate-rest": "^14.0.0",
|
|
||||||
"@octokit/plugin-rest-endpoint-methods": "^17.0.0",
|
|
||||||
"@renovatebot/pep440": "^4.2.1",
|
"@renovatebot/pep440": "^4.2.1",
|
||||||
"smol-toml": "^1.4.2",
|
"smol-toml": "^1.6.0",
|
||||||
"undici": "5.28.5"
|
"undici": "5.28.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "2.3.7",
|
"@biomejs/biome": "2.3.8",
|
||||||
"@types/js-yaml": "^4.0.9",
|
"@types/js-yaml": "^4.0.9",
|
||||||
"@types/node": "^24.10.1",
|
"@types/node": "^24.10.1",
|
||||||
"@types/semver": "^7.7.1",
|
"@types/semver": "^7.7.1",
|
||||||
|
|||||||
@@ -6,33 +6,35 @@ import type { Architecture, Platform } from "../../utils/platforms";
|
|||||||
import { KNOWN_CHECKSUMS } from "./known-checksums";
|
import { KNOWN_CHECKSUMS } from "./known-checksums";
|
||||||
|
|
||||||
export async function validateChecksum(
|
export async function validateChecksum(
|
||||||
checkSum: string | undefined,
|
checksum: string | undefined,
|
||||||
downloadPath: string,
|
downloadPath: string,
|
||||||
arch: Architecture,
|
arch: Architecture,
|
||||||
platform: Platform,
|
platform: Platform,
|
||||||
version: string,
|
version: string,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
let isValid: boolean | undefined;
|
const key = `${arch}-${platform}-${version}`;
|
||||||
if (checkSum !== undefined && checkSum !== "") {
|
const hasProvidedChecksum = checksum !== undefined && checksum !== "";
|
||||||
isValid = await validateFileCheckSum(downloadPath, checkSum);
|
const checksumToUse = hasProvidedChecksum ? checksum : KNOWN_CHECKSUMS[key];
|
||||||
} else {
|
|
||||||
core.debug("Checksum not provided. Checking known checksums.");
|
if (checksumToUse === undefined) {
|
||||||
const key = `${arch}-${platform}-${version}`;
|
core.debug(`No checksum found for ${key}.`);
|
||||||
if (key in KNOWN_CHECKSUMS) {
|
return;
|
||||||
const knownChecksum = KNOWN_CHECKSUMS[`${arch}-${platform}-${version}`];
|
|
||||||
core.debug(`Checking checksum for ${arch}-${platform}-${version}.`);
|
|
||||||
isValid = await validateFileCheckSum(downloadPath, knownChecksum);
|
|
||||||
} else {
|
|
||||||
core.debug(`No known checksum found for ${key}.`);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isValid === false) {
|
const checksumSource = hasProvidedChecksum
|
||||||
throw new Error(`Checksum for ${downloadPath} did not match ${checkSum}.`);
|
? "provided checksum"
|
||||||
}
|
: `KNOWN_CHECKSUMS entry for ${key}`;
|
||||||
if (isValid === true) {
|
|
||||||
core.debug(`Checksum for ${downloadPath} is valid.`);
|
core.debug(`Validating checksum using ${checksumSource}.`);
|
||||||
|
const isValid = await validateFileCheckSum(downloadPath, checksumToUse);
|
||||||
|
|
||||||
|
if (!isValid) {
|
||||||
|
throw new Error(
|
||||||
|
`Checksum for ${downloadPath} did not match ${checksumToUse}.`,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
core.debug(`Checksum for ${downloadPath} is valid.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function validateFileCheckSum(
|
async function validateFileCheckSum(
|
||||||
|
|||||||
@@ -1,5 +1,633 @@
|
|||||||
// AUTOGENERATED_DO_NOT_EDIT
|
// AUTOGENERATED_DO_NOT_EDIT
|
||||||
export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||||
|
"aarch64-apple-darwin-0.10.9":
|
||||||
|
"a92f61e9ac9b0f29668c15f56152e4a60143fca148ff5bfadb86718472c3f376",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.9":
|
||||||
|
"5c2526844acf978eab784161c21604343141aa6c9ed22c237ae2f315648f049d",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.9":
|
||||||
|
"cc0c5a8573e7d6d78aecb954e0a62b5c0d18217bb81f1e19363b428c57a9962a",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.9":
|
||||||
|
"05b0d3087e913ebe11756365a90dd47c05d6728752fdbe129ad4c3ccd769826d",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.9":
|
||||||
|
"6220fa3eb5f8212cae4ec3a5053060914aaa829549cf706dde9f9cc344f75f61",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.9":
|
||||||
|
"0076eac165c2f7129627e2297478e7ffbb9465d9ae6a8961b2f53dcbd807473d",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.9":
|
||||||
|
"f702e821b80e371e14987a886d58ee103c5948b7b096fa49a552624c24d7e073",
|
||||||
|
"i686-pc-windows-msvc-0.10.9":
|
||||||
|
"034bf6b91390b9adc5f41a5946fdb618ebc8cef1574f3d95af9c12fe2bf9aaf3",
|
||||||
|
"i686-unknown-linux-gnu-0.10.9":
|
||||||
|
"90d9168a4e7900463f9fd79a32eb1890081fb1e238d803404f6e17b2dcdcca7b",
|
||||||
|
"i686-unknown-linux-musl-0.10.9":
|
||||||
|
"1d42b0d0a037b3d658b11ec889154686db3ab269ba2b789bdbc45d36e3549f34",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.9":
|
||||||
|
"e804f4a7d0659e09ef806365f04bdd33c940603fab903e925402748d05dd109a",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.9":
|
||||||
|
"1541596da45855e34202130027a613a2ace7d441e04d747cb4dd9f2590461c9a",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.9":
|
||||||
|
"a589d4a8930c82fa7225daec19c632651b3c84f50f770efe758056b387e5f0dd",
|
||||||
|
"x86_64-apple-darwin-0.10.9":
|
||||||
|
"9cc2de7d195fa157f98b306a8a1cb151ded93f488939b93363cebc8b9d598c28",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.9":
|
||||||
|
"f58dc40896000229db7c52b8bdd931394040ef2ad59abd1eda841f6d70b13d7a",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.9":
|
||||||
|
"20d79708222611fa540b5c9ed84f352bcd3937740e51aacc0f8b15b271c57594",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.9":
|
||||||
|
"433e56874739e92c7cfd661ba9e5f287b376ca612c08c8194a41a98a13158aea",
|
||||||
|
"aarch64-apple-darwin-0.10.8":
|
||||||
|
"c3a6fff5b6b4abddff863117878194e35dbc6b0267d61ad259ab9896f9b8dcbb",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.8":
|
||||||
|
"20db25dc446f9a75d1cfde0a5f4b021e1b2eb266e600a610d32c7ca5d7ff83bf",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.8":
|
||||||
|
"661860e954f87dcd823251191866af3486484d1a9df60eed56f4586ed7559e3d",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.8":
|
||||||
|
"2ef0d0489e9e2a32f134ca80097fa36be4b486c4ab004706a1d6d0d57980ff07",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.8":
|
||||||
|
"f6dfca333c566024f6feaef19adf7ce06675a1bc2fcadc2de640dd805112a518",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.8":
|
||||||
|
"1bee8f88a7129f7922c43b0e091a7065d4e13a2934e599aa8a48f162cf9739aa",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.8":
|
||||||
|
"ad0ca78991518fde1c4c42f8590e86f29db1f746cedb637f9dac1bb7de2e28da",
|
||||||
|
"i686-pc-windows-msvc-0.10.8":
|
||||||
|
"db40952a0c16eb647cb3a06c8cc13712b72e5b6a2501bc080c7e00c0f0e4ad88",
|
||||||
|
"i686-unknown-linux-gnu-0.10.8":
|
||||||
|
"3a78c54ffedce8eafd59a19a32eaec538924169fa4bf9d28d2d5841a7f604210",
|
||||||
|
"i686-unknown-linux-musl-0.10.8":
|
||||||
|
"25cf70c12abded06c4c18db8fdba253776bc115ce28f849af6f6ef771e67d730",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.8":
|
||||||
|
"3a4a158e645d04825872eb59ca60dd5026529e4f9fe5dd88987a45478301724d",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.8":
|
||||||
|
"2349e786d2de14fbd72386f42ed9f398cad52f47f6cdd78e05f338a1faf1321c",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.8":
|
||||||
|
"21de0f86838b06e6ebcc3cb6a079d49d3d3886e5b49822ae58e5758eb08a6710",
|
||||||
|
"x86_64-apple-darwin-0.10.8":
|
||||||
|
"e0a1b22b039f8155765f5bc8c13df03a5f994a901901179791572e8e5f053281",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.8":
|
||||||
|
"2e70ecd22196cbd9d14eefb700814bcafc5b75a0d8275b52e8402e5fe256d928",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.8":
|
||||||
|
"f0c566b55683395a62fefb9261a060fa09824914b5682c3b9629fa154762ae2f",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.8":
|
||||||
|
"a4e6ad1aecac61077de548d2cc9ccf2c2f1848863312b3b59fb0d2eb8d8a043c",
|
||||||
|
"aarch64-apple-darwin-0.10.7":
|
||||||
|
"1eb4dcc5e0fc8669fa0b33cf1151b64ba3b8c26b60dceff4f7a686129e2af22b",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.7":
|
||||||
|
"45ba7b72a7435343d650c73d21d65d2e8bdda47f6bd39af00e37f3cb70aa79ef",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.7":
|
||||||
|
"20efc27d946860093650bcf26096a016b10fdaf03b13c33b75fbde02962beea9",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.7":
|
||||||
|
"115291f9943531a3b63db3a2eabda8b74b8da4831551679382cb309c9debd9f7",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.7":
|
||||||
|
"3ea331cd68f28235e13639d5400341a3893d0455f2473a74a9926b7d62cb739c",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.7":
|
||||||
|
"2e2f88cc5a7b49282c9aa05cfe03e3b8b0a044e90981062fbeb60a7aeba188ca",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.7":
|
||||||
|
"27319e842d802c5c73be52f3774999d79d0f28f37984090998560fd925133375",
|
||||||
|
"i686-pc-windows-msvc-0.10.7":
|
||||||
|
"a7960473a473ee5907a55fccb8c645e24c1da7d39076aaef652b819e3a26a28b",
|
||||||
|
"i686-unknown-linux-gnu-0.10.7":
|
||||||
|
"1a22aa0d2268a9a6fb2e5f092ca3d1ef7c14f96c3b4fd546226814f376e59d73",
|
||||||
|
"i686-unknown-linux-musl-0.10.7":
|
||||||
|
"75c2cc60675fb6f846b394c3f7b51f77c08f0981abf5cfcb5e27cfbb2f5837e0",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.7":
|
||||||
|
"7398686962b966959c32e7fbfd2868fbac38491ff0d86033d7c8bbb826a04026",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.7":
|
||||||
|
"39abc60403fdcf5c681b63c967059d42aea58a81ffb092d6dda767390222a4b0",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.7":
|
||||||
|
"281ae4c1343e0c5f9775358690d40e00edbf63ca788b4d8b6574a0b5cba624f4",
|
||||||
|
"x86_64-apple-darwin-0.10.7":
|
||||||
|
"4fed9d4f4608fb3850db714ee37244436f850a2b6e485bc510795679c2d08866",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.7":
|
||||||
|
"8881afb877996a1373a12e816395122a8d39a3ac06cd066272acdb49510cf0fe",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.7":
|
||||||
|
"9ac6cee4e379a5abfca06e78a777b26b7ba1f81cb7935b97054d80d85ac00774",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.7":
|
||||||
|
"992529add6024e67135b1c80617abd2eca7be2cf0b99b3911f923de815bd8dc1",
|
||||||
|
"aarch64-apple-darwin-0.10.6":
|
||||||
|
"3993249d8f51deaf34cfce037e57e294e82267ff1f9dc45b7983a17afaf065b4",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.6":
|
||||||
|
"e431c9a4f8d66e872f6640500cbbf1af20418720b78ac01404399ac810ef2e46",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.6":
|
||||||
|
"9380705294a85e3e634570abddd5b2577900c1873c29b790c7abc56a81dce4bc",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.6":
|
||||||
|
"7de7aa836fd54ff930fa5e63bc04da35e2fbd72889d6258e153479c44d08b863",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.6":
|
||||||
|
"9d0b55a3b0aff97884f49e15739a9936eb33a1b59a5bf1b3c7ce4d9e517d4d76",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.6":
|
||||||
|
"165400192202ee2487bcee4429a5e5a2fddfe8fef8985fb548e2a89fda6b2376",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.6":
|
||||||
|
"1cf58447f2003122f83b1a34aee94429cb2686010c3502bfa21c8116e09d5bdf",
|
||||||
|
"i686-pc-windows-msvc-0.10.6":
|
||||||
|
"ec189db03b89262e6089e4fb895af6116b964234cf4166b330e258aaf7f999b4",
|
||||||
|
"i686-unknown-linux-gnu-0.10.6":
|
||||||
|
"f72a88d489fc424aca69c1cbf175bb5aeae649aa8c55b092628e5e553b481dd5",
|
||||||
|
"i686-unknown-linux-musl-0.10.6":
|
||||||
|
"94471f51aedbfaceb495949d5ce37d44352b2dfea45b61399870c39a881681fc",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.6":
|
||||||
|
"72d504553fc7150177bbf57b585c850cb4d695ddd848b9ba1416ac122eb88293",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.6":
|
||||||
|
"8f8a966d1f911f39334581a933805a30cdec5a7c1d4f580e03973ff45bf9b6ad",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.6":
|
||||||
|
"5ed60237762862b05561d02b7f095268897d0561e87dca5986b04319265bc2cf",
|
||||||
|
"x86_64-apple-darwin-0.10.6":
|
||||||
|
"d7647571fb17a5107d4d23cc190418039c157fd7361ddb59bc6f8127a49e3eac",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.6":
|
||||||
|
"b27eb789f281e398a82197477de727fc8faf08605152115686da2c3cba0d25f7",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.6":
|
||||||
|
"aaa402e19d14a6b9a4267fcf4ec35380f804c68923525cea67cd6ee05bb4e930",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.6":
|
||||||
|
"01d6ce770da88ce6445acb0a8764c8b1634c9f69c728dca68b19fc7a893f72b9",
|
||||||
|
"aarch64-apple-darwin-0.10.5":
|
||||||
|
"796c2d264c6aba3e1179249438a9fa2fe64140748f0e5b6681e38218ab6238f1",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.5":
|
||||||
|
"7f88f279e271cd76a6e07fe1ad711cbdf15374206ab79f55adadb818ebbd8e43",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.5":
|
||||||
|
"dfa82b047456c646c50ba769af81a6b7ba20aaf5feee96e61554861db8db5809",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.5":
|
||||||
|
"cf01a960442b9aff4cadc4d27c691086151e9289b5b9fbd0dc41ecfcff1db872",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.5":
|
||||||
|
"abe18becc57fe3c3bf55e62b4b7be0231cb4dbb941fdb3f4f9132703b1f4868c",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.5":
|
||||||
|
"46d79f64e88cb339160cf90f6df51ea14795960840fb4fca8aa61af8cddd8187",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.5":
|
||||||
|
"13444ea0cc650551c4c455af73ac27a77185064275475b2999c627158b7455f4",
|
||||||
|
"i686-pc-windows-msvc-0.10.5":
|
||||||
|
"67d96bae5ef30b9f1e201622505591601b936996ceea84c36fce5e577db5a442",
|
||||||
|
"i686-unknown-linux-gnu-0.10.5":
|
||||||
|
"56eb897036b8607bb7516349388bef6c83004ae05e694ec34e1bae69f3a0f237",
|
||||||
|
"i686-unknown-linux-musl-0.10.5":
|
||||||
|
"b0be10f5c16a987294a806dfd3927348456fca8b465377c99e0d167792b842dc",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.5":
|
||||||
|
"c7f4049b7e26a43107351808f7748c3bc0dfdf118c29f4b1470b69be15fef45b",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.5":
|
||||||
|
"756c43f4844953a2241c4254d268335b3bd35ca81856e8e06c7d4826466e87ce",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.5":
|
||||||
|
"fbccde48aec139fc99558bd022ec3cab15f607b9b5e0efc0279c6145ab5ecaf7",
|
||||||
|
"x86_64-apple-darwin-0.10.5":
|
||||||
|
"84c4ce2902e2e840a54a75360b00f06ceffc6c26894bc5e73151a2c55d5fd043",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.5":
|
||||||
|
"d5b3b04127eb6fb41ffca60c0da655124133b62b4b58e29cfc5435469a176e06",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.5":
|
||||||
|
"bcb127225873baa5ebd23cf09f29996cc97c1091830c9933e2e320bf1429a584",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.5":
|
||||||
|
"88aeea39c77b6b796ca6b19c0216a577b18095dc450972dac7872a307bb1e160",
|
||||||
|
"aarch64-apple-darwin-0.10.4":
|
||||||
|
"a6852e4dc565c8fedcf5adcdf09fca7caf5347739bed512bd95b15dada36db51",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.4":
|
||||||
|
"77f859cfc26181bdfb94087ce42336d9e2d9e0700bc42f6668445cde517198ce",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.4":
|
||||||
|
"c84a6e6405715caa6e2f5ef8e5f29a5d0bc558a954e9f1b5c082b9d4708c222e",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.4":
|
||||||
|
"82fc461031dafb130af761e7dbec1bcc51b826c2e664f5bf8bc4e4f8330320cd",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.4":
|
||||||
|
"2050d9037a63975dafed987bdc7d2960a3b82345951c14193060fce20f9d31d8",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.4":
|
||||||
|
"d1824ed14f3ad0e7cb7835b46bc0299859cd8141d039a66274a135ca9797bf9c",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.4":
|
||||||
|
"3038fdf153a722941424c28ae76996d60589f7f626c2000eb6567b3c301100dd",
|
||||||
|
"i686-pc-windows-msvc-0.10.4":
|
||||||
|
"b42379a65e9cec5863a22cf81810aec57281b08d426e70cc3b90320b996d84a7",
|
||||||
|
"i686-unknown-linux-gnu-0.10.4":
|
||||||
|
"79821b1d6c035aa8dc32a45d41551a4f010b8e357c98df48c95c5cb5ec18a743",
|
||||||
|
"i686-unknown-linux-musl-0.10.4":
|
||||||
|
"459315d7dba39b0297f44104fad1c93fa5cf866f91b533bba02d58f1e54129ad",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.4":
|
||||||
|
"7b315d9580ef574a1d0ff2023c16e5ac8a164feb1e998f33ed144dfd4c4fc125",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.4":
|
||||||
|
"101a71c072986929c410d4839babf66851563fd855b36c1dd7ffbbf5fbedce36",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.4":
|
||||||
|
"59a50f14892c82de8f3e7a1a63ebc0ef98778085e4bb35ec99323f5009232fe2",
|
||||||
|
"x86_64-apple-darwin-0.10.4":
|
||||||
|
"df6dd1c3ebeab4369a098c516c15c233c62bf789a40a4864b30dad1d38d7604e",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.4":
|
||||||
|
"0f0e22d7507633bfb38d9b42fb6a0341f1f74b8e80b070a31231c354812432a3",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.4":
|
||||||
|
"6b52a47358deea1c5e173278bf46b2b489747a59ae31f2a4362ed5c6c1c269f7",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.4":
|
||||||
|
"18adf097cea30a165ba086c1e72659fec3c5aca056a560e7c39e0164ac871196",
|
||||||
|
"aarch64-apple-darwin-0.10.3":
|
||||||
|
"ed2a08079527dafae4943fee80162ed750286657901e642eba4c9de928706df8",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.3":
|
||||||
|
"48243b8acbb31d0081e00878ee3b28535ed9f28ab8b27960b88aed8e1d6dd16a",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.3":
|
||||||
|
"cce7d1e4c34e22955cd647b256409b6504f4ae72acf190a6f26189efefbc9a9d",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.3":
|
||||||
|
"a98f8decf21204d40acb512b0e08a803ed718c640a97f3c095864967463d5b15",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.3":
|
||||||
|
"e4b3c6dc59cd65125eda09e6c24b97fca71647df979f8963662807dc6a53e165",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.3":
|
||||||
|
"1d453ef56127d3aab3ea7f383b27765840e0bdc0b683347191e4cbc26272de2e",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.3":
|
||||||
|
"d2484df75c9ba4c7e9750da00c4c4276b65c088d8b551b63717d5d9aa227ffa5",
|
||||||
|
"i686-pc-windows-msvc-0.10.3":
|
||||||
|
"51f745bcab5f77fe75e6f221e3e55a4bddf54824e634ac6f229132880506ce7e",
|
||||||
|
"i686-unknown-linux-gnu-0.10.3":
|
||||||
|
"e82e76ced718091d946eed30880728cf39f05b85f4f82c483a7dbf95f1663531",
|
||||||
|
"i686-unknown-linux-musl-0.10.3":
|
||||||
|
"0baca51f61729c6911d1d055c2e6dee5d11d88f6abbcd1ff801460f46880dc8d",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.3":
|
||||||
|
"cf4969ba97af3a53d1e4dc8a28441b79e78a8d9a9d41854e88b425f6b6fc6179",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.3":
|
||||||
|
"79b6b362e48c80e5b7d251fb96546d8ee52dd3458e01518cef969f757b59502b",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.3":
|
||||||
|
"fc969d6011e4ffd0752abb5d812fc453649a7394c3f08a11556c9960891e359c",
|
||||||
|
"x86_64-apple-darwin-0.10.3":
|
||||||
|
"e8071cedb9986724ca3d70020b4460a85a274394b378c0e8eb1e8f9e33402ff9",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.3":
|
||||||
|
"d029201a3eebaa8a0001fa762ee44ca14a9cb3cae4d59fc3fd69857da03a6f8c",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.3":
|
||||||
|
"c60b9956a0e6727f0ddd881c303a706c6408b2047f3a8fa4d1454a826338ccdc",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.3":
|
||||||
|
"126496b606129eda426dac502af0d910d895f3db81da28efc49b18edf5557741",
|
||||||
|
"aarch64-apple-darwin-0.10.2":
|
||||||
|
"3828b2de196687f60e9d199aea8b504299629300831eea0935ff3fe339903d0a",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.2":
|
||||||
|
"826e4ee3a03ec245e54c449e272fdf8aab749e039cc49c950ad43cc13702221f",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.2":
|
||||||
|
"4998f545234d52fc6f1280827d392f00a9278295050d59c53a776546dbf0124d",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.2":
|
||||||
|
"685e47f8f88b6845a9fc2ca27c3d246c0f53af8c017daf8e98ac0a97fe20365b",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.2":
|
||||||
|
"1c51ebc67e8e492fa549167a96e40bb21a2c2ccde8a8b440f9c8bc0e07f3d4a8",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.2":
|
||||||
|
"45243fed8f587f11002f175216894c9c75e2f402324627b7e0855e670557ec14",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.2":
|
||||||
|
"45b3d7eee7a3af2e4309b0bbe4886c6640b773f6500f0e0b662d84f4a5466f67",
|
||||||
|
"i686-pc-windows-msvc-0.10.2":
|
||||||
|
"a828ee0a2f42d1384f79acd3edaf01956000e1ec5d18d9992d79e17d70d9aa6c",
|
||||||
|
"i686-unknown-linux-gnu-0.10.2":
|
||||||
|
"7f64628a8a0869185eed24de4a02f4c8d19c99dec7363f383050ccb7474a76e9",
|
||||||
|
"i686-unknown-linux-musl-0.10.2":
|
||||||
|
"8d1978ecfa37d2d71cbb0e2e75262e65c184d040130fe2dc331f25e044ed97b4",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.2":
|
||||||
|
"9b7f8e3ced416276a9e6321369f69234552d9cbf39d68d96a67e85cee4cd611f",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.2":
|
||||||
|
"1ad005a361293175170f3c193b50d5a5c7f1da631649236cd857721ce8c9cbde",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.2":
|
||||||
|
"d4832c85f3e8e17f7ae4ced90059dc2b6927939a47fea3e92e5712e7148b9c09",
|
||||||
|
"x86_64-apple-darwin-0.10.2":
|
||||||
|
"3cdbd038333cfe861ce04f3d91678547bf2e726224acf5f42d3f0affa6740e19",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.2":
|
||||||
|
"493ebbe0e06128d6ee4905e1ed5e2a433fb0f7cfc08b0eaca9fab4ca76778ae1",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.2":
|
||||||
|
"6aa4576c31f791c0b9d4739e256d07358d45e7535695287fec03cf6839e25512",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.2":
|
||||||
|
"c162182ba7dd692794362d76dd183990d6e51553217954106da19bdb6ced211b",
|
||||||
|
"aarch64-apple-darwin-0.10.1":
|
||||||
|
"37c101cd8a745a43d69bc3832c41866ab721467a1d58881f57b73b705abc2851",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.1":
|
||||||
|
"9644d0e37c41c19aa65137a928bf6fad78dc887f820202c0cfcf010cceb416a0",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.1":
|
||||||
|
"3731e98805ea6789188edec0dd97e673da195bf976a72db38f325f7c51cf5cdd",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.1":
|
||||||
|
"ae9ae536be5b4d1cf7a6560d52a20711f267e7b21e23ee6cc538a4afa236b757",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.1":
|
||||||
|
"af7994b58553156fb4acdac40b3f7b1b43260a76de96ca7123bdf861351675d4",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.1":
|
||||||
|
"4f8857a779df69e2aa9df8ff35b6c34ef3ce45c13d2d4a0ae3957b0e68d322cc",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.1":
|
||||||
|
"79d978b0e829cab83de4c78e80bd014f3210cf0a1a653d880d0aa6760baeaf80",
|
||||||
|
"i686-pc-windows-msvc-0.10.1":
|
||||||
|
"c4e989d479f9fc229302345a64f272be3c249d5fff4a2e722aa3d73c381fb303",
|
||||||
|
"i686-unknown-linux-gnu-0.10.1":
|
||||||
|
"0c4a17893df6e11991483277c5f0bee06d8ea60b6e11b349a9849bfe13a8c5cf",
|
||||||
|
"i686-unknown-linux-musl-0.10.1":
|
||||||
|
"7219a96adde5316489886c0d74749b7248c2c4070170b8e153d9d3f8f9fdfa5e",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.1":
|
||||||
|
"aa2ed9587a9ad5127662da9ceccaa747b941f37cbd9e6d9334c7c6c3286c9587",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.1":
|
||||||
|
"bda96a9ff8be79f780ff4711a2515061fe80d6f135ba55a47c41e1c6739d048e",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.1":
|
||||||
|
"091eeeecfcdb15a954f2488be6b89d8709709003ada81d215d6ca88145826049",
|
||||||
|
"x86_64-apple-darwin-0.10.1":
|
||||||
|
"f61f1122193698a53fc2d4cc6fb5a5849b283817509778ac8f1a7d2a36a218de",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.1":
|
||||||
|
"64c297ef1cd8e3a50966dee20cbe039564cd59e41186e0d1dd38fa4e627fc285",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.1":
|
||||||
|
"8b5af2d678da1bdae80a5107c934f6ab010c6cdeb2de5b8e07568031d9486051",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.1":
|
||||||
|
"d1a3b08dd9abf9e500541cadd0e2f4b144c99b9265fb00e500c2b5c82a3b4ee8",
|
||||||
|
"aarch64-apple-darwin-0.10.0":
|
||||||
|
"82d4b99dc6ea686695b5ee142ceba03dd3e3eda2b414e94215ab7bce94972fbb",
|
||||||
|
"aarch64-pc-windows-msvc-0.10.0":
|
||||||
|
"614dd3c409d7fb5a98b516d532c98db9b7799a23fb450150e3784338a9ebd903",
|
||||||
|
"aarch64-unknown-linux-gnu-0.10.0":
|
||||||
|
"c300afd5f2d31df039fe6a26a2d68a76b62832098c272a43e1e74ab9efd4fbd7",
|
||||||
|
"aarch64-unknown-linux-musl-0.10.0":
|
||||||
|
"edf1adb1d183730302f87eef9b71bc4e47b4b8058832c3393b0fbcd86f270510",
|
||||||
|
"arm-unknown-linux-musleabihf-0.10.0":
|
||||||
|
"fea6d45bce1e7172192b4a7d3feb9f37c4198c243be1c573c8dacae765a32c53",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.10.0":
|
||||||
|
"3e8ab76a515884c29c773e01360acb6da61a1351c630377b54ba58918d9673af",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.10.0":
|
||||||
|
"85423cda078ed0313f993ddea6ac897e469885539ce156643ace982bbffb8109",
|
||||||
|
"i686-pc-windows-msvc-0.10.0":
|
||||||
|
"b71bca0987dd12ea09ac6a0e52fdfa89f53601b6074be38366d0592b181f3001",
|
||||||
|
"i686-unknown-linux-gnu-0.10.0":
|
||||||
|
"dbac897653b0d60fb863288587dbacb30140f9725a42718f2c017df7b2d2b3c3",
|
||||||
|
"i686-unknown-linux-musl-0.10.0":
|
||||||
|
"56a211155275dd33731cbbb33aa915d3e7efa59d4436502edaca39ba436c157a",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.10.0":
|
||||||
|
"677a414608c61e2ecd751364dae9209cc5b76019481968b99b5d5ad7258d2d77",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.10.0":
|
||||||
|
"9da4019ecfd3440a5d0a0a957d8d5e4c6534ac1e3a10636d55266a22ab4135f8",
|
||||||
|
"s390x-unknown-linux-gnu-0.10.0":
|
||||||
|
"a1b9aa45c1a6b69066179e8d7e3f6e122e0f433ef2ad4e91c0acd1433a083c31",
|
||||||
|
"x86_64-apple-darwin-0.10.0":
|
||||||
|
"664aed584c276f8d79cdc3b7685cd48f5d64657bd6840b06b4b2b0db731b9c99",
|
||||||
|
"x86_64-pc-windows-msvc-0.10.0":
|
||||||
|
"4037b444541f695cd2eb93188a9346de3e334af562381411deade0a31c7bf898",
|
||||||
|
"x86_64-unknown-linux-gnu-0.10.0":
|
||||||
|
"230e328948c92dd1ebad83949c4d56e83813dfe9c6362a4c519e6a227973f1ae",
|
||||||
|
"x86_64-unknown-linux-musl-0.10.0":
|
||||||
|
"312d37f31b6f2c3bfc65668ba0efea9f1f9eaf7bc3209fe1a109e5cf861b95fa",
|
||||||
|
"aarch64-apple-darwin-0.9.30":
|
||||||
|
"03a5d9ec7f7d588446b2ec226d13ff6300055e55365eca8f3fab39f342b0e805",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.30":
|
||||||
|
"cfbc40baf1da11c55eff92ee008f5af3cdbb4c24c40ddb0bbd489b983fadf43f",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.30":
|
||||||
|
"6aadf3c71600d594e16dabf382cc15282ead4c5ca768599b6bcb43c5004d9aa8",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.30":
|
||||||
|
"b658b56957bceea742ca14f3ef28fb3542adbcedfb8bd5bd718ae255394ccd09",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.30":
|
||||||
|
"5a7f4cd306363b734dba2d86eb760812cb1211254d36ace01860f9e783df1900",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.30":
|
||||||
|
"bf8d9c2f1b4d0eee9bfb689b5483b1bd4b0b76acbeaaa4d0d68b132574c606ff",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.30":
|
||||||
|
"8715a9da643d9e6cb984c2d3e00480849f93f11251d1474cd382cc9d7faeab84",
|
||||||
|
"i686-pc-windows-msvc-0.9.30":
|
||||||
|
"218b7ec0d052836d7ee395d5e0592e5dac7578fd618f439a5d09c1ad36466399",
|
||||||
|
"i686-unknown-linux-gnu-0.9.30":
|
||||||
|
"1bab147179887ebcb5c31e016e9ac9987f687e79f92fd2f0ff9bcedf927b8228",
|
||||||
|
"i686-unknown-linux-musl-0.9.30":
|
||||||
|
"14d8b2e2caa0b470418e551e027f3a8283aa8d09eae79206e7dbcd23a8ffa027",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.30":
|
||||||
|
"ac4cd1a021462885932f6023b005a4835cca4c72bb60dec186ee2be4b60dca6f",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.30":
|
||||||
|
"73b8cbc560c6b2fa205358365d4e174abdf50cfcf57dc36a447572c56eba5ae4",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.30":
|
||||||
|
"5e0453d9252aab874a3658a039d4ffdde79dba4096974fcdc945498697dc81cf",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.30":
|
||||||
|
"b35975bb9e5c2c418b428d0316cc6e3c7a6eff710c69212be14005c192f54516",
|
||||||
|
"x86_64-apple-darwin-0.9.30":
|
||||||
|
"ce069bf750567e9a4a31d6e285d1eae75d444d8a281409b641235903943b7681",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.30":
|
||||||
|
"875981be7908295937dee09532bb66d576986d4f223259e171b0c767c885897a",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.30":
|
||||||
|
"8b3762374972daa7a74bbc6896cc73229ca69a07403dd9f9ea3805a51ffd7582",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.30":
|
||||||
|
"1caf8fe092e2005dd4c134ba515c1aa3eea3d3c143f8a1903bcb58fcdf169365",
|
||||||
|
"aarch64-apple-darwin-0.9.29":
|
||||||
|
"0729ddd5c02df33669b03627aa5d9ac7cde4421657f808d54585e3cda944bb55",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.29":
|
||||||
|
"39f7dce0d2993cd18d67980c012945ea678a99aef199f7afcea522b5bd70ecf7",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.29":
|
||||||
|
"935b35542b7e25493a551dcb3487af23b72ad284ee8ac6a488a97d02ce2d84ec",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.29":
|
||||||
|
"b1edc94f5d6c36bb28a20f8c8afb400e55a428fcf396b03bf78cb7394f75077c",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.29":
|
||||||
|
"c72ae74c04668d4cf3143fb11ad5bbd1c9e9a80aaa439cb3e43208c127249202",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.29":
|
||||||
|
"e263645c9ab44e3f7e732b0317da775082f077bb86933be662395eeab97fb3d2",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.29":
|
||||||
|
"98ab47dcb345d746b230a359d72a96444b1be21cf24026c653d5c7848c680beb",
|
||||||
|
"i686-pc-windows-msvc-0.9.29":
|
||||||
|
"049a929882a3f4a2d054c9dc44848d2c24175079696e131a57d60d9ab62df81a",
|
||||||
|
"i686-unknown-linux-gnu-0.9.29":
|
||||||
|
"9415828fc2fdacadb56263382a27da6661a89a4bb3a6683d6d864d5c013b7c6a",
|
||||||
|
"i686-unknown-linux-musl-0.9.29":
|
||||||
|
"3ac91c9cccc85c07c0950afc4f45b3e14f2a3e9484f4940366ebab72e71fa8dc",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.29":
|
||||||
|
"7feb1fb35fe66b4f83d3bc7776810f708c6609c9be48ceed6ec024b15733101d",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.29":
|
||||||
|
"1f4e1f859868abcf3557afe78b8b7525a938921af745945deef737927a017d82",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.29":
|
||||||
|
"18dc2d3b513c4bfe0fc4b3a67a80f62ce32077f84db343a1f0eb8003ab276732",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.29":
|
||||||
|
"10e6d5dcd72bf99daee6678f6b508d1056e9f1670f6d76c1cfdf02b7560bcb4a",
|
||||||
|
"x86_64-apple-darwin-0.9.29":
|
||||||
|
"d251e48db2a962272a2efeb2771c82c02e40f473193a255e8e5c05eb61112139",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.29":
|
||||||
|
"9825b1a5955d8a432b664e56660641aac8886ed30cd9c59a94aacc68ae9116ce",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.29":
|
||||||
|
"1ce5212f8f42dc7427a1bd3db4168d6d1abcf81b38d8c82a5b9d0ddc54ceebfc",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.29":
|
||||||
|
"44c93c73e8870e003bda17ab50d433e27d201d0cb28d2bb75351ef1497ffa9db",
|
||||||
|
"aarch64-apple-darwin-0.9.28":
|
||||||
|
"12163fe09eb292d3ad1ea0f132a84485c902e2ff360d57562bf676e6615fcba0",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.28":
|
||||||
|
"081703fa19ae05a49f486f97468f7792e1cdacda403a091b151af7f5bd6f4595",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.28":
|
||||||
|
"382c342735ff29f8ba4574d88e39bca798bcbac50bff6742710ca9cd8143e7d2",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.28":
|
||||||
|
"eec3249254efac972d2555ff858f8ed20f05b40fbb38ac83b15cf0a2ccc86749",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.28":
|
||||||
|
"d0df2a9e7db464a567038bd560dc5007e488542c073989334a4a293b8957e1e1",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.28":
|
||||||
|
"6ddf1979609a3f5bdf897965ed6984dacce860ce57c579596bdc4b514c19320b",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.28":
|
||||||
|
"e391ba4cc05a3a1096f1ab6cd82fcbed059d048a6ba108b4cb18da311a07c4d5",
|
||||||
|
"i686-pc-windows-msvc-0.9.28":
|
||||||
|
"fb5015efd0db178268312a7a7dcde7b0d3b7d7e0eccd0372a4b6f1dcfc075472",
|
||||||
|
"i686-unknown-linux-gnu-0.9.28":
|
||||||
|
"c0d34d92cb11925530fbc313de7536da3e1d097a442f54668417d241697fb3a2",
|
||||||
|
"i686-unknown-linux-musl-0.9.28":
|
||||||
|
"be1ad4f30d97c95af5105405fc38329d66375cde3de18cd0f9fe73b4581155c7",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.28":
|
||||||
|
"6f23bfca0febb001792e7124d0c2ba41ddcfe01d6c030f4a8668ed634a5a582b",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.28":
|
||||||
|
"894ac114f076cffbf041e55e1ad0df759f7bc9dba1291158690781baad38001e",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.28":
|
||||||
|
"e61fa014a0b77acd17f9f366a55cbc0e67b377c4eff13629021a4242cc71eabb",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.28":
|
||||||
|
"af15dc54893b2caecc3604ac68104914b155a8bbf821f667996549e777919a90",
|
||||||
|
"x86_64-apple-darwin-0.9.28":
|
||||||
|
"3a8030881d13b824e5168f5e4d060e715e40753249766bda3d52d6771d93b169",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.28":
|
||||||
|
"9cb567fcd92f31431220ce620787043b946c30b9bb46ca213780e5ef471453be",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.28":
|
||||||
|
"66ad1822dd9cf96694b95c24f25bc05cff417a65351464da01682a91796d1f2b",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.28":
|
||||||
|
"83cd032167b6b97ac94830608efe11159b3d485654e39fdb0bf84718ef236afe",
|
||||||
|
"aarch64-apple-darwin-0.9.27":
|
||||||
|
"1359538ed8664d172692cf4719ee0933a4a3bfb22fc91b0be1e19e7bdd8f5ef3",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.27":
|
||||||
|
"b448ab228f5d1165b8497e8ca10346af6f652eb8ad4e75e47fa55e8cdb5b60d7",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.27":
|
||||||
|
"a58b3b77a25620ae15ff3587049b755c7cbf3eaa7df187620b3e6c3dbf71daa0",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.27":
|
||||||
|
"f80e97e1154a06e42143a173831289336ca9e34a67096ab070346958153e8e52",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.27":
|
||||||
|
"b80f4db9254b9ddec4b576190bdf15723e948f37f648d9b273be2e153d05f820",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.27":
|
||||||
|
"03b45c99ca940739c2a093f6a514da3dd858b3bc1e8c957c16c1832e30b30c28",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.27":
|
||||||
|
"da43ee6e2f17b4646e35e2d55ce6a021fdf47c06601a6ae8b827de7bb7b3b02f",
|
||||||
|
"i686-pc-windows-msvc-0.9.27":
|
||||||
|
"f47831a97b8a1bc7c7211905c1e517cc2f4ef84df877f2a283c49609275db0fa",
|
||||||
|
"i686-unknown-linux-gnu-0.9.27":
|
||||||
|
"fdf3067e0c05d39b849ad48fbbc2b58919f70a686a40506c643d32688ceba1a9",
|
||||||
|
"i686-unknown-linux-musl-0.9.27":
|
||||||
|
"3c1f8c2b148ebf884311558aaff32b9fb5b68fe4f4242e3e3765381bb594386a",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.27":
|
||||||
|
"c3cbda5118b06f2261d32f4802adfdc71f618f808df0c6a3184695a6ffecb88a",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.27":
|
||||||
|
"9011f6085cee3921c9fce82ce03041ca97aacc8cab86b7a5791faa71fa5f2712",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.27":
|
||||||
|
"7193628620c2c50c2d6632ea8e53a4ab5313f7e8003ddedd9e999f48b6d2c222",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.27":
|
||||||
|
"5b055f02f2c8e5086ae1d05cf70d32d66982d27d8469ed896a65067fac2001d2",
|
||||||
|
"x86_64-apple-darwin-0.9.27":
|
||||||
|
"3977309c5c79984c13c55d2d1cd7aa114a718eb29436c5bdb4bdfa08bf243438",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.27":
|
||||||
|
"c3bf465d5f2b93c836f369aec9f3fa8350843f24abd5f710bb74e72440b82898",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.27":
|
||||||
|
"8636e693ea0e05f5f4294b161f816c4d8df065267fdb0405cfb84c8e326991fa",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.27":
|
||||||
|
"9f269bfb9c2e80808c373902af6a4af6cd5f4b4668b28c44aa09639cfed925c5",
|
||||||
|
"aarch64-apple-darwin-0.9.26":
|
||||||
|
"fcf0a9ea6599c6ae28a4c854ac6da76f2c889354d7c36ce136ef071f7ab9721f",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.26":
|
||||||
|
"79e1398ec98681b1b0494ed3485b0f4565e98a7db109a3f205d0fcdc6a1992f7",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.26":
|
||||||
|
"f71040c59798f79c44c08a7a1c1af7de95a8d334ea924b47b67ad6b9632be270",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.26":
|
||||||
|
"ba8698c36c00c22efed4bd3506339b03c95604d001f02eaf6fbc814c9224d801",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.26":
|
||||||
|
"8baa850e6f7a4f8edeef411891780161e95682bf291c85405fdc331925c425c2",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.26":
|
||||||
|
"f9cf9806b3bd434b4aca5de1a8412502a29bcbc908848cdea18e32480964ab79",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.26":
|
||||||
|
"881df52998da192f0609be37abe445ab0d89f28daceecb171ea8a14088153aee",
|
||||||
|
"i686-pc-windows-msvc-0.9.26":
|
||||||
|
"2fa5e36d7dc3053962a95a2583b2bcc19aab2ec6c5d4c887cca58de819cf77dd",
|
||||||
|
"i686-unknown-linux-gnu-0.9.26":
|
||||||
|
"03548a2abd1d604724c9d65184b506d3eafef1b0a7d8cea974a083f5f9c9496f",
|
||||||
|
"i686-unknown-linux-musl-0.9.26":
|
||||||
|
"5208601b9baee1a04a604f441bd94a1ab91b511f142b27729b073f4286994f8f",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.26":
|
||||||
|
"6ac6baa2dd7db742ff58a2d54e3fc09693e69c878666bcacf9d49bc58decc98a",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.26":
|
||||||
|
"1a7fbd268b7520e03747022f879113545a5bd71cad02e9cbabd591b268b5a36c",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.26":
|
||||||
|
"9f202ad04cc398dc77a6efe20ea91ec044ad66e1f7a60777e6efd20a357f479a",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.26":
|
||||||
|
"f8e6b8f1264821add1ea21d592b4522300401f44ac4124fba9fea6874fd79797",
|
||||||
|
"x86_64-apple-darwin-0.9.26":
|
||||||
|
"171eb8c518313e157c5b4cec7b4f743bc6bab1bd23e09b646679a02d096a047f",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.26":
|
||||||
|
"eb02fd95d8e0eed462b4a67ecdd320d865b38c560bffcda9a0b87ec944bdf036",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.26":
|
||||||
|
"30ccbf0a66dc8727a02b0e245c583ee970bdafecf3a443c1686e1b30ec4939e8",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.26":
|
||||||
|
"708b752876aeeb753257e1d55470569789e465684c1d3bc1760db26360b6c28b",
|
||||||
|
"aarch64-apple-darwin-0.9.25":
|
||||||
|
"606b3c6949d971709f2526fa0d9f0fd23ccf60e09f117999b406b424af18a6a6",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.25":
|
||||||
|
"6a4c2a753a94d9639725b435f5d1a65bfa25cd196d448ad60841f5fe81ef0052",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.25":
|
||||||
|
"a8f1d71a42c4470251a880348b2d28d530018693324175084fa1749d267c98c6",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.25":
|
||||||
|
"11cddffc61826e3b7af02db37bc3ed8e9e6747dad328d45c8b02f89408afbf75",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.25":
|
||||||
|
"52f3a96605a7873ec44bb84c33ee08e717df61136fec121f715871cae5b779ec",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.25":
|
||||||
|
"7ae274742a5b2398bd75f9075536c7f0b3f99ebc8c6588c37e3bfcd9cc9d781d",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.25":
|
||||||
|
"77220a539dfffe576cdc9b9e9ab5432c07dd1b63915c859c227883af7ba00538",
|
||||||
|
"i686-pc-windows-msvc-0.9.25":
|
||||||
|
"55dbf32074a76e029410620e7e3fbef9762799c7dfcf539b098ccc0a64cac9a3",
|
||||||
|
"i686-unknown-linux-gnu-0.9.25":
|
||||||
|
"b9dae29f4e37bc89e69836e59169a51d8cac4da118b7548a20b2269b19c94cad",
|
||||||
|
"i686-unknown-linux-musl-0.9.25":
|
||||||
|
"a84a159856a0227c273e86594d9cf8fbf84c56bd4eeeb9a665c946304c49dbec",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.25":
|
||||||
|
"37bc519ebe5e4efb12fd155eb94512547a874f0e41251203b49d715f75eb5a20",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.25":
|
||||||
|
"a01a273b5cd64ece96d4589afbacaf5e99a0695f37ebe9a72fd6b2f7cf0a7071",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.25":
|
||||||
|
"9d9692f1bd5ff6d9db2c4bffc4ceeb8d8746ae03ddeca0b24a0f8fc9ea81b911",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.25":
|
||||||
|
"92d5e4504ef83f421a841381678f871bf2a8821a69d3374dd638e2014d4762ab",
|
||||||
|
"x86_64-apple-darwin-0.9.25":
|
||||||
|
"4982dfff14b3548bc85d0fa0abec6ab8ae62836b218bf1223741ba1392ef93bf",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.25":
|
||||||
|
"d63f8e59cf76bcce9cb8a3eac6c1a89adce0f89a29bacca978c9bf842f419277",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.25":
|
||||||
|
"fa1f4abfe101d43e820342210c3c6854028703770f81e95b119ed1e65ec81b35",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.25":
|
||||||
|
"700776c376ce36ed5b731fcd699e141d897551f5111907987b63897e0c1ad797",
|
||||||
|
"aarch64-apple-darwin-0.9.24":
|
||||||
|
"89661d9a16682197086df54bb43d0b03e58e23d4d9360fc8c6c0166f2828fd71",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.24":
|
||||||
|
"40ceb66af2667fc9b4d30a65ad8b8795d4effc39a44019b4218ad03f8f1d5a14",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.24":
|
||||||
|
"9b291a1a4f2fefc430e4fc49c00cb93eb448d41c5c79edf45211ceffedde3334",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.24":
|
||||||
|
"b16359904ede857b90b68168f10b0f6bf500858df9bed4e7156dbc59fd3f0747",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.24":
|
||||||
|
"b343d7f49ea5c0982c9696cbc5c7f96d7053cf8f9c7383a58d6c0c44fbeb6422",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.24":
|
||||||
|
"8d05b55fe2108ecab3995c2b656679a72c543fd9dc72eeb3a525106a709cfdcb",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.24":
|
||||||
|
"788d2bee1dfdb57a462f2a5c4e3d6e8c68ee9f9f1a938bdcdc00fa9e5edeaeec",
|
||||||
|
"i686-pc-windows-msvc-0.9.24":
|
||||||
|
"b49265a713cb3f874bcb373572095993d3098ab77cd2665483f53b24b788e5e9",
|
||||||
|
"i686-unknown-linux-gnu-0.9.24":
|
||||||
|
"940b8985c4d464c7cc69e40b17bf09d840b980028e1d82a3fb8dd007a737f29e",
|
||||||
|
"i686-unknown-linux-musl-0.9.24":
|
||||||
|
"4ffe6f377b7d68904d8d882af8adc85f2fa1bbccd26151785ff961adb67f2a99",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.24":
|
||||||
|
"1fbaff65544a2c36bbd8992e2abe6c50179401745dc00b5e12bded89794056a4",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.24":
|
||||||
|
"57ea84430ccf49f97184d9ee21102b250214fc6e6af4a87eefaaf8bb7c9c2b9a",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.24":
|
||||||
|
"81a884380f0ee954afd968140aaa55df19f2bee30d74f3c0c94a11d2265bb388",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.24":
|
||||||
|
"3da41f22f78f27a7764e303b07c68f5716f748128327c7d3d72f11c6b81b6c78",
|
||||||
|
"x86_64-apple-darwin-0.9.24":
|
||||||
|
"fda9b3203cce6ec3a37177440c33c4c1963c4957fff17e2820c60ab6ccd625da",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.24":
|
||||||
|
"cf9d6fa12017199d19c6f9a8f7f55811c8c04d70681b8cb6d89ffb179f08cf1f",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.24":
|
||||||
|
"fb13ad85106da6b21dd16613afca910994446fe94a78ee0b5bed9c75cd066078",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.24":
|
||||||
|
"cf307aa4271038daa334ca64e75aa40c0c085ce6fa0c0e6f21e41a2b62c7904d",
|
||||||
|
"aarch64-apple-darwin-0.9.23":
|
||||||
|
"3aae069424778d13ef45ebd2ec906c66ab10e459e7b33341a64cd371a3d70998",
|
||||||
|
"aarch64-pc-windows-msvc-0.9.23":
|
||||||
|
"dfdb23dbfa6c89847e4163f0b3b683de889df7d9bdf95a3909dfbc6430106304",
|
||||||
|
"aarch64-unknown-linux-gnu-0.9.23":
|
||||||
|
"d60b0b2aee79f9d83897615fed427bee1ea4ebcb2f15b48dd522319ecdb3de91",
|
||||||
|
"aarch64-unknown-linux-musl-0.9.23":
|
||||||
|
"ee987d943427ee24c1d3af79c7ad676950c9ad634e60a4d07e328d8a54fff92f",
|
||||||
|
"arm-unknown-linux-musleabihf-0.9.23":
|
||||||
|
"1950c235e76e007f75d30903dc5da6747a344c72a1608123feff720c134ecbfe",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.9.23":
|
||||||
|
"a7104ab491a0c2f0c58760bcb9a13cfb64c899e02a7b747c4d11da114b3f9114",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.9.23":
|
||||||
|
"c5d494337a5ca86ad83d6a887634fda3f8392560799e4236a44d76f8e27621b6",
|
||||||
|
"i686-pc-windows-msvc-0.9.23":
|
||||||
|
"94292f02b7484616bb3cd7361411540a5a52e952d149eb6faeec610b6657015d",
|
||||||
|
"i686-unknown-linux-gnu-0.9.23":
|
||||||
|
"627627174d31e6fa270e91c7b2988558e4b18b86cc31de9222b6cf3b7354e9b7",
|
||||||
|
"i686-unknown-linux-musl-0.9.23":
|
||||||
|
"5f65a0eb1f9067a4f5149275faba3bcb3af94dd68fbce7cd9e93ba86b5bc59c3",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.9.23":
|
||||||
|
"69e2925397d0e781e8525ad0fd22896a114ffa02f5055e7a360e4dda3796c24e",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.9.23":
|
||||||
|
"fb3ad2cb1a19f1bb4785580dc71837161147beab134fdc3eb4e8ccda577db1e0",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.9.23":
|
||||||
|
"0d1d9300e2df3155b0d0b071c292fb27f8213d91854decdfb27c293397dc8e0e",
|
||||||
|
"s390x-unknown-linux-gnu-0.9.23":
|
||||||
|
"7d0b411a365b0cd8fad2b336c259743e7381676654adfbdb4f887b4136820cb8",
|
||||||
|
"x86_64-apple-darwin-0.9.23":
|
||||||
|
"b5bbfbd5d8c7effa24b505365ae306116fdac58880bc9b024ec4c89435d57728",
|
||||||
|
"x86_64-pc-windows-msvc-0.9.23":
|
||||||
|
"bb6d2987906b27d3031640c4a909b6f7c134cd29674c41ef545c6e7d57dd6700",
|
||||||
|
"x86_64-unknown-linux-gnu-0.9.23":
|
||||||
|
"b7bd7d9b9c9c34327f1118f99fe8c298252787ea35f7b345b8bf639377f63217",
|
||||||
|
"x86_64-unknown-linux-musl-0.9.23":
|
||||||
|
"a824a0f5f7aa67b668f54756284d458a25dea332da6e558d303890d134cc06d1",
|
||||||
"aarch64-apple-darwin-0.9.22":
|
"aarch64-apple-darwin-0.9.22":
|
||||||
"4bfc6dacc9bcc9e433a9214a658495ca082b94fd607949b6745a955f34ccbc3c",
|
"4bfc6dacc9bcc9e433a9214a658495ca082b94fd607949b6745a955f34ccbc3c",
|
||||||
"aarch64-pc-windows-msvc-0.9.22":
|
"aarch64-pc-windows-msvc-0.9.22":
|
||||||
|
|||||||
@@ -1,59 +1,34 @@
|
|||||||
import { promises as fs } from "node:fs";
|
import { promises as fs } from "node:fs";
|
||||||
import * as tc from "@actions/tool-cache";
|
|
||||||
import { KNOWN_CHECKSUMS } from "./known-checksums";
|
export interface ChecksumEntry {
|
||||||
|
key: string;
|
||||||
|
checksum: string;
|
||||||
|
}
|
||||||
|
|
||||||
export async function updateChecksums(
|
export async function updateChecksums(
|
||||||
filePath: string,
|
filePath: string,
|
||||||
downloadUrls: string[],
|
checksumEntries: ChecksumEntry[],
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
await fs.rm(filePath);
|
const deduplicatedEntries = new Map<string, string>();
|
||||||
await fs.appendFile(
|
|
||||||
filePath,
|
for (const entry of checksumEntries) {
|
||||||
"// AUTOGENERATED_DO_NOT_EDIT\nexport const KNOWN_CHECKSUMS: { [key: string]: string } = {\n",
|
if (deduplicatedEntries.has(entry.key)) {
|
||||||
);
|
|
||||||
let firstLine = true;
|
|
||||||
for (const downloadUrl of downloadUrls) {
|
|
||||||
const key = getKey(downloadUrl);
|
|
||||||
if (key === undefined) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const checksum = await getOrDownloadChecksum(key, downloadUrl);
|
|
||||||
if (!firstLine) {
|
|
||||||
await fs.appendFile(filePath, ",\n");
|
|
||||||
}
|
|
||||||
await fs.appendFile(filePath, ` "${key}":\n "${checksum}"`);
|
|
||||||
firstLine = false;
|
|
||||||
}
|
|
||||||
await fs.appendFile(filePath, ",\n};\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
function getKey(downloadUrl: string): string | undefined {
|
deduplicatedEntries.set(entry.key, entry.checksum);
|
||||||
// https://github.com/astral-sh/uv/releases/download/0.3.2/uv-aarch64-apple-darwin.tar.gz.sha256
|
|
||||||
const parts = downloadUrl.split("/");
|
|
||||||
const fileName = parts[parts.length - 1];
|
|
||||||
if (fileName.startsWith("source")) {
|
|
||||||
return undefined;
|
|
||||||
}
|
}
|
||||||
const name = fileName.split(".")[0].split("uv-")[1];
|
|
||||||
const version = parts[parts.length - 2];
|
|
||||||
return `${name}-${version}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getOrDownloadChecksum(
|
const body = [...deduplicatedEntries.entries()]
|
||||||
key: string,
|
.map(([key, checksum]) => ` "${key}":\n "${checksum}"`)
|
||||||
downloadUrl: string,
|
.join(",\n");
|
||||||
): Promise<string> {
|
|
||||||
let checksum = "";
|
|
||||||
if (key in KNOWN_CHECKSUMS) {
|
|
||||||
checksum = KNOWN_CHECKSUMS[key];
|
|
||||||
} else {
|
|
||||||
const content = await downloadAssetContent(downloadUrl);
|
|
||||||
checksum = content.split(" ")[0].trim();
|
|
||||||
}
|
|
||||||
return checksum;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function downloadAssetContent(downloadUrl: string): Promise<string> {
|
const content =
|
||||||
const downloadPath = await tc.downloadTool(downloadUrl);
|
"// AUTOGENERATED_DO_NOT_EDIT\n" +
|
||||||
const content = await fs.readFile(downloadPath, "utf8");
|
"export const KNOWN_CHECKSUMS: { [key: string]: string } = {\n" +
|
||||||
return content;
|
body +
|
||||||
|
(body === "" ? "" : ",\n") +
|
||||||
|
"};\n";
|
||||||
|
|
||||||
|
await fs.writeFile(filePath, content);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,20 +2,21 @@ import { promises as fs } from "node:fs";
|
|||||||
import * as path from "node:path";
|
import * as path from "node:path";
|
||||||
import * as core from "@actions/core";
|
import * as core from "@actions/core";
|
||||||
import * as tc from "@actions/tool-cache";
|
import * as tc from "@actions/tool-cache";
|
||||||
import type { Endpoints } from "@octokit/types";
|
|
||||||
import * as pep440 from "@renovatebot/pep440";
|
import * as pep440 from "@renovatebot/pep440";
|
||||||
import * as semver from "semver";
|
import * as semver from "semver";
|
||||||
import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants";
|
import { TOOL_CACHE_NAME, VERSIONS_NDJSON_URL } from "../utils/constants";
|
||||||
import { Octokit } from "../utils/octokit";
|
|
||||||
import type { Architecture, Platform } from "../utils/platforms";
|
import type { Architecture, Platform } from "../utils/platforms";
|
||||||
import { validateChecksum } from "./checksum/checksum";
|
import { validateChecksum } from "./checksum/checksum";
|
||||||
import {
|
import {
|
||||||
getDownloadUrl,
|
getAllVersions as getAllManifestVersions,
|
||||||
getLatestKnownVersion as getLatestVersionInManifest,
|
getLatestKnownVersion as getLatestVersionInManifest,
|
||||||
|
getManifestArtifact,
|
||||||
} from "./version-manifest";
|
} from "./version-manifest";
|
||||||
|
import {
|
||||||
type Release =
|
getAllVersions as getAllVersionsFromNdjson,
|
||||||
Endpoints["GET /repos/{owner}/{repo}/releases"]["response"]["data"][number];
|
getArtifact as getArtifactFromNdjson,
|
||||||
|
getLatestVersion as getLatestVersionFromNdjson,
|
||||||
|
} from "./versions-client";
|
||||||
|
|
||||||
export function tryGetFromToolCache(
|
export function tryGetFromToolCache(
|
||||||
arch: Architecture,
|
arch: Architecture,
|
||||||
@@ -32,19 +33,26 @@ export function tryGetFromToolCache(
|
|||||||
return { installedPath, version: resolvedVersion };
|
return { installedPath, version: resolvedVersion };
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function downloadVersionFromGithub(
|
export async function downloadVersionFromNdjson(
|
||||||
platform: Platform,
|
platform: Platform,
|
||||||
arch: Architecture,
|
arch: Architecture,
|
||||||
version: string,
|
version: string,
|
||||||
checkSum: string | undefined,
|
checkSum: string | undefined,
|
||||||
githubToken: string,
|
githubToken: string,
|
||||||
): Promise<{ version: string; cachedToolDir: string }> {
|
): Promise<{ version: string; cachedToolDir: string }> {
|
||||||
const artifact = `uv-${arch}-${platform}`;
|
const artifact = await getArtifactFromNdjson(version, arch, platform);
|
||||||
const extension = getExtension(platform);
|
|
||||||
const downloadUrl = `https://github.com/${OWNER}/${REPO}/releases/download/${version}/${artifact}${extension}`;
|
if (!artifact) {
|
||||||
|
throw new Error(
|
||||||
|
`Could not find artifact for version ${version}, arch ${arch}, platform ${platform} in ${VERSIONS_NDJSON_URL} .`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// For the default astral-sh/versions source, checksum validation relies on
|
||||||
|
// user input or the built-in KNOWN_CHECKSUMS table, not NDJSON sha256 values.
|
||||||
return await downloadVersion(
|
return await downloadVersion(
|
||||||
downloadUrl,
|
artifact.url,
|
||||||
artifact,
|
`uv-${arch}-${platform}`,
|
||||||
platform,
|
platform,
|
||||||
arch,
|
arch,
|
||||||
version,
|
version,
|
||||||
@@ -54,38 +62,32 @@ export async function downloadVersionFromGithub(
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function downloadVersionFromManifest(
|
export async function downloadVersionFromManifest(
|
||||||
manifestUrl: string | undefined,
|
manifestUrl: string,
|
||||||
platform: Platform,
|
platform: Platform,
|
||||||
arch: Architecture,
|
arch: Architecture,
|
||||||
version: string,
|
version: string,
|
||||||
checkSum: string | undefined,
|
checkSum: string | undefined,
|
||||||
githubToken: string,
|
githubToken: string,
|
||||||
): Promise<{ version: string; cachedToolDir: string }> {
|
): Promise<{ version: string; cachedToolDir: string }> {
|
||||||
const downloadUrl = await getDownloadUrl(
|
const artifact = await getManifestArtifact(
|
||||||
manifestUrl,
|
manifestUrl,
|
||||||
version,
|
version,
|
||||||
arch,
|
arch,
|
||||||
platform,
|
platform,
|
||||||
);
|
);
|
||||||
if (!downloadUrl) {
|
if (!artifact) {
|
||||||
core.info(
|
throw new Error(
|
||||||
`manifest-file does not contain version ${version}, arch ${arch}, platform ${platform}. Falling back to GitHub releases.`,
|
`manifest-file does not contain version ${version}, arch ${arch}, platform ${platform}.`,
|
||||||
);
|
|
||||||
return await downloadVersionFromGithub(
|
|
||||||
platform,
|
|
||||||
arch,
|
|
||||||
version,
|
|
||||||
checkSum,
|
|
||||||
githubToken,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return await downloadVersion(
|
return await downloadVersion(
|
||||||
downloadUrl,
|
artifact.downloadUrl,
|
||||||
`uv-${arch}-${platform}`,
|
`uv-${arch}-${platform}`,
|
||||||
platform,
|
platform,
|
||||||
arch,
|
arch,
|
||||||
version,
|
version,
|
||||||
checkSum,
|
resolveChecksum(checkSum, artifact.checksum),
|
||||||
githubToken,
|
githubToken,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -96,7 +98,7 @@ async function downloadVersion(
|
|||||||
platform: Platform,
|
platform: Platform,
|
||||||
arch: Architecture,
|
arch: Architecture,
|
||||||
version: string,
|
version: string,
|
||||||
checkSum: string | undefined,
|
checksum: string | undefined,
|
||||||
githubToken: string,
|
githubToken: string,
|
||||||
): Promise<{ version: string; cachedToolDir: string }> {
|
): Promise<{ version: string; cachedToolDir: string }> {
|
||||||
core.info(`Downloading uv from "${downloadUrl}" ...`);
|
core.info(`Downloading uv from "${downloadUrl}" ...`);
|
||||||
@@ -105,14 +107,14 @@ async function downloadVersion(
|
|||||||
undefined,
|
undefined,
|
||||||
githubToken,
|
githubToken,
|
||||||
);
|
);
|
||||||
await validateChecksum(checkSum, downloadPath, arch, platform, version);
|
await validateChecksum(checksum, downloadPath, arch, platform, version);
|
||||||
|
|
||||||
let uvDir: string;
|
let uvDir: string;
|
||||||
if (platform === "pc-windows-msvc") {
|
if (platform === "pc-windows-msvc") {
|
||||||
// On windows extracting the zip does not create an intermediate directory
|
// On windows extracting the zip does not create an intermediate directory.
|
||||||
try {
|
try {
|
||||||
// Try tar first as it's much faster, but only bsdtar supports zip files,
|
// Try tar first as it's much faster, but only bsdtar supports zip files,
|
||||||
// so this my fail if another tar, like gnu tar, ends up being used.
|
// so this may fail if another tar, like gnu tar, ends up being used.
|
||||||
uvDir = await tc.extractTar(downloadPath, undefined, "x");
|
uvDir = await tc.extractTar(downloadPath, undefined, "x");
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
core.info(
|
core.info(
|
||||||
@@ -127,6 +129,7 @@ async function downloadVersion(
|
|||||||
const extractedDir = await tc.extractTar(downloadPath);
|
const extractedDir = await tc.extractTar(downloadPath);
|
||||||
uvDir = path.join(extractedDir, artifactName);
|
uvDir = path.join(extractedDir, artifactName);
|
||||||
}
|
}
|
||||||
|
|
||||||
const cachedToolDir = await tc.cacheDir(
|
const cachedToolDir = await tc.cacheDir(
|
||||||
uvDir,
|
uvDir,
|
||||||
TOOL_CACHE_NAME,
|
TOOL_CACHE_NAME,
|
||||||
@@ -136,14 +139,22 @@ async function downloadVersion(
|
|||||||
return { cachedToolDir, version: version };
|
return { cachedToolDir, version: version };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function resolveChecksum(
|
||||||
|
checkSum: string | undefined,
|
||||||
|
manifestChecksum?: string,
|
||||||
|
): string | undefined {
|
||||||
|
return checkSum !== undefined && checkSum !== ""
|
||||||
|
? checkSum
|
||||||
|
: manifestChecksum;
|
||||||
|
}
|
||||||
|
|
||||||
function getExtension(platform: Platform): string {
|
function getExtension(platform: Platform): string {
|
||||||
return platform === "pc-windows-msvc" ? ".zip" : ".tar.gz";
|
return platform === "pc-windows-msvc" ? ".zip" : ".tar.gz";
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function resolveVersion(
|
export async function resolveVersion(
|
||||||
versionInput: string,
|
versionInput: string,
|
||||||
manifestFile: string | undefined,
|
manifestUrl: string | undefined,
|
||||||
githubToken: string,
|
|
||||||
resolutionStrategy: "highest" | "lowest" = "highest",
|
resolutionStrategy: "highest" | "lowest" = "highest",
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
core.debug(`Resolving version: ${versionInput}`);
|
core.debug(`Resolving version: ${versionInput}`);
|
||||||
@@ -155,15 +166,15 @@ export async function resolveVersion(
|
|||||||
if (resolveVersionSpecifierToLatest) {
|
if (resolveVersionSpecifierToLatest) {
|
||||||
core.info("Found minimum version specifier, using latest version");
|
core.info("Found minimum version specifier, using latest version");
|
||||||
}
|
}
|
||||||
if (manifestFile) {
|
if (manifestUrl !== undefined) {
|
||||||
version =
|
version =
|
||||||
versionInput === "latest" || resolveVersionSpecifierToLatest
|
versionInput === "latest" || resolveVersionSpecifierToLatest
|
||||||
? await getLatestVersionInManifest(manifestFile)
|
? await getLatestVersionInManifest(manifestUrl)
|
||||||
: versionInput;
|
: versionInput;
|
||||||
} else {
|
} else {
|
||||||
version =
|
version =
|
||||||
versionInput === "latest" || resolveVersionSpecifierToLatest
|
versionInput === "latest" || resolveVersionSpecifierToLatest
|
||||||
? await getLatestVersion(githubToken)
|
? await getLatestVersionFromNdjson()
|
||||||
: versionInput;
|
: versionInput;
|
||||||
}
|
}
|
||||||
if (tc.isExplicitVersion(version)) {
|
if (tc.isExplicitVersion(version)) {
|
||||||
@@ -175,91 +186,33 @@ export async function resolveVersion(
|
|||||||
}
|
}
|
||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
const availableVersions = await getAvailableVersions(githubToken);
|
|
||||||
|
const availableVersions = await getAvailableVersions(manifestUrl);
|
||||||
core.debug(`Available versions: ${availableVersions}`);
|
core.debug(`Available versions: ${availableVersions}`);
|
||||||
const resolvedVersion =
|
const resolvedVersion =
|
||||||
resolutionStrategy === "lowest"
|
resolutionStrategy === "lowest"
|
||||||
? minSatisfying(availableVersions, version)
|
? minSatisfying(availableVersions, version)
|
||||||
: maxSatisfying(availableVersions, version);
|
: maxSatisfying(availableVersions, version);
|
||||||
|
|
||||||
if (resolvedVersion === undefined) {
|
if (resolvedVersion === undefined) {
|
||||||
throw new Error(`No version found for ${version}`);
|
throw new Error(`No version found for ${version}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return resolvedVersion;
|
return resolvedVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getAvailableVersions(githubToken: string): Promise<string[]> {
|
async function getAvailableVersions(
|
||||||
core.info("Getting available versions from GitHub API...");
|
manifestUrl: string | undefined,
|
||||||
try {
|
): Promise<string[]> {
|
||||||
const octokit = new Octokit({
|
if (manifestUrl !== undefined) {
|
||||||
auth: githubToken,
|
core.info(
|
||||||
});
|
`Getting available versions from manifest-file ${manifestUrl} ...`,
|
||||||
return await getReleaseTagNames(octokit);
|
|
||||||
} catch (err) {
|
|
||||||
if ((err as Error).message.includes("Bad credentials")) {
|
|
||||||
core.info(
|
|
||||||
"No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.",
|
|
||||||
);
|
|
||||||
const octokit = new Octokit();
|
|
||||||
return await getReleaseTagNames(octokit);
|
|
||||||
}
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getReleaseTagNames(octokit: Octokit): Promise<string[]> {
|
|
||||||
const response: Release[] = await octokit.paginate(
|
|
||||||
octokit.rest.repos.listReleases,
|
|
||||||
{
|
|
||||||
owner: OWNER,
|
|
||||||
repo: REPO,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
const releaseTagNames = response.map((release) => release.tag_name);
|
|
||||||
if (releaseTagNames.length === 0) {
|
|
||||||
throw Error(
|
|
||||||
"Github API request failed while getting releases. Check the GitHub status page for outages. Try again later.",
|
|
||||||
);
|
);
|
||||||
}
|
return await getAllManifestVersions(manifestUrl);
|
||||||
return releaseTagNames;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getLatestVersion(githubToken: string) {
|
|
||||||
core.info("Getting latest version from GitHub API...");
|
|
||||||
const octokit = new Octokit({
|
|
||||||
auth: githubToken,
|
|
||||||
});
|
|
||||||
|
|
||||||
let latestRelease: { tag_name: string } | undefined;
|
|
||||||
try {
|
|
||||||
latestRelease = await getLatestRelease(octokit);
|
|
||||||
} catch (err) {
|
|
||||||
if ((err as Error).message.includes("Bad credentials")) {
|
|
||||||
core.info(
|
|
||||||
"No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.",
|
|
||||||
);
|
|
||||||
const octokit = new Octokit();
|
|
||||||
latestRelease = await getLatestRelease(octokit);
|
|
||||||
} else {
|
|
||||||
core.error(
|
|
||||||
"Github API request failed while getting latest release. Check the GitHub status page for outages. Try again later.",
|
|
||||||
);
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!latestRelease) {
|
core.info(`Getting available versions from ${VERSIONS_NDJSON_URL} ...`);
|
||||||
throw new Error("Could not determine latest release.");
|
return await getAllVersionsFromNdjson();
|
||||||
}
|
|
||||||
core.debug(`Latest version: ${latestRelease.tag_name}`);
|
|
||||||
return latestRelease.tag_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getLatestRelease(octokit: Octokit) {
|
|
||||||
const { data: latestRelease } = await octokit.rest.repos.getLatestRelease({
|
|
||||||
owner: OWNER,
|
|
||||||
repo: REPO,
|
|
||||||
});
|
|
||||||
return latestRelease;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function maxSatisfying(
|
function maxSatisfying(
|
||||||
|
|||||||
80
src/download/legacy-version-manifest.ts
Normal file
80
src/download/legacy-version-manifest.ts
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
import * as core from "@actions/core";
|
||||||
|
|
||||||
|
export interface ManifestEntry {
|
||||||
|
arch: string;
|
||||||
|
platform: string;
|
||||||
|
version: string;
|
||||||
|
downloadUrl: string;
|
||||||
|
checksum?: string;
|
||||||
|
variant?: string;
|
||||||
|
archiveFormat?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface LegacyManifestEntry {
|
||||||
|
arch: string;
|
||||||
|
platform: string;
|
||||||
|
version: string;
|
||||||
|
downloadUrl: string;
|
||||||
|
checksum?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const warnedLegacyManifestUrls = new Set<string>();
|
||||||
|
|
||||||
|
export function parseLegacyManifestEntries(
|
||||||
|
parsedEntries: unknown[],
|
||||||
|
manifestUrl: string,
|
||||||
|
): ManifestEntry[] {
|
||||||
|
warnAboutLegacyManifestFormat(manifestUrl);
|
||||||
|
|
||||||
|
return parsedEntries.map((entry, index) => {
|
||||||
|
if (!isLegacyManifestEntry(entry)) {
|
||||||
|
throw new Error(
|
||||||
|
`Invalid legacy manifest-file entry at index ${index} in ${manifestUrl}.`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
arch: entry.arch,
|
||||||
|
checksum: entry.checksum,
|
||||||
|
downloadUrl: entry.downloadUrl,
|
||||||
|
platform: entry.platform,
|
||||||
|
version: entry.version,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function clearLegacyManifestWarnings(): void {
|
||||||
|
warnedLegacyManifestUrls.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
function warnAboutLegacyManifestFormat(manifestUrl: string): void {
|
||||||
|
if (warnedLegacyManifestUrls.has(manifestUrl)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
warnedLegacyManifestUrls.add(manifestUrl);
|
||||||
|
core.warning(
|
||||||
|
`manifest-file ${manifestUrl} uses the legacy JSON array format, which is deprecated. Please migrate to the astral-sh/versions NDJSON format before the next major release.`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function isLegacyManifestEntry(value: unknown): value is LegacyManifestEntry {
|
||||||
|
if (!isRecord(value)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const checksumIsValid =
|
||||||
|
typeof value.checksum === "string" || value.checksum === undefined;
|
||||||
|
|
||||||
|
return (
|
||||||
|
typeof value.arch === "string" &&
|
||||||
|
checksumIsValid &&
|
||||||
|
typeof value.downloadUrl === "string" &&
|
||||||
|
typeof value.platform === "string" &&
|
||||||
|
typeof value.version === "string"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function isRecord(value: unknown): value is Record<string, unknown> {
|
||||||
|
return typeof value === "object" && value !== null;
|
||||||
|
}
|
||||||
39
src/download/variant-selection.ts
Normal file
39
src/download/variant-selection.ts
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
interface VariantAwareEntry {
|
||||||
|
variant?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function selectDefaultVariant<T extends VariantAwareEntry>(
|
||||||
|
entries: T[],
|
||||||
|
duplicateEntryDescription: string,
|
||||||
|
): T {
|
||||||
|
const firstEntry = entries[0];
|
||||||
|
if (firstEntry === undefined) {
|
||||||
|
throw new Error("selectDefaultVariant requires at least one candidate.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (entries.length === 1) {
|
||||||
|
return firstEntry;
|
||||||
|
}
|
||||||
|
|
||||||
|
const defaultEntries = entries.filter((entry) =>
|
||||||
|
isDefaultVariant(entry.variant),
|
||||||
|
);
|
||||||
|
if (defaultEntries.length === 1) {
|
||||||
|
return defaultEntries[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Error(
|
||||||
|
`${duplicateEntryDescription} with variants ${formatVariants(entries)}. setup-uv currently requires a single default variant for duplicate platform entries.`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function isDefaultVariant(variant: string | undefined): boolean {
|
||||||
|
return variant === undefined || variant === "default";
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatVariants<T extends VariantAwareEntry>(entries: T[]): string {
|
||||||
|
return entries
|
||||||
|
.map((entry) => entry.variant ?? "default")
|
||||||
|
.sort((left, right) => left.localeCompare(right))
|
||||||
|
.join(", ");
|
||||||
|
}
|
||||||
@@ -1,91 +1,169 @@
|
|||||||
import { promises as fs } from "node:fs";
|
|
||||||
import { join } from "node:path";
|
|
||||||
import * as core from "@actions/core";
|
import * as core from "@actions/core";
|
||||||
import * as semver from "semver";
|
import * as semver from "semver";
|
||||||
import { fetch } from "../utils/fetch";
|
import { fetch } from "../utils/fetch";
|
||||||
|
import {
|
||||||
|
clearLegacyManifestWarnings,
|
||||||
|
type ManifestEntry,
|
||||||
|
parseLegacyManifestEntries,
|
||||||
|
} from "./legacy-version-manifest";
|
||||||
|
import { selectDefaultVariant } from "./variant-selection";
|
||||||
|
import { type NdjsonVersion, parseVersionData } from "./versions-client";
|
||||||
|
|
||||||
const localManifestFile = join(__dirname, "..", "..", "version-manifest.json");
|
export interface ManifestArtifact {
|
||||||
|
|
||||||
interface ManifestEntry {
|
|
||||||
version: string;
|
|
||||||
artifactName: string;
|
|
||||||
arch: string;
|
|
||||||
platform: string;
|
|
||||||
downloadUrl: string;
|
downloadUrl: string;
|
||||||
|
checksum?: string;
|
||||||
|
archiveFormat?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const cachedManifestEntries = new Map<string, ManifestEntry[]>();
|
||||||
|
|
||||||
export async function getLatestKnownVersion(
|
export async function getLatestKnownVersion(
|
||||||
manifestUrl: string | undefined,
|
manifestUrl: string,
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
const manifestEntries = await getManifestEntries(manifestUrl);
|
const versions = await getAllVersions(manifestUrl);
|
||||||
return manifestEntries.reduce((a, b) =>
|
const latestVersion = versions.reduce((latest, current) =>
|
||||||
semver.gt(a.version, b.version) ? a : b,
|
semver.gt(current, latest) ? current : latest,
|
||||||
).version;
|
);
|
||||||
|
|
||||||
|
return latestVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getDownloadUrl(
|
export async function getAllVersions(manifestUrl: string): Promise<string[]> {
|
||||||
manifestUrl: string | undefined,
|
const manifestEntries = await getManifestEntries(manifestUrl);
|
||||||
|
return [...new Set(manifestEntries.map((entry) => entry.version))];
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getManifestArtifact(
|
||||||
|
manifestUrl: string,
|
||||||
version: string,
|
version: string,
|
||||||
arch: string,
|
arch: string,
|
||||||
platform: string,
|
platform: string,
|
||||||
): Promise<string | undefined> {
|
): Promise<ManifestArtifact | undefined> {
|
||||||
const manifestEntries = await getManifestEntries(manifestUrl);
|
const manifestEntries = await getManifestEntries(manifestUrl);
|
||||||
const entry = manifestEntries.find(
|
const entry = selectManifestEntry(
|
||||||
(entry) =>
|
manifestEntries,
|
||||||
entry.version === version &&
|
manifestUrl,
|
||||||
entry.arch === arch &&
|
version,
|
||||||
entry.platform === platform,
|
arch,
|
||||||
|
platform,
|
||||||
);
|
);
|
||||||
return entry ? entry.downloadUrl : undefined;
|
|
||||||
|
if (!entry) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
archiveFormat: entry.archiveFormat,
|
||||||
|
checksum: entry.checksum,
|
||||||
|
downloadUrl: entry.downloadUrl,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function clearManifestCache(): void {
|
||||||
|
cachedManifestEntries.clear();
|
||||||
|
clearLegacyManifestWarnings();
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getManifestEntries(
|
async function getManifestEntries(
|
||||||
manifestUrl: string | undefined,
|
|
||||||
): Promise<ManifestEntry[]> {
|
|
||||||
let data: string;
|
|
||||||
if (manifestUrl !== undefined) {
|
|
||||||
core.info(`Fetching manifest-file from: ${manifestUrl}`);
|
|
||||||
const response = await fetch(manifestUrl, {});
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error(
|
|
||||||
`Failed to fetch manifest-file: ${response.status} ${response.statusText}`,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
data = await response.text();
|
|
||||||
} else {
|
|
||||||
core.info("manifest-file not provided, reading from local file.");
|
|
||||||
const fileContent = await fs.readFile(localManifestFile);
|
|
||||||
data = fileContent.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
return JSON.parse(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function updateVersionManifest(
|
|
||||||
manifestUrl: string,
|
manifestUrl: string,
|
||||||
downloadUrls: string[],
|
): Promise<ManifestEntry[]> {
|
||||||
): Promise<void> {
|
const cachedEntries = cachedManifestEntries.get(manifestUrl);
|
||||||
const manifest: ManifestEntry[] = [];
|
if (cachedEntries !== undefined) {
|
||||||
|
core.debug(`Using cached manifest-file from: ${manifestUrl}`);
|
||||||
for (const downloadUrl of downloadUrls) {
|
return cachedEntries;
|
||||||
const urlParts = downloadUrl.split("/");
|
}
|
||||||
const version = urlParts[urlParts.length - 2];
|
|
||||||
const artifactName = urlParts[urlParts.length - 1];
|
core.info(`Fetching manifest-file from: ${manifestUrl}`);
|
||||||
if (!artifactName.startsWith("uv-")) {
|
const response = await fetch(manifestUrl, {});
|
||||||
continue;
|
if (!response.ok) {
|
||||||
}
|
throw new Error(
|
||||||
if (artifactName.startsWith("uv-installer")) {
|
`Failed to fetch manifest-file: ${response.status} ${response.statusText}`,
|
||||||
continue;
|
);
|
||||||
}
|
}
|
||||||
const artifactParts = artifactName.split(".")[0].split("-");
|
|
||||||
manifest.push({
|
const data = await response.text();
|
||||||
arch: artifactParts[1],
|
const parsedEntries = parseManifestEntries(data, manifestUrl);
|
||||||
artifactName: artifactName,
|
cachedManifestEntries.set(manifestUrl, parsedEntries);
|
||||||
downloadUrl: downloadUrl,
|
|
||||||
platform: artifactName.split(`uv-${artifactParts[1]}-`)[1].split(".")[0],
|
return parsedEntries;
|
||||||
version: version,
|
}
|
||||||
});
|
|
||||||
|
function parseManifestEntries(
|
||||||
|
data: string,
|
||||||
|
manifestUrl: string,
|
||||||
|
): ManifestEntry[] {
|
||||||
|
const trimmed = data.trim();
|
||||||
|
if (trimmed === "") {
|
||||||
|
throw new Error(`manifest-file at ${manifestUrl} is empty.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const parsedAsJson = tryParseJson(trimmed);
|
||||||
|
if (Array.isArray(parsedAsJson)) {
|
||||||
|
return parseLegacyManifestEntries(parsedAsJson, manifestUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
const versions = parseVersionData(trimmed, manifestUrl);
|
||||||
|
return mapNdjsonVersionsToManifestEntries(versions, manifestUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
function mapNdjsonVersionsToManifestEntries(
|
||||||
|
versions: NdjsonVersion[],
|
||||||
|
manifestUrl: string,
|
||||||
|
): ManifestEntry[] {
|
||||||
|
const manifestEntries: ManifestEntry[] = [];
|
||||||
|
|
||||||
|
for (const versionData of versions) {
|
||||||
|
for (const artifact of versionData.artifacts) {
|
||||||
|
const [arch, ...platformParts] = artifact.platform.split("-");
|
||||||
|
if (arch === undefined || platformParts.length === 0) {
|
||||||
|
throw new Error(
|
||||||
|
`Invalid artifact platform '${artifact.platform}' in manifest-file ${manifestUrl}.`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
manifestEntries.push({
|
||||||
|
arch,
|
||||||
|
archiveFormat: artifact.archive_format,
|
||||||
|
checksum: artifact.sha256,
|
||||||
|
downloadUrl: artifact.url,
|
||||||
|
platform: platformParts.join("-"),
|
||||||
|
variant: artifact.variant,
|
||||||
|
version: versionData.version,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return manifestEntries;
|
||||||
|
}
|
||||||
|
|
||||||
|
function selectManifestEntry(
|
||||||
|
manifestEntries: ManifestEntry[],
|
||||||
|
manifestUrl: string,
|
||||||
|
version: string,
|
||||||
|
arch: string,
|
||||||
|
platform: string,
|
||||||
|
): ManifestEntry | undefined {
|
||||||
|
const matches = manifestEntries.filter(
|
||||||
|
(candidate) =>
|
||||||
|
candidate.version === version &&
|
||||||
|
candidate.arch === arch &&
|
||||||
|
candidate.platform === platform,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (matches.length === 0) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
return selectDefaultVariant(
|
||||||
|
matches,
|
||||||
|
`manifest-file ${manifestUrl} contains multiple artifacts for version ${version}, arch ${arch}, platform ${platform}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function tryParseJson(value: string): unknown {
|
||||||
|
try {
|
||||||
|
return JSON.parse(value);
|
||||||
|
} catch {
|
||||||
|
return undefined;
|
||||||
}
|
}
|
||||||
core.debug(`Updating manifest-file: ${JSON.stringify(manifest)}`);
|
|
||||||
await fs.writeFile(manifestUrl, JSON.stringify(manifest));
|
|
||||||
}
|
}
|
||||||
|
|||||||
191
src/download/versions-client.ts
Normal file
191
src/download/versions-client.ts
Normal file
@@ -0,0 +1,191 @@
|
|||||||
|
import * as core from "@actions/core";
|
||||||
|
import { VERSIONS_NDJSON_URL } from "../utils/constants";
|
||||||
|
import { fetch } from "../utils/fetch";
|
||||||
|
import { selectDefaultVariant } from "./variant-selection";
|
||||||
|
|
||||||
|
export interface NdjsonArtifact {
|
||||||
|
platform: string;
|
||||||
|
variant?: string;
|
||||||
|
url: string;
|
||||||
|
archive_format: string;
|
||||||
|
sha256: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface NdjsonVersion {
|
||||||
|
version: string;
|
||||||
|
artifacts: NdjsonArtifact[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ArtifactResult {
|
||||||
|
url: string;
|
||||||
|
sha256: string;
|
||||||
|
archiveFormat: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const cachedVersionData = new Map<string, NdjsonVersion[]>();
|
||||||
|
|
||||||
|
export async function fetchVersionData(
|
||||||
|
url: string = VERSIONS_NDJSON_URL,
|
||||||
|
): Promise<NdjsonVersion[]> {
|
||||||
|
const cachedVersions = cachedVersionData.get(url);
|
||||||
|
if (cachedVersions !== undefined) {
|
||||||
|
core.debug(`Using cached NDJSON version data from ${url}`);
|
||||||
|
return cachedVersions;
|
||||||
|
}
|
||||||
|
|
||||||
|
core.info(`Fetching version data from ${url} ...`);
|
||||||
|
const response = await fetch(url, {});
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(
|
||||||
|
`Failed to fetch version data: ${response.status} ${response.statusText}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const body = await response.text();
|
||||||
|
const versions = parseVersionData(body, url);
|
||||||
|
cachedVersionData.set(url, versions);
|
||||||
|
return versions;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function parseVersionData(
|
||||||
|
data: string,
|
||||||
|
sourceDescription: string,
|
||||||
|
): NdjsonVersion[] {
|
||||||
|
const versions: NdjsonVersion[] = [];
|
||||||
|
|
||||||
|
for (const [index, line] of data.split("\n").entries()) {
|
||||||
|
const trimmed = line.trim();
|
||||||
|
if (trimmed === "") {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
let parsed: unknown;
|
||||||
|
try {
|
||||||
|
parsed = JSON.parse(trimmed);
|
||||||
|
} catch (error) {
|
||||||
|
throw new Error(
|
||||||
|
`Failed to parse version data from ${sourceDescription} at line ${index + 1}: ${(error as Error).message}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isNdjsonVersion(parsed)) {
|
||||||
|
throw new Error(
|
||||||
|
`Invalid NDJSON record in ${sourceDescription} at line ${index + 1}.`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
versions.push(parsed);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (versions.length === 0) {
|
||||||
|
throw new Error(`No version data found in ${sourceDescription}.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return versions;
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getLatestVersion(): Promise<string> {
|
||||||
|
const versions = await fetchVersionData();
|
||||||
|
const latestVersion = versions[0]?.version;
|
||||||
|
if (!latestVersion) {
|
||||||
|
throw new Error("No versions found in NDJSON data");
|
||||||
|
}
|
||||||
|
|
||||||
|
core.debug(`Latest version from NDJSON: ${latestVersion}`);
|
||||||
|
return latestVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getAllVersions(): Promise<string[]> {
|
||||||
|
const versions = await fetchVersionData();
|
||||||
|
return versions.map((versionData) => versionData.version);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getArtifact(
|
||||||
|
version: string,
|
||||||
|
arch: string,
|
||||||
|
platform: string,
|
||||||
|
): Promise<ArtifactResult | undefined> {
|
||||||
|
const versions = await fetchVersionData();
|
||||||
|
const versionData = versions.find(
|
||||||
|
(candidate) => candidate.version === version,
|
||||||
|
);
|
||||||
|
if (!versionData) {
|
||||||
|
core.debug(`Version ${version} not found in NDJSON data`);
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
const targetPlatform = `${arch}-${platform}`;
|
||||||
|
const matchingArtifacts = versionData.artifacts.filter(
|
||||||
|
(candidate) => candidate.platform === targetPlatform,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (matchingArtifacts.length === 0) {
|
||||||
|
core.debug(
|
||||||
|
`Artifact for ${targetPlatform} not found in version ${version}. Available platforms: ${versionData.artifacts
|
||||||
|
.map((candidate) => candidate.platform)
|
||||||
|
.join(", ")}`,
|
||||||
|
);
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
const artifact = selectArtifact(matchingArtifacts, version, targetPlatform);
|
||||||
|
|
||||||
|
return {
|
||||||
|
archiveFormat: artifact.archive_format,
|
||||||
|
sha256: artifact.sha256,
|
||||||
|
url: artifact.url,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function clearCache(url?: string): void {
|
||||||
|
if (url === undefined) {
|
||||||
|
cachedVersionData.clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cachedVersionData.delete(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
function selectArtifact(
|
||||||
|
artifacts: NdjsonArtifact[],
|
||||||
|
version: string,
|
||||||
|
targetPlatform: string,
|
||||||
|
): NdjsonArtifact {
|
||||||
|
return selectDefaultVariant(
|
||||||
|
artifacts,
|
||||||
|
`Multiple artifacts found for ${targetPlatform} in version ${version}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function isNdjsonVersion(value: unknown): value is NdjsonVersion {
|
||||||
|
if (!isRecord(value)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof value.version !== "string" || !Array.isArray(value.artifacts)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return value.artifacts.every(isNdjsonArtifact);
|
||||||
|
}
|
||||||
|
|
||||||
|
function isNdjsonArtifact(value: unknown): value is NdjsonArtifact {
|
||||||
|
if (!isRecord(value)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const variantIsValid =
|
||||||
|
typeof value.variant === "string" || value.variant === undefined;
|
||||||
|
|
||||||
|
return (
|
||||||
|
typeof value.archive_format === "string" &&
|
||||||
|
typeof value.platform === "string" &&
|
||||||
|
typeof value.sha256 === "string" &&
|
||||||
|
typeof value.url === "string" &&
|
||||||
|
variantIsValid
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function isRecord(value: unknown): value is Record<string, unknown> {
|
||||||
|
return typeof value === "object" && value !== null;
|
||||||
|
}
|
||||||
@@ -59,23 +59,40 @@ async function saveCache(): Promise<void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const actualCachePath = getUvCachePath();
|
const actualCachePath = getUvCachePath();
|
||||||
await saveCacheToKey(
|
if (!fs.existsSync(actualCachePath)) {
|
||||||
cacheKey,
|
if (ignoreNothingToCache) {
|
||||||
actualCachePath,
|
core.info(
|
||||||
STATE_CACHE_MATCHED_KEY,
|
"No cacheable uv cache paths were found. Ignoring because ignore-nothing-to-cache is enabled.",
|
||||||
"uv cache",
|
);
|
||||||
`Cache path ${actualCachePath} does not exist on disk. This likely indicates that there are no dependencies to cache. Consider disabling the cache input if it is not needed.`,
|
} else {
|
||||||
);
|
throw new Error(
|
||||||
|
`Cache path ${actualCachePath} does not exist on disk. This likely indicates that there are no dependencies to cache. Consider disabling the cache input if it is not needed.`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
await saveCacheToKey(
|
||||||
|
cacheKey,
|
||||||
|
actualCachePath,
|
||||||
|
STATE_CACHE_MATCHED_KEY,
|
||||||
|
"uv cache",
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cachePython) {
|
if (cachePython) {
|
||||||
|
if (!fs.existsSync(pythonDir)) {
|
||||||
|
core.warning(
|
||||||
|
`Python cache path ${pythonDir} does not exist on disk. Skipping Python cache save because no managed Python installation was found. If you want uv to install managed Python instead of using a system interpreter, set UV_PYTHON_PREFERENCE=only-managed.`,
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const pythonCacheKey = `${cacheKey}-python`;
|
const pythonCacheKey = `${cacheKey}-python`;
|
||||||
await saveCacheToKey(
|
await saveCacheToKey(
|
||||||
pythonCacheKey,
|
pythonCacheKey,
|
||||||
pythonDir,
|
pythonDir,
|
||||||
STATE_PYTHON_CACHE_MATCHED_KEY,
|
STATE_PYTHON_CACHE_MATCHED_KEY,
|
||||||
"Python cache",
|
"Python cache",
|
||||||
`Python cache path ${pythonDir} does not exist on disk. This likely indicates that there are no Python installations to cache. Consider disabling the cache input if it is not needed.`,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -119,7 +136,6 @@ async function saveCacheToKey(
|
|||||||
cachePath: string,
|
cachePath: string,
|
||||||
stateKey: string,
|
stateKey: string,
|
||||||
cacheName: string,
|
cacheName: string,
|
||||||
pathNotExistErrorMessage: string,
|
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const matchedKey = core.getState(stateKey);
|
const matchedKey = core.getState(stateKey);
|
||||||
|
|
||||||
@@ -131,26 +147,8 @@ async function saveCacheToKey(
|
|||||||
}
|
}
|
||||||
|
|
||||||
core.info(`Including ${cacheName} path: ${cachePath}`);
|
core.info(`Including ${cacheName} path: ${cachePath}`);
|
||||||
if (!fs.existsSync(cachePath) && !ignoreNothingToCache) {
|
await cache.saveCache([cachePath], cacheKey);
|
||||||
throw new Error(pathNotExistErrorMessage);
|
core.info(`${cacheName} saved with key: ${cacheKey}`);
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
await cache.saveCache([cachePath], cacheKey);
|
|
||||||
core.info(`${cacheName} saved with key: ${cacheKey}`);
|
|
||||||
} catch (e) {
|
|
||||||
if (
|
|
||||||
e instanceof Error &&
|
|
||||||
e.message ===
|
|
||||||
"Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved."
|
|
||||||
) {
|
|
||||||
core.info(
|
|
||||||
`No cacheable ${cacheName} paths were found. Ignoring because ignore-nothing-to-save is enabled.`,
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
run();
|
run();
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import * as exec from "@actions/exec";
|
|||||||
import { restoreCache } from "./cache/restore-cache";
|
import { restoreCache } from "./cache/restore-cache";
|
||||||
import {
|
import {
|
||||||
downloadVersionFromManifest,
|
downloadVersionFromManifest,
|
||||||
|
downloadVersionFromNdjson,
|
||||||
resolveVersion,
|
resolveVersion,
|
||||||
tryGetFromToolCache,
|
tryGetFromToolCache,
|
||||||
} from "./download/download-version";
|
} from "./download/download-version";
|
||||||
@@ -24,6 +25,7 @@ import {
|
|||||||
resolutionStrategy,
|
resolutionStrategy,
|
||||||
toolBinDir,
|
toolBinDir,
|
||||||
toolDir,
|
toolDir,
|
||||||
|
venvPath,
|
||||||
versionFile as versionFileInput,
|
versionFile as versionFileInput,
|
||||||
version as versionInput,
|
version as versionInput,
|
||||||
workingDirectory,
|
workingDirectory,
|
||||||
@@ -138,14 +140,23 @@ async function setupUv(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const downloadVersionResult = await downloadVersionFromManifest(
|
const downloadVersionResult =
|
||||||
manifestFile,
|
manifestFile !== undefined
|
||||||
platform,
|
? await downloadVersionFromManifest(
|
||||||
arch,
|
manifestFile,
|
||||||
resolvedVersion,
|
platform,
|
||||||
checkSum,
|
arch,
|
||||||
githubToken,
|
resolvedVersion,
|
||||||
);
|
checkSum,
|
||||||
|
githubToken,
|
||||||
|
)
|
||||||
|
: await downloadVersionFromNdjson(
|
||||||
|
platform,
|
||||||
|
arch,
|
||||||
|
resolvedVersion,
|
||||||
|
checkSum,
|
||||||
|
githubToken,
|
||||||
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
uvDir: downloadVersionResult.cachedToolDir,
|
uvDir: downloadVersionResult.cachedToolDir,
|
||||||
@@ -157,12 +168,7 @@ async function determineVersion(
|
|||||||
manifestFile: string | undefined,
|
manifestFile: string | undefined,
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
if (versionInput !== "") {
|
if (versionInput !== "") {
|
||||||
return await resolveVersion(
|
return await resolveVersion(versionInput, manifestFile, resolutionStrategy);
|
||||||
versionInput,
|
|
||||||
manifestFile,
|
|
||||||
githubToken,
|
|
||||||
resolutionStrategy,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
if (versionFileInput !== "") {
|
if (versionFileInput !== "") {
|
||||||
const versionFromFile = getUvVersionFromFile(versionFileInput);
|
const versionFromFile = getUvVersionFromFile(versionFileInput);
|
||||||
@@ -174,7 +180,6 @@ async function determineVersion(
|
|||||||
return await resolveVersion(
|
return await resolveVersion(
|
||||||
versionFromFile,
|
versionFromFile,
|
||||||
manifestFile,
|
manifestFile,
|
||||||
githubToken,
|
|
||||||
resolutionStrategy,
|
resolutionStrategy,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -192,7 +197,6 @@ async function determineVersion(
|
|||||||
return await resolveVersion(
|
return await resolveVersion(
|
||||||
versionFromUvToml || versionFromPyproject || "latest",
|
versionFromUvToml || versionFromPyproject || "latest",
|
||||||
manifestFile,
|
manifestFile,
|
||||||
githubToken,
|
|
||||||
resolutionStrategy,
|
resolutionStrategy,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -269,12 +273,16 @@ async function activateEnvironment(): Promise<void> {
|
|||||||
"UV_NO_MODIFY_PATH and activate-environment cannot be used together.",
|
"UV_NO_MODIFY_PATH and activate-environment cannot be used together.",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
const execArgs = ["venv", ".venv", "--directory", workingDirectory];
|
|
||||||
|
|
||||||
core.info("Activating python venv...");
|
core.info(`Creating and activating python venv at ${venvPath}...`);
|
||||||
await exec.exec("uv", execArgs);
|
await exec.exec("uv", [
|
||||||
|
"venv",
|
||||||
|
venvPath,
|
||||||
|
"--directory",
|
||||||
|
workingDirectory,
|
||||||
|
"--clear",
|
||||||
|
]);
|
||||||
|
|
||||||
const venvPath = path.resolve(`${workingDirectory}${path.sep}.venv`);
|
|
||||||
let venvBinPath = `${venvPath}${path.sep}bin`;
|
let venvBinPath = `${venvPath}${path.sep}bin`;
|
||||||
if (process.platform === "win32") {
|
if (process.platform === "win32") {
|
||||||
venvBinPath = `${venvPath}${path.sep}Scripts`;
|
venvBinPath = `${venvPath}${path.sep}Scripts`;
|
||||||
|
|||||||
81
src/update-known-checksums.ts
Normal file
81
src/update-known-checksums.ts
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
import * as core from "@actions/core";
|
||||||
|
import * as semver from "semver";
|
||||||
|
import { KNOWN_CHECKSUMS } from "./download/checksum/known-checksums";
|
||||||
|
import {
|
||||||
|
type ChecksumEntry,
|
||||||
|
updateChecksums,
|
||||||
|
} from "./download/checksum/update-known-checksums";
|
||||||
|
import {
|
||||||
|
fetchVersionData,
|
||||||
|
getLatestVersion,
|
||||||
|
type NdjsonVersion,
|
||||||
|
} from "./download/versions-client";
|
||||||
|
|
||||||
|
const VERSION_IN_CHECKSUM_KEY_PATTERN =
|
||||||
|
/-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)$/;
|
||||||
|
|
||||||
|
async function run(): Promise<void> {
|
||||||
|
const checksumFilePath = process.argv.slice(2)[0];
|
||||||
|
if (!checksumFilePath) {
|
||||||
|
throw new Error(
|
||||||
|
"Missing checksum file path. Usage: node dist/update-known-checksums/index.js <checksum-file-path>",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const latestVersion = await getLatestVersion();
|
||||||
|
const latestKnownVersion = getLatestKnownVersionFromChecksums();
|
||||||
|
|
||||||
|
if (semver.lte(latestVersion, latestKnownVersion)) {
|
||||||
|
core.info(
|
||||||
|
`Latest release (${latestVersion}) is not newer than the latest known version (${latestKnownVersion}). Skipping update.`,
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const versions = await fetchVersionData();
|
||||||
|
const checksumEntries = extractChecksumsFromNdjson(versions);
|
||||||
|
await updateChecksums(checksumFilePath, checksumEntries);
|
||||||
|
|
||||||
|
core.setOutput("latest-version", latestVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getLatestKnownVersionFromChecksums(): string {
|
||||||
|
const versions = new Set<string>();
|
||||||
|
|
||||||
|
for (const key of Object.keys(KNOWN_CHECKSUMS)) {
|
||||||
|
const version = extractVersionFromChecksumKey(key);
|
||||||
|
if (version !== undefined) {
|
||||||
|
versions.add(version);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const latestVersion = [...versions].sort(semver.rcompare)[0];
|
||||||
|
if (!latestVersion) {
|
||||||
|
throw new Error("Could not determine latest known version from checksums.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return latestVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
function extractVersionFromChecksumKey(key: string): string | undefined {
|
||||||
|
return key.match(VERSION_IN_CHECKSUM_KEY_PATTERN)?.[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
function extractChecksumsFromNdjson(
|
||||||
|
versions: NdjsonVersion[],
|
||||||
|
): ChecksumEntry[] {
|
||||||
|
const checksums: ChecksumEntry[] = [];
|
||||||
|
|
||||||
|
for (const version of versions) {
|
||||||
|
for (const artifact of version.artifacts) {
|
||||||
|
checksums.push({
|
||||||
|
checksum: artifact.sha256,
|
||||||
|
key: `${artifact.platform}-${version.version}`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return checksums;
|
||||||
|
}
|
||||||
|
|
||||||
|
run();
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
import * as core from "@actions/core";
|
|
||||||
import type { Endpoints } from "@octokit/types";
|
|
||||||
import * as semver from "semver";
|
|
||||||
import { updateChecksums } from "./download/checksum/update-known-checksums";
|
|
||||||
import {
|
|
||||||
getLatestKnownVersion,
|
|
||||||
updateVersionManifest,
|
|
||||||
} from "./download/version-manifest";
|
|
||||||
import { OWNER, REPO } from "./utils/constants";
|
|
||||||
import { Octokit } from "./utils/octokit";
|
|
||||||
|
|
||||||
type Release =
|
|
||||||
Endpoints["GET /repos/{owner}/{repo}/releases"]["response"]["data"][number];
|
|
||||||
|
|
||||||
async function run(): Promise<void> {
|
|
||||||
const checksumFilePath = process.argv.slice(2)[0];
|
|
||||||
const versionsManifestFile = process.argv.slice(2)[1];
|
|
||||||
const githubToken = process.argv.slice(2)[2];
|
|
||||||
|
|
||||||
const octokit = new Octokit({
|
|
||||||
auth: githubToken,
|
|
||||||
});
|
|
||||||
|
|
||||||
const { data: latestRelease } = await octokit.rest.repos.getLatestRelease({
|
|
||||||
owner: OWNER,
|
|
||||||
repo: REPO,
|
|
||||||
});
|
|
||||||
|
|
||||||
const latestKnownVersion = await getLatestKnownVersion(undefined);
|
|
||||||
|
|
||||||
if (semver.lte(latestRelease.tag_name, latestKnownVersion)) {
|
|
||||||
core.info(
|
|
||||||
`Latest release (${latestRelease.tag_name}) is not newer than the latest known version (${latestKnownVersion}). Skipping update.`,
|
|
||||||
);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const releases: Release[] = await octokit.paginate(
|
|
||||||
octokit.rest.repos.listReleases,
|
|
||||||
{
|
|
||||||
owner: OWNER,
|
|
||||||
repo: REPO,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
const checksumDownloadUrls: string[] = releases.flatMap((release) =>
|
|
||||||
release.assets
|
|
||||||
.filter((asset) => asset.name.endsWith(".sha256"))
|
|
||||||
.map((asset) => asset.browser_download_url),
|
|
||||||
);
|
|
||||||
await updateChecksums(checksumFilePath, checksumDownloadUrls);
|
|
||||||
|
|
||||||
const artifactDownloadUrls: string[] = releases.flatMap((release) =>
|
|
||||||
release.assets
|
|
||||||
.filter((asset) => !asset.name.endsWith(".sha256"))
|
|
||||||
.map((asset) => asset.browser_download_url),
|
|
||||||
);
|
|
||||||
|
|
||||||
await updateVersionManifest(versionsManifestFile, artifactDownloadUrls);
|
|
||||||
|
|
||||||
core.setOutput("latest-version", latestRelease.tag_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
run();
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
export const REPO = "uv";
|
|
||||||
export const OWNER = "astral-sh";
|
|
||||||
export const TOOL_CACHE_NAME = "uv";
|
export const TOOL_CACHE_NAME = "uv";
|
||||||
export const STATE_UV_PATH = "uv-path";
|
export const STATE_UV_PATH = "uv-path";
|
||||||
export const STATE_UV_VERSION = "uv-version";
|
export const STATE_UV_VERSION = "uv-version";
|
||||||
|
export const VERSIONS_NDJSON_URL =
|
||||||
|
"https://raw.githubusercontent.com/astral-sh/versions/main/v1/uv.ndjson";
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const version = core.getInput("version");
|
|||||||
export const versionFile = getVersionFile();
|
export const versionFile = getVersionFile();
|
||||||
export const pythonVersion = core.getInput("python-version");
|
export const pythonVersion = core.getInput("python-version");
|
||||||
export const activateEnvironment = core.getBooleanInput("activate-environment");
|
export const activateEnvironment = core.getBooleanInput("activate-environment");
|
||||||
|
export const venvPath = getVenvPath();
|
||||||
export const checkSum = core.getInput("checksum");
|
export const checkSum = core.getInput("checksum");
|
||||||
export const enableCache = getEnableCache();
|
export const enableCache = getEnableCache();
|
||||||
export const restoreCache = core.getInput("restore-cache") === "true";
|
export const restoreCache = core.getInput("restore-cache") === "true";
|
||||||
@@ -45,6 +46,18 @@ function getVersionFile(): string {
|
|||||||
return versionFileInput;
|
return versionFileInput;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getVenvPath(): string {
|
||||||
|
const venvPathInput = core.getInput("venv-path");
|
||||||
|
if (venvPathInput !== "") {
|
||||||
|
if (!activateEnvironment) {
|
||||||
|
core.warning("venv-path is only used when activate-environment is true");
|
||||||
|
}
|
||||||
|
const tildeExpanded = expandTilde(venvPathInput);
|
||||||
|
return normalizePath(resolveRelativePath(tildeExpanded));
|
||||||
|
}
|
||||||
|
return normalizePath(resolveRelativePath(".venv"));
|
||||||
|
}
|
||||||
|
|
||||||
function getEnableCache(): boolean {
|
function getEnableCache(): boolean {
|
||||||
const enableCacheInput = core.getInput("enable-cache");
|
const enableCacheInput = core.getInput("enable-cache");
|
||||||
if (enableCacheInput === "auto") {
|
if (enableCacheInput === "auto") {
|
||||||
@@ -194,6 +207,19 @@ function expandTilde(input: string): string {
|
|||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function normalizePath(inputPath: string): string {
|
||||||
|
const normalized = path.normalize(inputPath);
|
||||||
|
const root = path.parse(normalized).root;
|
||||||
|
|
||||||
|
// Remove any trailing path separators, except when the whole path is the root.
|
||||||
|
let trimmed = normalized;
|
||||||
|
while (trimmed.length > root.length && trimmed.endsWith(path.sep)) {
|
||||||
|
trimmed = trimmed.slice(0, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return trimmed;
|
||||||
|
}
|
||||||
|
|
||||||
function resolveRelativePath(inputPath: string): string {
|
function resolveRelativePath(inputPath: string): string {
|
||||||
const hasNegation = inputPath.startsWith("!");
|
const hasNegation = inputPath.startsWith("!");
|
||||||
const pathWithoutNegation = hasNegation ? inputPath.substring(1) : inputPath;
|
const pathWithoutNegation = hasNegation ? inputPath.substring(1) : inputPath;
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
import type { OctokitOptions } from "@octokit/core";
|
|
||||||
import { Octokit as Core } from "@octokit/core";
|
|
||||||
import {
|
|
||||||
type PaginateInterface,
|
|
||||||
paginateRest,
|
|
||||||
} from "@octokit/plugin-paginate-rest";
|
|
||||||
import { legacyRestEndpointMethods } from "@octokit/plugin-rest-endpoint-methods";
|
|
||||||
import { fetch as customFetch } from "./fetch";
|
|
||||||
|
|
||||||
export type { RestEndpointMethodTypes } from "@octokit/plugin-rest-endpoint-methods";
|
|
||||||
|
|
||||||
const DEFAULTS = {
|
|
||||||
baseUrl: "https://api.github.com",
|
|
||||||
userAgent: "setup-uv",
|
|
||||||
};
|
|
||||||
|
|
||||||
const OctokitWithPlugins = Core.plugin(paginateRest, legacyRestEndpointMethods);
|
|
||||||
|
|
||||||
export const Octokit = OctokitWithPlugins.defaults(function buildDefaults(
|
|
||||||
options: OctokitOptions,
|
|
||||||
): OctokitOptions {
|
|
||||||
return {
|
|
||||||
...DEFAULTS,
|
|
||||||
...options,
|
|
||||||
request: {
|
|
||||||
fetch: customFetch,
|
|
||||||
...options.request,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
export type Octokit = InstanceType<typeof OctokitWithPlugins> & {
|
|
||||||
paginate: PaginateInterface;
|
|
||||||
};
|
|
||||||
@@ -13,6 +13,7 @@ export type Architecture =
|
|||||||
| "x86_64"
|
| "x86_64"
|
||||||
| "aarch64"
|
| "aarch64"
|
||||||
| "s390x"
|
| "s390x"
|
||||||
|
| "riscv64gc"
|
||||||
| "powerpc64le";
|
| "powerpc64le";
|
||||||
|
|
||||||
export function getArch(): Architecture | undefined {
|
export function getArch(): Architecture | undefined {
|
||||||
@@ -21,6 +22,7 @@ export function getArch(): Architecture | undefined {
|
|||||||
arm64: "aarch64",
|
arm64: "aarch64",
|
||||||
ia32: "i686",
|
ia32: "i686",
|
||||||
ppc64: "powerpc64le",
|
ppc64: "powerpc64le",
|
||||||
|
riscv64: "riscv64gc",
|
||||||
s390x: "s390x",
|
s390x: "s390x",
|
||||||
x64: "x86_64",
|
x64: "x86_64",
|
||||||
};
|
};
|
||||||
@@ -106,10 +108,16 @@ function getLinuxOSNameVersion(): string {
|
|||||||
const content = fs.readFileSync(file, "utf8");
|
const content = fs.readFileSync(file, "utf8");
|
||||||
const id = parseOsReleaseValue(content, "ID");
|
const id = parseOsReleaseValue(content, "ID");
|
||||||
const versionId = parseOsReleaseValue(content, "VERSION_ID");
|
const versionId = parseOsReleaseValue(content, "VERSION_ID");
|
||||||
|
// Fallback for rolling releases (debian:unstable/testing, arch, etc.)
|
||||||
|
// that don't have VERSION_ID but have VERSION_CODENAME
|
||||||
|
const versionCodename = parseOsReleaseValue(content, "VERSION_CODENAME");
|
||||||
|
|
||||||
if (id && versionId) {
|
if (id && versionId) {
|
||||||
return `${id}-${versionId}`;
|
return `${id}-${versionId}`;
|
||||||
}
|
}
|
||||||
|
if (id && versionCodename) {
|
||||||
|
return `${id}-${versionCodename}`;
|
||||||
|
}
|
||||||
} catch {
|
} catch {
|
||||||
// Try next file
|
// Try next file
|
||||||
}
|
}
|
||||||
|
|||||||
28674
version-manifest.json
28674
version-manifest.json
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user