You've already forked setup-dotnet
mirror of
https://github.com/actions/setup-dotnet.git
synced 2025-07-10 09:00:33 +07:00
Compare commits
53 Commits
Author | SHA1 | Date | |
---|---|---|---|
b7821147f5 | |||
0f6f11a751 | |||
5454f3aaca | |||
d41fb1f9ff | |||
dccf26c63e | |||
8886b529ee | |||
a874136a06 | |||
73b32e9eb3 | |||
e322cead28 | |||
6f7ce4eb35 | |||
d9fc1a3671 | |||
334021833c | |||
6b27526581 | |||
6f2692a991 | |||
862351c093 | |||
2b9a6b7c15 | |||
be484e6cb4 | |||
932d77f347 | |||
434fa5bb66 | |||
45d3fa9f89 | |||
702f623645 | |||
44b1ef7444 | |||
2e3dd8fe60 | |||
dc257a3a4f | |||
9e7ce49a73 | |||
c4b619a553 | |||
dd19a56732 | |||
09cc69fecb | |||
167e5cb271 | |||
ff633a565f | |||
154c08aac4 | |||
bad4a23450 | |||
80b3560659 | |||
a3e2a47c75 | |||
474fe34688 | |||
719c622d48 | |||
72d0d3c8b3 | |||
8f1bb3f9c3 | |||
e1b1954735 | |||
79b009fc57 | |||
c0e4e5bdd4 | |||
76585d940e | |||
bb17c31beb | |||
bb95ce727f | |||
cc372bb13c | |||
86c0b21a03 | |||
d6b77de15f | |||
2f00ce2a3e | |||
70528ac007 | |||
6bd4969ec6 | |||
a668ade667 | |||
e28ad717b8 | |||
f7896b6c4c |
6
.github/csc.json
vendored
6
.github/csc.json
vendored
@ -4,13 +4,13 @@
|
|||||||
"owner": "csc",
|
"owner": "csc",
|
||||||
"pattern": [
|
"pattern": [
|
||||||
{
|
{
|
||||||
"regexp": "^(?:\\s+\\d+\\>)?([^\\s].*)\\((\\d+|\\d+,\\d+|\\d+,\\d+,\\d+,\\d+)\\)\\s*:\\s+(error|warning|info)\\s+(\\w{1,2}\\d+)\\s*:\\s*(.*)(\\[(.+)\\/([^\\/]+)\\])$",
|
"regexp": "^([^\\s].*)\\((\\d+)(?:,\\d+|,\\d+,\\d+)?\\):\\s+(error|warning)\\s+([a-zA-Z]+(?<!MSB)\\d+):\\s*(.*?)\\s+\\[(.*?)\\]$",
|
||||||
"file": 1,
|
"file": 1,
|
||||||
"location": 2,
|
"line": 2,
|
||||||
"severity": 3,
|
"severity": 3,
|
||||||
"code": 4,
|
"code": 4,
|
||||||
"message": 5,
|
"message": 5,
|
||||||
"fromPath": 7
|
"fromPath": 6
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
4
.github/workflows/workflow.yml
vendored
4
.github/workflows/workflow.yml
vendored
@ -1,12 +1,12 @@
|
|||||||
name: Main workflow
|
name: Main workflow
|
||||||
on: [push]
|
on: [push, pull_request]
|
||||||
jobs:
|
jobs:
|
||||||
run:
|
run:
|
||||||
name: Run
|
name: Run
|
||||||
runs-on: ${{ matrix.operating-system }}
|
runs-on: ${{ matrix.operating-system }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
operating-system: [ubuntu-latest, windows-latest]
|
operating-system: [ubuntu-latest, windows-latest, macOS-latest]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@master
|
uses: actions/checkout@master
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -90,3 +90,5 @@ typings/
|
|||||||
|
|
||||||
# DynamoDB Local files
|
# DynamoDB Local files
|
||||||
.dynamodb/
|
.dynamodb/
|
||||||
|
|
||||||
|
.vscode/*
|
34
README.md
34
README.md
@ -4,10 +4,11 @@
|
|||||||
<a href="https://github.com/actions/setup-dotnet"><img alt="GitHub Actions status" src="https://github.com/actions/setup-dotnet/workflows/Main%20workflow/badge.svg"></a>
|
<a href="https://github.com/actions/setup-dotnet"><img alt="GitHub Actions status" src="https://github.com/actions/setup-dotnet/workflows/Main%20workflow/badge.svg"></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
This action sets up a dotnet environment for use in actions by:
|
This action sets up a [dotnet core cli](https://github.com/dotnet/cli) environment for use in actions by:
|
||||||
|
|
||||||
- optionally downloading and caching a version of dotnet by SDK version and adding to PATH
|
- optionally downloading and caching a version of dotnet by SDK version and adding to PATH
|
||||||
- registering problem matchers for error output
|
- registering problem matchers for error output
|
||||||
|
- setting up authentication to private package sources like GitHub Packages
|
||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
|
|
||||||
@ -19,7 +20,7 @@ steps:
|
|||||||
- uses: actions/checkout@master
|
- uses: actions/checkout@master
|
||||||
- uses: actions/setup-dotnet@v1
|
- uses: actions/setup-dotnet@v1
|
||||||
with:
|
with:
|
||||||
dotnet-version: '2.2.103' # SDK Version to use.
|
dotnet-version: '3.1.100' # SDK Version to use.
|
||||||
- run: dotnet build <my project>
|
- run: dotnet build <my project>
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -30,7 +31,7 @@ jobs:
|
|||||||
runs-on: ubuntu-16.04
|
runs-on: ubuntu-16.04
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
dotnet: [ '2.2.103', '3.0.100-preview8-013656', '4.5.1' ]
|
dotnet: [ '2.2.103', '3.0.100', '3.1.100' ]
|
||||||
name: Dotnet ${{ matrix.dotnet }} sample
|
name: Dotnet ${{ matrix.dotnet }} sample
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@master
|
- uses: actions/checkout@master
|
||||||
@ -41,6 +42,33 @@ jobs:
|
|||||||
- run: dotnet build <my project>
|
- run: dotnet build <my project>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Authentication for nuget feeds:
|
||||||
|
```yaml
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@master
|
||||||
|
# Authenticates packages to push to GPR
|
||||||
|
- uses: actions/setup-dotnet@v1
|
||||||
|
with:
|
||||||
|
dotnet-version: '3.1.100' # SDK Version to use.
|
||||||
|
source-url: https://nuget.pkg.github.com/<owner>/index.json
|
||||||
|
env:
|
||||||
|
NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||||
|
- run: dotnet build <my project>
|
||||||
|
- name: Create the package
|
||||||
|
run: dotnet pack --configuration Release <my project>
|
||||||
|
- name: Publish the package to GPR
|
||||||
|
run: dotnet nuget push <my project>/bin/Release/*.nupkg
|
||||||
|
|
||||||
|
# Authticates packages to push to Azure Artifacts
|
||||||
|
- uses: actions/setup-dotnet@v1
|
||||||
|
with:
|
||||||
|
source-url: https://pkgs.dev.azure.com/<your-organization>/_packaging/<your-feed-name>/nuget/v3/index.json
|
||||||
|
env:
|
||||||
|
NUGET_AUTH_TOKEN: ${{secrets.AZURE_DEVOPS_PAT}} # Note, create a secret with this name in Settings
|
||||||
|
- name: Publish the package to Azure Artifacts
|
||||||
|
run: dotnet nuget push <my project>/bin/Release/*.nupkg
|
||||||
|
```
|
||||||
|
|
||||||
# License
|
# License
|
||||||
|
|
||||||
The scripts and documentation in this project are released under the [MIT License](LICENSE)
|
The scripts and documentation in this project are released under the [MIT License](LICENSE)
|
||||||
|
185
__tests__/__snapshots__/authutil.test.ts.snap
Normal file
185
__tests__/__snapshots__/authutil.test.ts.snap
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`authutil tests Existing config not in repo root, sets up a partial NuGet.config user/PAT for GPR 1`] = `
|
||||||
|
"<?xml version=\\"1.0\\"?>
|
||||||
|
<configuration>
|
||||||
|
<config>
|
||||||
|
<add key=\\"defaultPushSource\\" value=\\"https://nuget.pkg.github.com/OwnerName/index.json\\"/>
|
||||||
|
</config>
|
||||||
|
<packageSourceCredentials>
|
||||||
|
<GPR>
|
||||||
|
<add key=\\"Username\\" value=\\"OwnerName\\"/>
|
||||||
|
<add key=\\"ClearTextPassword\\" value=\\"TEST_FAKE_AUTH_TOKEN\\"/>
|
||||||
|
</GPR>
|
||||||
|
</packageSourceCredentials>
|
||||||
|
</configuration>"
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`authutil tests Existing config w/ Azure Artifacts source and NuGet.org, sets up a partial NuGet.config user/PAT for GPR 1`] = `
|
||||||
|
"<?xml version=\\"1.0\\"?>
|
||||||
|
<configuration>
|
||||||
|
<config>
|
||||||
|
<add key=\\"defaultPushSource\\" value=\\"https://pkgs.dev.azure.com/amullans/_packaging/GitHubBuilds/nuget/v3/index.json\\"/>
|
||||||
|
</config>
|
||||||
|
<packageSourceCredentials>
|
||||||
|
<AzureArtifacts>
|
||||||
|
<add key=\\"Username\\" value=\\"OwnerName\\"/>
|
||||||
|
<add key=\\"ClearTextPassword\\" value=\\"TEST_FAKE_AUTH_TOKEN\\"/>
|
||||||
|
</AzureArtifacts>
|
||||||
|
</packageSourceCredentials>
|
||||||
|
</configuration>"
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`authutil tests Existing config w/ GPR source and NuGet.org, sets up a partial NuGet.config user/PAT for GPR 1`] = `
|
||||||
|
"<?xml version=\\"1.0\\"?>
|
||||||
|
<configuration>
|
||||||
|
<config>
|
||||||
|
<add key=\\"defaultPushSource\\" value=\\"https://nuget.pkg.github.com/OwnerName/index.json\\"/>
|
||||||
|
</config>
|
||||||
|
<packageSourceCredentials>
|
||||||
|
<GPR>
|
||||||
|
<add key=\\"Username\\" value=\\"OwnerName\\"/>
|
||||||
|
<add key=\\"ClearTextPassword\\" value=\\"TEST_FAKE_AUTH_TOKEN\\"/>
|
||||||
|
</GPR>
|
||||||
|
</packageSourceCredentials>
|
||||||
|
</configuration>"
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`authutil tests Existing config w/ no GPR sources, sets up a full NuGet.config with URL and user/PAT for GPR 1`] = `
|
||||||
|
"<?xml version=\\"1.0\\"?>
|
||||||
|
<configuration>
|
||||||
|
<config>
|
||||||
|
<add key=\\"defaultPushSource\\" value=\\"https://nuget.pkg.github.com/OwnerName/index.json\\"/>
|
||||||
|
</config>
|
||||||
|
<packageSources>
|
||||||
|
<add key=\\"Source\\" value=\\"https://nuget.pkg.github.com/OwnerName/index.json\\"/>
|
||||||
|
</packageSources>
|
||||||
|
<packageSourceCredentials>
|
||||||
|
<Source>
|
||||||
|
<add key=\\"Username\\" value=\\"OwnerName\\"/>
|
||||||
|
<add key=\\"ClearTextPassword\\" value=\\"TEST_FAKE_AUTH_TOKEN\\"/>
|
||||||
|
</Source>
|
||||||
|
</packageSourceCredentials>
|
||||||
|
</configuration>"
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`authutil tests Existing config w/ no sources, sets up a full NuGet.config with URL and user/PAT for GPR 1`] = `
|
||||||
|
"<?xml version=\\"1.0\\"?>
|
||||||
|
<configuration>
|
||||||
|
<config>
|
||||||
|
<add key=\\"defaultPushSource\\" value=\\"https://nuget.pkg.github.com/OwnerName/index.json\\"/>
|
||||||
|
</config>
|
||||||
|
<packageSources>
|
||||||
|
<add key=\\"Source\\" value=\\"https://nuget.pkg.github.com/OwnerName/index.json\\"/>
|
||||||
|
</packageSources>
|
||||||
|
<packageSourceCredentials>
|
||||||
|
<Source>
|
||||||
|
<add key=\\"Username\\" value=\\"OwnerName\\"/>
|
||||||
|
<add key=\\"ClearTextPassword\\" value=\\"TEST_FAKE_AUTH_TOKEN\\"/>
|
||||||
|
</Source>
|
||||||
|
</packageSourceCredentials>
|
||||||
|
</configuration>"
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`authutil tests Existing config w/ only Azure Artifacts source, sets up a partial NuGet.config user/PAT for GPR 1`] = `
|
||||||
|
"<?xml version=\\"1.0\\"?>
|
||||||
|
<configuration>
|
||||||
|
<config>
|
||||||
|
<add key=\\"defaultPushSource\\" value=\\"https://pkgs.dev.azure.com/amullans/_packaging/GitHubBuilds/nuget/v3/index.json\\"/>
|
||||||
|
</config>
|
||||||
|
<packageSourceCredentials>
|
||||||
|
<AzureArtifacts>
|
||||||
|
<add key=\\"Username\\" value=\\"OwnerName\\"/>
|
||||||
|
<add key=\\"ClearTextPassword\\" value=\\"TEST_FAKE_AUTH_TOKEN\\"/>
|
||||||
|
</AzureArtifacts>
|
||||||
|
</packageSourceCredentials>
|
||||||
|
</configuration>"
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`authutil tests Existing config w/ only GPR source, sets up a partial NuGet.config user/PAT for GPR 1`] = `
|
||||||
|
"<?xml version=\\"1.0\\"?>
|
||||||
|
<configuration>
|
||||||
|
<config>
|
||||||
|
<add key=\\"defaultPushSource\\" value=\\"https://nuget.pkg.github.com/OwnerName/index.json\\"/>
|
||||||
|
</config>
|
||||||
|
<packageSourceCredentials>
|
||||||
|
<GPR>
|
||||||
|
<add key=\\"Username\\" value=\\"OwnerName\\"/>
|
||||||
|
<add key=\\"ClearTextPassword\\" value=\\"TEST_FAKE_AUTH_TOKEN\\"/>
|
||||||
|
</GPR>
|
||||||
|
</packageSourceCredentials>
|
||||||
|
</configuration>"
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`authutil tests Existing config w/ two GPR sources, sets up a partial NuGet.config user/PAT for GPR 1`] = `
|
||||||
|
"<?xml version=\\"1.0\\"?>
|
||||||
|
<configuration>
|
||||||
|
<config>
|
||||||
|
<add key=\\"defaultPushSource\\" value=\\"https://nuget.pkg.github.com\\"/>
|
||||||
|
</config>
|
||||||
|
<packageSourceCredentials>
|
||||||
|
<GPR-GitHub>
|
||||||
|
<add key=\\"Username\\" value=\\"OwnerName\\"/>
|
||||||
|
<add key=\\"ClearTextPassword\\" value=\\"TEST_FAKE_AUTH_TOKEN\\"/>
|
||||||
|
</GPR-GitHub>
|
||||||
|
<GPR-Actions>
|
||||||
|
<add key=\\"Username\\" value=\\"OwnerName\\"/>
|
||||||
|
<add key=\\"ClearTextPassword\\" value=\\"TEST_FAKE_AUTH_TOKEN\\"/>
|
||||||
|
</GPR-Actions>
|
||||||
|
</packageSourceCredentials>
|
||||||
|
</configuration>"
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`authutil tests No existing config, sets up a full NuGet.config with URL and other owner/PAT for GPR 1`] = `
|
||||||
|
"<?xml version=\\"1.0\\"?>
|
||||||
|
<configuration>
|
||||||
|
<config>
|
||||||
|
<add key=\\"defaultPushSource\\" value=\\"https://nuget.pkg.github.com/otherorg/index.json\\"/>
|
||||||
|
</config>
|
||||||
|
<packageSources>
|
||||||
|
<add key=\\"Source\\" value=\\"https://nuget.pkg.github.com/otherorg/index.json\\"/>
|
||||||
|
</packageSources>
|
||||||
|
<packageSourceCredentials>
|
||||||
|
<Source>
|
||||||
|
<add key=\\"Username\\" value=\\"otherorg\\"/>
|
||||||
|
<add key=\\"ClearTextPassword\\" value=\\"TEST_FAKE_AUTH_TOKEN\\"/>
|
||||||
|
</Source>
|
||||||
|
</packageSourceCredentials>
|
||||||
|
</configuration>"
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`authutil tests No existing config, sets up a full NuGet.config with URL and token for other source 1`] = `
|
||||||
|
"<?xml version=\\"1.0\\"?>
|
||||||
|
<configuration>
|
||||||
|
<config>
|
||||||
|
<add key=\\"defaultPushSource\\" value=\\"https://pkgs.dev.azure.com/amullans/_packaging/GitHubBuilds/nuget/v3/index.json\\"/>
|
||||||
|
</config>
|
||||||
|
<packageSources>
|
||||||
|
<add key=\\"Source\\" value=\\"https://pkgs.dev.azure.com/amullans/_packaging/GitHubBuilds/nuget/v3/index.json\\"/>
|
||||||
|
</packageSources>
|
||||||
|
<packageSourceCredentials>
|
||||||
|
<Source>
|
||||||
|
<add key=\\"Username\\" value=\\"OwnerName\\"/>
|
||||||
|
<add key=\\"ClearTextPassword\\" value=\\"TEST_FAKE_AUTH_TOKEN\\"/>
|
||||||
|
</Source>
|
||||||
|
</packageSourceCredentials>
|
||||||
|
</configuration>"
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`authutil tests No existing config, sets up a full NuGet.config with URL and user/PAT for GPR 1`] = `
|
||||||
|
"<?xml version=\\"1.0\\"?>
|
||||||
|
<configuration>
|
||||||
|
<config>
|
||||||
|
<add key=\\"defaultPushSource\\" value=\\"https://nuget.pkg.github.com/OwnerName/index.json\\"/>
|
||||||
|
</config>
|
||||||
|
<packageSources>
|
||||||
|
<add key=\\"Source\\" value=\\"https://nuget.pkg.github.com/OwnerName/index.json\\"/>
|
||||||
|
</packageSources>
|
||||||
|
<packageSourceCredentials>
|
||||||
|
<Source>
|
||||||
|
<add key=\\"Username\\" value=\\"OwnerName\\"/>
|
||||||
|
<add key=\\"ClearTextPassword\\" value=\\"TEST_FAKE_AUTH_TOKEN\\"/>
|
||||||
|
</Source>
|
||||||
|
</packageSourceCredentials>
|
||||||
|
</configuration>"
|
||||||
|
`;
|
308
__tests__/authutil.test.ts
Normal file
308
__tests__/authutil.test.ts
Normal file
@ -0,0 +1,308 @@
|
|||||||
|
import io = require('@actions/io');
|
||||||
|
import fs = require('fs');
|
||||||
|
import path = require('path');
|
||||||
|
|
||||||
|
const fakeSourcesDirForTesting = path.join(
|
||||||
|
__dirname,
|
||||||
|
'runner',
|
||||||
|
path.join(
|
||||||
|
Math.random()
|
||||||
|
.toString(36)
|
||||||
|
.substring(7)
|
||||||
|
),
|
||||||
|
's'
|
||||||
|
);
|
||||||
|
|
||||||
|
const invalidNuGetConfig: string = `<?xml version="1.0" encoding="utf-8"?>`;
|
||||||
|
|
||||||
|
const emptyNuGetConfig: string = `<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
</configuration>`;
|
||||||
|
|
||||||
|
const nugetorgNuGetConfig: string = `<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<packageSources>
|
||||||
|
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
|
||||||
|
</packageSources>
|
||||||
|
</configuration>`;
|
||||||
|
|
||||||
|
const gprnugetorgNuGetConfig: string = `<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<packageSources>
|
||||||
|
<add key="GPR" value="https://nuget.pkg.github.com/OwnerName/index.json" protocolVersion="3" />
|
||||||
|
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
|
||||||
|
</packageSources>
|
||||||
|
</configuration>`;
|
||||||
|
|
||||||
|
const gprNuGetConfig: string = `<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<packageSources>
|
||||||
|
<add key="GPR" value="https://nuget.pkg.github.com/OwnerName/index.json" protocolVersion="3" />
|
||||||
|
</packageSources>
|
||||||
|
</configuration>`;
|
||||||
|
|
||||||
|
const twogprNuGetConfig: string = `<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<packageSources>
|
||||||
|
<add key="GPR-GitHub" value="https://nuget.pkg.github.com/OwnerName/index.json" protocolVersion="3" />
|
||||||
|
<add key="GPR-Actions" value="https://nuget.pkg.github.com/actions/index.json" protocolVersion="3" />
|
||||||
|
</packageSources>
|
||||||
|
</configuration>`;
|
||||||
|
|
||||||
|
const spaceNuGetConfig: string = `<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<packageSources>
|
||||||
|
<add key="GPR GitHub" value="https://nuget.pkg.github.com/OwnerName/index.json" protocolVersion="3" />
|
||||||
|
</packageSources>
|
||||||
|
</configuration>`;
|
||||||
|
|
||||||
|
const azureartifactsNuGetConfig: string = `<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<packageSources>
|
||||||
|
<add key="AzureArtifacts" value="https://pkgs.dev.azure.com/amullans/_packaging/GitHubBuilds/nuget/v3/index.json" protocolVersion="3" />
|
||||||
|
</packageSources>
|
||||||
|
</configuration>`;
|
||||||
|
|
||||||
|
const azureartifactsnugetorgNuGetConfig: string = `<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<packageSources>
|
||||||
|
<add key="AzureArtifacts" value="https://pkgs.dev.azure.com/amullans/_packaging/GitHubBuilds/nuget/v3/index.json" protocolVersion="3" />
|
||||||
|
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
|
||||||
|
</packageSources>
|
||||||
|
</configuration>`;
|
||||||
|
|
||||||
|
// We want a NuGet.config one level above the sources directory, so it doesn't trample a user's NuGet.config but is still picked up by NuGet/dotnet.
|
||||||
|
const nugetConfigFile = path.join(fakeSourcesDirForTesting, '../nuget.config');
|
||||||
|
|
||||||
|
process.env['GITHUB_REPOSITORY'] = 'OwnerName/repo';
|
||||||
|
process.env['RUNNER_TEMP'] = fakeSourcesDirForTesting;
|
||||||
|
import * as auth from '../src/authutil';
|
||||||
|
|
||||||
|
describe('authutil tests', () => {
|
||||||
|
beforeEach(async () => {
|
||||||
|
await io.rmRF(fakeSourcesDirForTesting);
|
||||||
|
await io.mkdirP(fakeSourcesDirForTesting);
|
||||||
|
}, 100000);
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
if (fs.existsSync(nugetConfigFile)) {
|
||||||
|
fs.unlinkSync(nugetConfigFile);
|
||||||
|
}
|
||||||
|
process.env['INPUT_OWNER'] = '';
|
||||||
|
process.env['NUGET_AUTH_TOKEN'] = '';
|
||||||
|
});
|
||||||
|
|
||||||
|
it('No existing config, sets up a full NuGet.config with URL and user/PAT for GPR', async () => {
|
||||||
|
process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN';
|
||||||
|
await auth.configAuthentication(
|
||||||
|
'https://nuget.pkg.github.com/OwnerName/index.json'
|
||||||
|
);
|
||||||
|
expect(fs.existsSync(nugetConfigFile)).toBe(true);
|
||||||
|
expect(
|
||||||
|
fs.readFileSync(nugetConfigFile, {encoding: 'utf8'})
|
||||||
|
).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('No existing config, auth token environment variable not provided, throws', async () => {
|
||||||
|
let thrown = false;
|
||||||
|
try {
|
||||||
|
await auth.configAuthentication(
|
||||||
|
'https://nuget.pkg.github.com/OwnerName/index.json'
|
||||||
|
);
|
||||||
|
} catch {
|
||||||
|
thrown = true;
|
||||||
|
}
|
||||||
|
expect(thrown).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('No existing config, sets up a full NuGet.config with URL and other owner/PAT for GPR', async () => {
|
||||||
|
process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN';
|
||||||
|
process.env['INPUT_OWNER'] = 'otherorg';
|
||||||
|
await auth.configAuthentication(
|
||||||
|
'https://nuget.pkg.github.com/otherorg/index.json'
|
||||||
|
);
|
||||||
|
expect(fs.existsSync(nugetConfigFile)).toBe(true);
|
||||||
|
expect(
|
||||||
|
fs.readFileSync(nugetConfigFile, {encoding: 'utf8'})
|
||||||
|
).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Existing config (invalid), tries to parse an invalid NuGet.config and throws', async () => {
|
||||||
|
process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN';
|
||||||
|
const inputNuGetConfigPath: string = path.join(
|
||||||
|
fakeSourcesDirForTesting,
|
||||||
|
'nuget.config'
|
||||||
|
);
|
||||||
|
fs.writeFileSync(inputNuGetConfigPath, invalidNuGetConfig);
|
||||||
|
let thrown = false;
|
||||||
|
try {
|
||||||
|
await auth.configAuthentication(
|
||||||
|
'https://nuget.pkg.github.com/OwnerName/index.json'
|
||||||
|
);
|
||||||
|
} catch {
|
||||||
|
thrown = true;
|
||||||
|
}
|
||||||
|
expect(thrown).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Existing config w/ no sources, sets up a full NuGet.config with URL and user/PAT for GPR', async () => {
|
||||||
|
process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN';
|
||||||
|
const inputNuGetConfigPath: string = path.join(
|
||||||
|
fakeSourcesDirForTesting,
|
||||||
|
'nuget.config'
|
||||||
|
);
|
||||||
|
fs.writeFileSync(inputNuGetConfigPath, emptyNuGetConfig);
|
||||||
|
await auth.configAuthentication(
|
||||||
|
'https://nuget.pkg.github.com/OwnerName/index.json'
|
||||||
|
);
|
||||||
|
expect(fs.existsSync(nugetConfigFile)).toBe(true);
|
||||||
|
expect(
|
||||||
|
fs.readFileSync(nugetConfigFile, {encoding: 'utf8'})
|
||||||
|
).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Existing config w/ no GPR sources, sets up a full NuGet.config with URL and user/PAT for GPR', async () => {
|
||||||
|
process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN';
|
||||||
|
const inputNuGetConfigPath: string = path.join(
|
||||||
|
fakeSourcesDirForTesting,
|
||||||
|
'nuget.config'
|
||||||
|
);
|
||||||
|
fs.writeFileSync(inputNuGetConfigPath, nugetorgNuGetConfig);
|
||||||
|
await auth.configAuthentication(
|
||||||
|
'https://nuget.pkg.github.com/OwnerName/index.json'
|
||||||
|
);
|
||||||
|
expect(fs.existsSync(nugetConfigFile)).toBe(true);
|
||||||
|
expect(
|
||||||
|
fs.readFileSync(nugetConfigFile, {encoding: 'utf8'})
|
||||||
|
).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Existing config w/ only GPR source, sets up a partial NuGet.config user/PAT for GPR', async () => {
|
||||||
|
process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN';
|
||||||
|
const inputNuGetConfigPath: string = path.join(
|
||||||
|
fakeSourcesDirForTesting,
|
||||||
|
'nuget.config'
|
||||||
|
);
|
||||||
|
fs.writeFileSync(inputNuGetConfigPath, gprNuGetConfig);
|
||||||
|
await auth.configAuthentication(
|
||||||
|
'https://nuget.pkg.github.com/OwnerName/index.json'
|
||||||
|
);
|
||||||
|
expect(fs.existsSync(nugetConfigFile)).toBe(true);
|
||||||
|
expect(
|
||||||
|
fs.readFileSync(nugetConfigFile, {encoding: 'utf8'})
|
||||||
|
).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Existing config w/ GPR source and NuGet.org, sets up a partial NuGet.config user/PAT for GPR', async () => {
|
||||||
|
process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN';
|
||||||
|
const inputNuGetConfigPath: string = path.join(
|
||||||
|
fakeSourcesDirForTesting,
|
||||||
|
'nuget.config'
|
||||||
|
);
|
||||||
|
fs.writeFileSync(inputNuGetConfigPath, gprnugetorgNuGetConfig);
|
||||||
|
await auth.configAuthentication(
|
||||||
|
'https://nuget.pkg.github.com/OwnerName/index.json'
|
||||||
|
);
|
||||||
|
expect(fs.existsSync(nugetConfigFile)).toBe(true);
|
||||||
|
expect(
|
||||||
|
fs.readFileSync(nugetConfigFile, {encoding: 'utf8'})
|
||||||
|
).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Existing config w/ two GPR sources, sets up a partial NuGet.config user/PAT for GPR', async () => {
|
||||||
|
process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN';
|
||||||
|
const inputNuGetConfigPath: string = path.join(
|
||||||
|
fakeSourcesDirForTesting,
|
||||||
|
'nuget.config'
|
||||||
|
);
|
||||||
|
fs.writeFileSync(inputNuGetConfigPath, twogprNuGetConfig);
|
||||||
|
await auth.configAuthentication('https://nuget.pkg.github.com');
|
||||||
|
expect(fs.existsSync(nugetConfigFile)).toBe(true);
|
||||||
|
expect(
|
||||||
|
fs.readFileSync(nugetConfigFile, {encoding: 'utf8'})
|
||||||
|
).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Existing config w/ spaces in key, throws for now', async () => {
|
||||||
|
process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN';
|
||||||
|
const inputNuGetConfigPath: string = path.join(
|
||||||
|
fakeSourcesDirForTesting,
|
||||||
|
'nuget.config'
|
||||||
|
);
|
||||||
|
fs.writeFileSync(inputNuGetConfigPath, spaceNuGetConfig);
|
||||||
|
let thrown = false;
|
||||||
|
try {
|
||||||
|
await auth.configAuthentication(
|
||||||
|
'https://nuget.pkg.github.com/OwnerName/index.json'
|
||||||
|
);
|
||||||
|
} catch {
|
||||||
|
thrown = true;
|
||||||
|
}
|
||||||
|
expect(thrown).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Existing config not in repo root, sets up a partial NuGet.config user/PAT for GPR', async () => {
|
||||||
|
process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN';
|
||||||
|
const inputNuGetConfigDirectory: string = path.join(
|
||||||
|
fakeSourcesDirForTesting,
|
||||||
|
'subfolder'
|
||||||
|
);
|
||||||
|
const inputNuGetConfigPath: string = path.join(
|
||||||
|
inputNuGetConfigDirectory,
|
||||||
|
'nuget.config'
|
||||||
|
);
|
||||||
|
fs.mkdirSync(inputNuGetConfigDirectory, {recursive: true});
|
||||||
|
fs.writeFileSync(inputNuGetConfigPath, gprNuGetConfig);
|
||||||
|
await auth.configAuthentication(
|
||||||
|
'https://nuget.pkg.github.com/OwnerName/index.json',
|
||||||
|
'subfolder/nuget.config'
|
||||||
|
);
|
||||||
|
expect(fs.existsSync(nugetConfigFile)).toBe(true);
|
||||||
|
expect(
|
||||||
|
fs.readFileSync(nugetConfigFile, {encoding: 'utf8'})
|
||||||
|
).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Existing config w/ only Azure Artifacts source, sets up a partial NuGet.config user/PAT for GPR', async () => {
|
||||||
|
process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN';
|
||||||
|
const inputNuGetConfigPath: string = path.join(
|
||||||
|
fakeSourcesDirForTesting,
|
||||||
|
'nuget.config'
|
||||||
|
);
|
||||||
|
fs.writeFileSync(inputNuGetConfigPath, azureartifactsNuGetConfig);
|
||||||
|
await auth.configAuthentication(
|
||||||
|
'https://pkgs.dev.azure.com/amullans/_packaging/GitHubBuilds/nuget/v3/index.json'
|
||||||
|
);
|
||||||
|
expect(fs.existsSync(nugetConfigFile)).toBe(true);
|
||||||
|
expect(
|
||||||
|
fs.readFileSync(nugetConfigFile, {encoding: 'utf8'})
|
||||||
|
).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Existing config w/ Azure Artifacts source and NuGet.org, sets up a partial NuGet.config user/PAT for GPR', async () => {
|
||||||
|
process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN';
|
||||||
|
const inputNuGetConfigPath: string = path.join(
|
||||||
|
fakeSourcesDirForTesting,
|
||||||
|
'nuget.config'
|
||||||
|
);
|
||||||
|
fs.writeFileSync(inputNuGetConfigPath, azureartifactsnugetorgNuGetConfig);
|
||||||
|
await auth.configAuthentication(
|
||||||
|
'https://pkgs.dev.azure.com/amullans/_packaging/GitHubBuilds/nuget/v3/index.json'
|
||||||
|
);
|
||||||
|
expect(fs.existsSync(nugetConfigFile)).toBe(true);
|
||||||
|
expect(
|
||||||
|
fs.readFileSync(nugetConfigFile, {encoding: 'utf8'})
|
||||||
|
).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('No existing config, sets up a full NuGet.config with URL and token for other source', async () => {
|
||||||
|
process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN';
|
||||||
|
await auth.configAuthentication(
|
||||||
|
'https://pkgs.dev.azure.com/amullans/_packaging/GitHubBuilds/nuget/v3/index.json'
|
||||||
|
);
|
||||||
|
expect(fs.existsSync(nugetConfigFile)).toBe(true);
|
||||||
|
expect(
|
||||||
|
fs.readFileSync(nugetConfigFile, {encoding: 'utf8'})
|
||||||
|
).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
});
|
@ -29,8 +29,8 @@ describe('installer tests', () => {
|
|||||||
}, 100000);
|
}, 100000);
|
||||||
|
|
||||||
it('Acquires version of dotnet if no matching version is installed', async () => {
|
it('Acquires version of dotnet if no matching version is installed', async () => {
|
||||||
await getDotnet('2.2.104');
|
await getDotnet('2.2.205');
|
||||||
const dotnetDir = path.join(toolDir, 'dncs', '2.2.104', os.arch());
|
const dotnetDir = path.join(toolDir, 'dncs', '2.2.205', os.arch());
|
||||||
|
|
||||||
expect(fs.existsSync(`${dotnetDir}.complete`)).toBe(true);
|
expect(fs.existsSync(`${dotnetDir}.complete`)).toBe(true);
|
||||||
if (IS_WINDOWS) {
|
if (IS_WINDOWS) {
|
||||||
|
15
action.yml
15
action.yml
@ -1,9 +1,18 @@
|
|||||||
name: 'Setup Dotnet environment'
|
name: 'Setup .NET Core SDK'
|
||||||
description: 'Setup a Dotnet environment and add it to the PATH, additionally providing proxy support'
|
description: 'Set up a specific version of the .NET Core CLI in the PATH and set up authentication to a private NuGet repository'
|
||||||
author: 'GitHub'
|
author: 'GitHub'
|
||||||
|
branding:
|
||||||
|
icon: play
|
||||||
|
color: green
|
||||||
inputs:
|
inputs:
|
||||||
dotnet-version:
|
dotnet-version:
|
||||||
description: 'SDK version to use. E.g. 2.2.104'
|
description: 'SDK version to use. Example: 2.2.104'
|
||||||
|
source-url:
|
||||||
|
description: 'Optional package source for which to set up authentication. Will consult any existing NuGet.config in the root of the repo and provide a temporary NuGet.config using the NUGET_AUTH_TOKEN environment variable as a ClearTextPassword'
|
||||||
|
owner:
|
||||||
|
description: 'Optional OWNER for using packages from GitHub Package Registry organizations/users other than the current repository''s owner. Only used if a GPR URL is also provided in source-url'
|
||||||
|
config-file:
|
||||||
|
description: 'Optional NuGet.config location, if your NuGet.config isn''t located in the root of the repo.'
|
||||||
# Deprecated option, do not use. Will not be supported after October 1, 2019
|
# Deprecated option, do not use. Will not be supported after October 1, 2019
|
||||||
version:
|
version:
|
||||||
description: 'Deprecated. Use dotnet-version instead. Will not be supported after October 1, 2019'
|
description: 'Deprecated. Use dotnet-version instead. Will not be supported after October 1, 2019'
|
||||||
|
4
externals/get-os-distro.sh
vendored
Normal file → Executable file
4
externals/get-os-distro.sh
vendored
Normal file → Executable file
@ -113,7 +113,7 @@ get_current_os_name() {
|
|||||||
|
|
||||||
local uname=$(uname)
|
local uname=$(uname)
|
||||||
if [ "$uname" = "Darwin" ]; then
|
if [ "$uname" = "Darwin" ]; then
|
||||||
echo "mac"
|
echo "osx"
|
||||||
return 0
|
return 0
|
||||||
elif [ "$uname" = "Linux" ]; then
|
elif [ "$uname" = "Linux" ]; then
|
||||||
local linux_platform_name
|
local linux_platform_name
|
||||||
@ -139,7 +139,7 @@ get_legacy_os_name() {
|
|||||||
|
|
||||||
local uname=$(uname)
|
local uname=$(uname)
|
||||||
if [ "$uname" = "Darwin" ]; then
|
if [ "$uname" = "Darwin" ]; then
|
||||||
echo "mac"
|
echo "osx"
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
if [ -e /etc/os-release ]; then
|
if [ -e /etc/os-release ]; then
|
||||||
|
104
externals/install-dotnet.ps1
vendored
104
externals/install-dotnet.ps1
vendored
@ -37,15 +37,13 @@
|
|||||||
.PARAMETER SharedRuntime
|
.PARAMETER SharedRuntime
|
||||||
This parameter is obsolete and may be removed in a future version of this script.
|
This parameter is obsolete and may be removed in a future version of this script.
|
||||||
The recommended alternative is '-Runtime dotnet'.
|
The recommended alternative is '-Runtime dotnet'.
|
||||||
|
|
||||||
Default: false
|
|
||||||
Installs just the shared runtime bits, not the entire SDK.
|
Installs just the shared runtime bits, not the entire SDK.
|
||||||
This is equivalent to specifying `-Runtime dotnet`.
|
|
||||||
.PARAMETER Runtime
|
.PARAMETER Runtime
|
||||||
Installs just a shared runtime, not the entire SDK.
|
Installs just a shared runtime, not the entire SDK.
|
||||||
Possible values:
|
Possible values:
|
||||||
- dotnet - the Microsoft.NETCore.App shared runtime
|
- dotnet - the Microsoft.NETCore.App shared runtime
|
||||||
- aspnetcore - the Microsoft.AspNetCore.App shared runtime
|
- aspnetcore - the Microsoft.AspNetCore.App shared runtime
|
||||||
|
- windowsdesktop - the Microsoft.WindowsDesktop.App shared runtime
|
||||||
.PARAMETER DryRun
|
.PARAMETER DryRun
|
||||||
If set it will not perform installation but instead display what command line to use to consistently install
|
If set it will not perform installation but instead display what command line to use to consistently install
|
||||||
currently requested version of dotnet cli. In example if you specify version 'latest' it will display a link
|
currently requested version of dotnet cli. In example if you specify version 'latest' it will display a link
|
||||||
@ -76,14 +74,18 @@
|
|||||||
Skips installing non-versioned files if they already exist, such as dotnet.exe.
|
Skips installing non-versioned files if they already exist, such as dotnet.exe.
|
||||||
.PARAMETER NoCdn
|
.PARAMETER NoCdn
|
||||||
Disable downloading from the Azure CDN, and use the uncached feed directly.
|
Disable downloading from the Azure CDN, and use the uncached feed directly.
|
||||||
|
.PARAMETER JSonFile
|
||||||
|
Determines the SDK version from a user specified global.json file
|
||||||
|
Note: global.json must have a value for 'SDK:Version'
|
||||||
#>
|
#>
|
||||||
[cmdletbinding()]
|
[cmdletbinding()]
|
||||||
param(
|
param(
|
||||||
[string]$Channel="LTS",
|
[string]$Channel="LTS",
|
||||||
[string]$Version="Latest",
|
[string]$Version="Latest",
|
||||||
|
[string]$JSonFile,
|
||||||
[string]$InstallDir="<auto>",
|
[string]$InstallDir="<auto>",
|
||||||
[string]$Architecture="<auto>",
|
[string]$Architecture="<auto>",
|
||||||
[ValidateSet("dotnet", "aspnetcore", IgnoreCase = $false)]
|
[ValidateSet("dotnet", "aspnetcore", "windowsdesktop", IgnoreCase = $false)]
|
||||||
[string]$Runtime,
|
[string]$Runtime,
|
||||||
[Obsolete("This parameter may be removed in a future version of this script. The recommended alternative is '-Runtime dotnet'.")]
|
[Obsolete("This parameter may be removed in a future version of this script. The recommended alternative is '-Runtime dotnet'.")]
|
||||||
[switch]$SharedRuntime,
|
[switch]$SharedRuntime,
|
||||||
@ -165,7 +167,7 @@ function Get-CLIArchitecture-From-Architecture([string]$Architecture) {
|
|||||||
{ $_ -eq "x86" } { return "x86" }
|
{ $_ -eq "x86" } { return "x86" }
|
||||||
{ $_ -eq "arm" } { return "arm" }
|
{ $_ -eq "arm" } { return "arm" }
|
||||||
{ $_ -eq "arm64" } { return "arm64" }
|
{ $_ -eq "arm64" } { return "arm64" }
|
||||||
default { throw "Architecture not supported. If you think this is a bug, report it at https://github.com/dotnet/cli/issues" }
|
default { throw "Architecture not supported. If you think this is a bug, report it at https://github.com/dotnet/sdk/issues" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -257,7 +259,6 @@ function GetHTTPResponse([Uri] $Uri)
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function Get-Latest-Version-Info([string]$AzureFeed, [string]$Channel, [bool]$Coherent) {
|
function Get-Latest-Version-Info([string]$AzureFeed, [string]$Channel, [bool]$Coherent) {
|
||||||
Say-Invocation $MyInvocation
|
Say-Invocation $MyInvocation
|
||||||
|
|
||||||
@ -268,6 +269,10 @@ function Get-Latest-Version-Info([string]$AzureFeed, [string]$Channel, [bool]$Co
|
|||||||
elseif ($Runtime -eq "aspnetcore") {
|
elseif ($Runtime -eq "aspnetcore") {
|
||||||
$VersionFileUrl = "$UncachedFeed/aspnetcore/Runtime/$Channel/latest.version"
|
$VersionFileUrl = "$UncachedFeed/aspnetcore/Runtime/$Channel/latest.version"
|
||||||
}
|
}
|
||||||
|
# Currently, the WindowsDesktop runtime is manufactured with the .Net core runtime
|
||||||
|
elseif ($Runtime -eq "windowsdesktop") {
|
||||||
|
$VersionFileUrl = "$UncachedFeed/Runtime/$Channel/latest.version"
|
||||||
|
}
|
||||||
elseif (-not $Runtime) {
|
elseif (-not $Runtime) {
|
||||||
if ($Coherent) {
|
if ($Coherent) {
|
||||||
$VersionFileUrl = "$UncachedFeed/Sdk/$Channel/latest.coherent.version"
|
$VersionFileUrl = "$UncachedFeed/Sdk/$Channel/latest.coherent.version"
|
||||||
@ -299,10 +304,45 @@ function Get-Latest-Version-Info([string]$AzureFeed, [string]$Channel, [bool]$Co
|
|||||||
return $VersionInfo
|
return $VersionInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Parse-Jsonfile-For-Version([string]$JSonFile) {
|
||||||
function Get-Specific-Version-From-Version([string]$AzureFeed, [string]$Channel, [string]$Version) {
|
|
||||||
Say-Invocation $MyInvocation
|
Say-Invocation $MyInvocation
|
||||||
|
|
||||||
|
If (-Not (Test-Path $JSonFile)) {
|
||||||
|
throw "Unable to find '$JSonFile'"
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
$JSonContent = Get-Content($JSonFile) -Raw | ConvertFrom-Json | Select-Object -expand "sdk" -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
throw "Json file unreadable: '$JSonFile'"
|
||||||
|
}
|
||||||
|
if ($JSonContent) {
|
||||||
|
try {
|
||||||
|
$JSonContent.PSObject.Properties | ForEach-Object {
|
||||||
|
$PropertyName = $_.Name
|
||||||
|
if ($PropertyName -eq "version") {
|
||||||
|
$Version = $_.Value
|
||||||
|
Say-Verbose "Version = $Version"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
throw "Unable to parse the SDK node in '$JSonFile'"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw "Unable to find the SDK node in '$JSonFile'"
|
||||||
|
}
|
||||||
|
If ($Version -eq $null) {
|
||||||
|
throw "Unable to find the SDK:version node in '$JSonFile'"
|
||||||
|
}
|
||||||
|
return $Version
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-Specific-Version-From-Version([string]$AzureFeed, [string]$Channel, [string]$Version, [string]$JSonFile) {
|
||||||
|
Say-Invocation $MyInvocation
|
||||||
|
|
||||||
|
if (-not $JSonFile) {
|
||||||
switch ($Version.ToLower()) {
|
switch ($Version.ToLower()) {
|
||||||
{ $_ -eq "latest" } {
|
{ $_ -eq "latest" } {
|
||||||
$LatestVersionInfo = Get-Latest-Version-Info -AzureFeed $AzureFeed -Channel $Channel -Coherent $False
|
$LatestVersionInfo = Get-Latest-Version-Info -AzureFeed $AzureFeed -Channel $Channel -Coherent $False
|
||||||
@ -315,6 +355,10 @@ function Get-Specific-Version-From-Version([string]$AzureFeed, [string]$Channel,
|
|||||||
default { return $Version }
|
default { return $Version }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
return Parse-Jsonfile-For-Version $JSonFile
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function Get-Download-Link([string]$AzureFeed, [string]$SpecificVersion, [string]$CLIArchitecture) {
|
function Get-Download-Link([string]$AzureFeed, [string]$SpecificVersion, [string]$CLIArchitecture) {
|
||||||
Say-Invocation $MyInvocation
|
Say-Invocation $MyInvocation
|
||||||
@ -325,6 +369,9 @@ function Get-Download-Link([string]$AzureFeed, [string]$SpecificVersion, [string
|
|||||||
elseif ($Runtime -eq "aspnetcore") {
|
elseif ($Runtime -eq "aspnetcore") {
|
||||||
$PayloadURL = "$AzureFeed/aspnetcore/Runtime/$SpecificVersion/aspnetcore-runtime-$SpecificVersion-win-$CLIArchitecture.zip"
|
$PayloadURL = "$AzureFeed/aspnetcore/Runtime/$SpecificVersion/aspnetcore-runtime-$SpecificVersion-win-$CLIArchitecture.zip"
|
||||||
}
|
}
|
||||||
|
elseif ($Runtime -eq "windowsdesktop") {
|
||||||
|
$PayloadURL = "$AzureFeed/Runtime/$SpecificVersion/windowsdesktop-runtime-$SpecificVersion-win-$CLIArchitecture.zip"
|
||||||
|
}
|
||||||
elseif (-not $Runtime) {
|
elseif (-not $Runtime) {
|
||||||
$PayloadURL = "$AzureFeed/Sdk/$SpecificVersion/dotnet-sdk-$SpecificVersion-win-$CLIArchitecture.zip"
|
$PayloadURL = "$AzureFeed/Sdk/$SpecificVersion/dotnet-sdk-$SpecificVersion-win-$CLIArchitecture.zip"
|
||||||
}
|
}
|
||||||
@ -374,28 +421,11 @@ function Resolve-Installation-Path([string]$InstallDir) {
|
|||||||
return $InstallDir
|
return $InstallDir
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-Version-Info-From-Version-File([string]$InstallRoot, [string]$RelativePathToVersionFile) {
|
|
||||||
Say-Invocation $MyInvocation
|
|
||||||
|
|
||||||
$VersionFile = Join-Path -Path $InstallRoot -ChildPath $RelativePathToVersionFile
|
|
||||||
Say-Verbose "Local version file: $VersionFile"
|
|
||||||
|
|
||||||
if (Test-Path $VersionFile) {
|
|
||||||
$VersionText = cat $VersionFile
|
|
||||||
Say-Verbose "Local version file text: $VersionText"
|
|
||||||
return Get-Version-Info-From-Version-Text $VersionText
|
|
||||||
}
|
|
||||||
|
|
||||||
Say-Verbose "Local version file not found."
|
|
||||||
|
|
||||||
return $null
|
|
||||||
}
|
|
||||||
|
|
||||||
function Is-Dotnet-Package-Installed([string]$InstallRoot, [string]$RelativePathToPackage, [string]$SpecificVersion) {
|
function Is-Dotnet-Package-Installed([string]$InstallRoot, [string]$RelativePathToPackage, [string]$SpecificVersion) {
|
||||||
Say-Invocation $MyInvocation
|
Say-Invocation $MyInvocation
|
||||||
|
|
||||||
$DotnetPackagePath = Join-Path -Path $InstallRoot -ChildPath $RelativePathToPackage | Join-Path -ChildPath $SpecificVersion
|
$DotnetPackagePath = Join-Path -Path $InstallRoot -ChildPath $RelativePathToPackage | Join-Path -ChildPath $SpecificVersion
|
||||||
Say-Verbose "Is-Dotnet-Package-Installed: Path to a package: $DotnetPackagePath"
|
Say-Verbose "Is-Dotnet-Package-Installed: DotnetPackagePath=$DotnetPackagePath"
|
||||||
return Test-Path $DotnetPackagePath -PathType Container
|
return Test-Path $DotnetPackagePath -PathType Container
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -526,7 +556,7 @@ function Prepend-Sdk-InstallRoot-To-Path([string]$InstallRoot, [string]$BinFolde
|
|||||||
}
|
}
|
||||||
|
|
||||||
$CLIArchitecture = Get-CLIArchitecture-From-Architecture $Architecture
|
$CLIArchitecture = Get-CLIArchitecture-From-Architecture $Architecture
|
||||||
$SpecificVersion = Get-Specific-Version-From-Version -AzureFeed $AzureFeed -Channel $Channel -Version $Version
|
$SpecificVersion = Get-Specific-Version-From-Version -AzureFeed $AzureFeed -Channel $Channel -Version $Version -JSonFile $JSonFile
|
||||||
$DownloadLink = Get-Download-Link -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture
|
$DownloadLink = Get-Download-Link -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture
|
||||||
$LegacyDownloadLink = Get-LegacyDownload-Link -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture
|
$LegacyDownloadLink = Get-LegacyDownload-Link -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture
|
||||||
|
|
||||||
@ -564,6 +594,10 @@ elseif ($Runtime -eq "aspnetcore") {
|
|||||||
$assetName = "ASP.NET Core Runtime"
|
$assetName = "ASP.NET Core Runtime"
|
||||||
$dotnetPackageRelativePath = "shared\Microsoft.AspNetCore.App"
|
$dotnetPackageRelativePath = "shared\Microsoft.AspNetCore.App"
|
||||||
}
|
}
|
||||||
|
elseif ($Runtime -eq "windowsdesktop") {
|
||||||
|
$assetName = ".NET Core Windows Desktop Runtime"
|
||||||
|
$dotnetPackageRelativePath = "shared\Microsoft.WindowsDesktop.App"
|
||||||
|
}
|
||||||
elseif (-not $Runtime) {
|
elseif (-not $Runtime) {
|
||||||
$assetName = ".NET Core SDK"
|
$assetName = ".NET Core SDK"
|
||||||
$dotnetPackageRelativePath = "sdk"
|
$dotnetPackageRelativePath = "sdk"
|
||||||
@ -624,8 +658,22 @@ if ($DownloadFailed) {
|
|||||||
Say "Extracting zip from $DownloadLink"
|
Say "Extracting zip from $DownloadLink"
|
||||||
Extract-Dotnet-Package -ZipPath $ZipPath -OutPath $InstallRoot
|
Extract-Dotnet-Package -ZipPath $ZipPath -OutPath $InstallRoot
|
||||||
|
|
||||||
# Check if the SDK version is now installed; if not, fail the installation.
|
# Check if the SDK version is installed; if not, fail the installation.
|
||||||
|
$isAssetInstalled = $false
|
||||||
|
|
||||||
|
# if the version contains "RTM" or "servicing"; check if a 'release-type' SDK version is installed.
|
||||||
|
if ($SpecificVersion -Match "rtm" -or $SpecificVersion -Match "servicing") {
|
||||||
|
$ReleaseVersion = $SpecificVersion.Split("-")[0]
|
||||||
|
Say-Verbose "Checking installation: version = $ReleaseVersion"
|
||||||
|
$isAssetInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $ReleaseVersion
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check if the SDK version is installed.
|
||||||
|
if (!$isAssetInstalled) {
|
||||||
|
Say-Verbose "Checking installation: version = $SpecificVersion"
|
||||||
$isAssetInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $SpecificVersion
|
$isAssetInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $SpecificVersion
|
||||||
|
}
|
||||||
|
|
||||||
if (!$isAssetInstalled) {
|
if (!$isAssetInstalled) {
|
||||||
throw "`"$assetName`" with version = $SpecificVersion failed to install with an unknown error."
|
throw "`"$assetName`" with version = $SpecificVersion failed to install with an unknown error."
|
||||||
}
|
}
|
||||||
|
151
externals/install-dotnet.sh
vendored
151
externals/install-dotnet.sh
vendored
@ -144,11 +144,11 @@ get_linux_platform_name() {
|
|||||||
else
|
else
|
||||||
if [ -e /etc/os-release ]; then
|
if [ -e /etc/os-release ]; then
|
||||||
. /etc/os-release
|
. /etc/os-release
|
||||||
echo "$ID.$VERSION_ID"
|
echo "$ID${VERSION_ID:+.${VERSION_ID}}"
|
||||||
return 0
|
return 0
|
||||||
elif [ -e /etc/redhat-release ]; then
|
elif [ -e /etc/redhat-release ]; then
|
||||||
local redhatRelease=$(</etc/redhat-release)
|
local redhatRelease=$(</etc/redhat-release)
|
||||||
if [[ $redhatRelease == "CentOS release 6."* || $redhatRelease == "Red Hat Enterprise Linux Server release 6."* ]]; then
|
if [[ $redhatRelease == "CentOS release 6."* || $redhatRelease == "Red Hat Enterprise Linux "*" release 6."* ]]; then
|
||||||
echo "rhel.6"
|
echo "rhel.6"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
@ -159,6 +159,10 @@ get_linux_platform_name() {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
is_musl_based_distro() {
|
||||||
|
(ldd --version 2>&1 || true) | grep -q musl
|
||||||
|
}
|
||||||
|
|
||||||
get_current_os_name() {
|
get_current_os_name() {
|
||||||
eval $invocation
|
eval $invocation
|
||||||
|
|
||||||
@ -173,10 +177,10 @@ get_current_os_name() {
|
|||||||
local linux_platform_name
|
local linux_platform_name
|
||||||
linux_platform_name="$(get_linux_platform_name)" || { echo "linux" && return 0 ; }
|
linux_platform_name="$(get_linux_platform_name)" || { echo "linux" && return 0 ; }
|
||||||
|
|
||||||
if [[ $linux_platform_name == "rhel.6" ]]; then
|
if [ "$linux_platform_name" = "rhel.6" ]; then
|
||||||
echo $linux_platform_name
|
echo $linux_platform_name
|
||||||
return 0
|
return 0
|
||||||
elif [[ $linux_platform_name == alpine* ]]; then
|
elif is_musl_based_distro; then
|
||||||
echo "linux-musl"
|
echo "linux-musl"
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
@ -202,7 +206,7 @@ get_legacy_os_name() {
|
|||||||
else
|
else
|
||||||
if [ -e /etc/os-release ]; then
|
if [ -e /etc/os-release ]; then
|
||||||
. /etc/os-release
|
. /etc/os-release
|
||||||
os=$(get_legacy_os_name_from_platform "$ID.$VERSION_ID" || echo "")
|
os=$(get_legacy_os_name_from_platform "$ID${VERSION_ID:+.${VERSION_ID}}" || echo "")
|
||||||
if [ -n "$os" ]; then
|
if [ -n "$os" ]; then
|
||||||
echo "$os"
|
echo "$os"
|
||||||
return 0
|
return 0
|
||||||
@ -245,20 +249,29 @@ check_pre_reqs() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$(uname)" = "Linux" ]; then
|
if [ "$(uname)" = "Linux" ]; then
|
||||||
|
if is_musl_based_distro; then
|
||||||
|
if ! command -v scanelf > /dev/null; then
|
||||||
|
say_warning "scanelf not found, please install pax-utils package."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
LDCONFIG_COMMAND="scanelf --ldpath -BF '%f'"
|
||||||
|
[ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libintl)" ] && say_warning "Unable to locate libintl. Probable prerequisite missing; install libintl (or gettext)."
|
||||||
|
else
|
||||||
if [ ! -x "$(command -v ldconfig)" ]; then
|
if [ ! -x "$(command -v ldconfig)" ]; then
|
||||||
echo "ldconfig is not in PATH, trying /sbin/ldconfig."
|
say_verbose "ldconfig is not in PATH, trying /sbin/ldconfig."
|
||||||
LDCONFIG_COMMAND="/sbin/ldconfig"
|
LDCONFIG_COMMAND="/sbin/ldconfig"
|
||||||
else
|
else
|
||||||
LDCONFIG_COMMAND="ldconfig"
|
LDCONFIG_COMMAND="ldconfig"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local librarypath=${LD_LIBRARY_PATH:-}
|
local librarypath=${LD_LIBRARY_PATH:-}
|
||||||
LDCONFIG_COMMAND="$LDCONFIG_COMMAND -NXv ${librarypath//:/ }"
|
LDCONFIG_COMMAND="$LDCONFIG_COMMAND -NXv ${librarypath//:/ }"
|
||||||
|
fi
|
||||||
|
|
||||||
[ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libunwind)" ] && say_warning "Unable to locate libunwind. Probable prerequisite missing; install libunwind."
|
[ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep zlib)" ] && say_warning "Unable to locate zlib. Probable prerequisite missing; install zlib."
|
||||||
[ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libssl)" ] && say_warning "Unable to locate libssl. Probable prerequisite missing; install libssl."
|
[ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep ssl)" ] && say_warning "Unable to locate libssl. Probable prerequisite missing; install libssl."
|
||||||
[ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libicu)" ] && say_warning "Unable to locate libicu. Probable prerequisite missing; install libicu."
|
[ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libicu)" ] && say_warning "Unable to locate libicu. Probable prerequisite missing; install libicu."
|
||||||
[ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep -F libcurl.so)" ] && say_warning "Unable to locate libcurl. Probable prerequisite missing; install libcurl."
|
[ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep lttng)" ] && say_warning "Unable to locate liblttng. Probable prerequisite missing; install libcurl."
|
||||||
|
[ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libcurl)" ] && say_warning "Unable to locate libcurl. Probable prerequisite missing; install libcurl."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
@ -360,7 +373,7 @@ get_normalized_architecture_from_architecture() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
say_err "Architecture \`$architecture\` not supported. If you think this is a bug, report it at https://github.com/dotnet/cli/issues"
|
say_err "Architecture \`$architecture\` not supported. If you think this is a bug, report it at https://github.com/dotnet/sdk/issues"
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -435,11 +448,53 @@ get_latest_version_info() {
|
|||||||
return $?
|
return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# args:
|
||||||
|
# json_file - $1
|
||||||
|
parse_jsonfile_for_version() {
|
||||||
|
eval $invocation
|
||||||
|
|
||||||
|
local json_file="$1"
|
||||||
|
if [ ! -f "$json_file" ]; then
|
||||||
|
say_err "Unable to find \`$json_file\`"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
sdk_section=$(cat $json_file | awk '/"sdk"/,/}/')
|
||||||
|
if [ -z "$sdk_section" ]; then
|
||||||
|
say_err "Unable to parse the SDK node in \`$json_file\`"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
sdk_list=$(echo $sdk_section | awk -F"[{}]" '{print $2}')
|
||||||
|
sdk_list=${sdk_list//[\" ]/}
|
||||||
|
sdk_list=${sdk_list//,/$'\n'}
|
||||||
|
sdk_list="$(echo -e "${sdk_list}" | tr -d '[[:space:]]')"
|
||||||
|
|
||||||
|
local version_info=""
|
||||||
|
while read -r line; do
|
||||||
|
IFS=:
|
||||||
|
while read -r key value; do
|
||||||
|
if [[ "$key" == "version" ]]; then
|
||||||
|
version_info=$value
|
||||||
|
fi
|
||||||
|
done <<< "$line"
|
||||||
|
done <<< "$sdk_list"
|
||||||
|
if [ -z "$version_info" ]; then
|
||||||
|
say_err "Unable to find the SDK:version node in \`$json_file\`"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset IFS;
|
||||||
|
echo "$version_info"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
# args:
|
# args:
|
||||||
# azure_feed - $1
|
# azure_feed - $1
|
||||||
# channel - $2
|
# channel - $2
|
||||||
# normalized_architecture - $3
|
# normalized_architecture - $3
|
||||||
# version - $4
|
# version - $4
|
||||||
|
# json_file - $5
|
||||||
get_specific_version_from_version() {
|
get_specific_version_from_version() {
|
||||||
eval $invocation
|
eval $invocation
|
||||||
|
|
||||||
@ -447,7 +502,9 @@ get_specific_version_from_version() {
|
|||||||
local channel="$2"
|
local channel="$2"
|
||||||
local normalized_architecture="$3"
|
local normalized_architecture="$3"
|
||||||
local version="$(to_lowercase "$4")"
|
local version="$(to_lowercase "$4")"
|
||||||
|
local json_file="$5"
|
||||||
|
|
||||||
|
if [ -z "$json_file" ]; then
|
||||||
case "$version" in
|
case "$version" in
|
||||||
latest)
|
latest)
|
||||||
local version_info
|
local version_info
|
||||||
@ -468,6 +525,12 @@ get_specific_version_from_version() {
|
|||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
else
|
||||||
|
local version_info
|
||||||
|
version_info="$(parse_jsonfile_for_version "$json_file")" || return 1
|
||||||
|
echo "$version_info"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# args:
|
# args:
|
||||||
@ -558,24 +621,6 @@ resolve_installation_path() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# args:
|
|
||||||
# install_root - $1
|
|
||||||
get_installed_version_info() {
|
|
||||||
eval $invocation
|
|
||||||
|
|
||||||
local install_root="$1"
|
|
||||||
local version_file="$(combine_paths "$install_root" "$local_version_file_relative_path")"
|
|
||||||
say_verbose "Local version file: $version_file"
|
|
||||||
if [ ! -z "$version_file" ] | [ -r "$version_file" ]; then
|
|
||||||
local version_info="$(cat "$version_file")"
|
|
||||||
echo "$version_info"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
say_verbose "Local version file not found."
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
# args:
|
# args:
|
||||||
# relative_or_absolute_path - $1
|
# relative_or_absolute_path - $1
|
||||||
get_absolute_path() {
|
get_absolute_path() {
|
||||||
@ -600,7 +645,7 @@ copy_files_or_dirs_from_list() {
|
|||||||
local osname="$(get_current_os_name)"
|
local osname="$(get_current_os_name)"
|
||||||
local override_switch=$(
|
local override_switch=$(
|
||||||
if [ "$override" = false ]; then
|
if [ "$override" = false ]; then
|
||||||
if [[ "$osname" == "linux-musl" ]]; then
|
if [ "$osname" = "linux-musl" ]; then
|
||||||
printf -- "-u";
|
printf -- "-u";
|
||||||
else
|
else
|
||||||
printf -- "-n";
|
printf -- "-n";
|
||||||
@ -612,6 +657,9 @@ copy_files_or_dirs_from_list() {
|
|||||||
local target="$out_path/$path"
|
local target="$out_path/$path"
|
||||||
if [ "$override" = true ] || (! ([ -d "$target" ] || [ -e "$target" ])); then
|
if [ "$override" = true ] || (! ([ -d "$target" ] || [ -e "$target" ])); then
|
||||||
mkdir -p "$out_path/$(dirname "$path")"
|
mkdir -p "$out_path/$(dirname "$path")"
|
||||||
|
if [ -d "$target" ]; then
|
||||||
|
rm -rf "$target"
|
||||||
|
fi
|
||||||
cp -R $override_switch "$root_path/$path" "$target"
|
cp -R $override_switch "$root_path/$path" "$target"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@ -721,7 +769,7 @@ calculate_vars() {
|
|||||||
normalized_architecture="$(get_normalized_architecture_from_architecture "$architecture")"
|
normalized_architecture="$(get_normalized_architecture_from_architecture "$architecture")"
|
||||||
say_verbose "normalized_architecture=$normalized_architecture"
|
say_verbose "normalized_architecture=$normalized_architecture"
|
||||||
|
|
||||||
specific_version="$(get_specific_version_from_version "$azure_feed" "$channel" "$normalized_architecture" "$version")"
|
specific_version="$(get_specific_version_from_version "$azure_feed" "$channel" "$normalized_architecture" "$version" "$json_file")"
|
||||||
say_verbose "specific_version=$specific_version"
|
say_verbose "specific_version=$specific_version"
|
||||||
if [ -z "$specific_version" ]; then
|
if [ -z "$specific_version" ]; then
|
||||||
say_err "Could not resolve version information."
|
say_err "Could not resolve version information."
|
||||||
@ -806,13 +854,27 @@ install_dotnet() {
|
|||||||
say "Extracting zip from $download_link"
|
say "Extracting zip from $download_link"
|
||||||
extract_dotnet_package "$zip_path" "$install_root"
|
extract_dotnet_package "$zip_path" "$install_root"
|
||||||
|
|
||||||
# Check if the SDK version is now installed; if not, fail the installation.
|
# Check if the SDK version is installed; if not, fail the installation.
|
||||||
if ! is_dotnet_package_installed "$install_root" "$asset_relative_path" "$specific_version"; then
|
# if the version contains "RTM" or "servicing"; check if a 'release-type' SDK version is installed.
|
||||||
say_err "\`$asset_name\` with version = $specific_version failed to install with an unknown error."
|
if [[ $specific_version == *"rtm"* || $specific_version == *"servicing"* ]]; then
|
||||||
return 1
|
IFS='-'
|
||||||
|
read -ra verArr <<< "$specific_version"
|
||||||
|
release_version="${verArr[0]}"
|
||||||
|
unset IFS;
|
||||||
|
say_verbose "Checking installation: version = $release_version"
|
||||||
|
if is_dotnet_package_installed "$install_root" "$asset_relative_path" "$release_version"; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check if the standard SDK version is installed.
|
||||||
|
say_verbose "Checking installation: version = $specific_version"
|
||||||
|
if is_dotnet_package_installed "$install_root" "$asset_relative_path" "$specific_version"; then
|
||||||
return 0
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
say_err "\`$asset_name\` with version = $specific_version failed to install with an unknown error."
|
||||||
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
args=("$@")
|
args=("$@")
|
||||||
@ -823,6 +885,7 @@ temporary_file_template="${TMPDIR:-/tmp}/dotnet.XXXXXXXXX"
|
|||||||
|
|
||||||
channel="LTS"
|
channel="LTS"
|
||||||
version="Latest"
|
version="Latest"
|
||||||
|
json_file=""
|
||||||
install_dir="<auto>"
|
install_dir="<auto>"
|
||||||
architecture="<auto>"
|
architecture="<auto>"
|
||||||
dry_run=false
|
dry_run=false
|
||||||
@ -868,6 +931,9 @@ do
|
|||||||
runtime="$1"
|
runtime="$1"
|
||||||
if [[ "$runtime" != "dotnet" ]] && [[ "$runtime" != "aspnetcore" ]]; then
|
if [[ "$runtime" != "dotnet" ]] && [[ "$runtime" != "aspnetcore" ]]; then
|
||||||
say_err "Unsupported value for --runtime: '$1'. Valid values are 'dotnet' and 'aspnetcore'."
|
say_err "Unsupported value for --runtime: '$1'. Valid values are 'dotnet' and 'aspnetcore'."
|
||||||
|
if [[ "$runtime" == "windowsdesktop" ]]; then
|
||||||
|
say_err "WindowsDesktop archives are manufactured for Windows platforms only."
|
||||||
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@ -906,6 +972,10 @@ do
|
|||||||
runtime_id="$1"
|
runtime_id="$1"
|
||||||
non_dynamic_parameters+=" $name "\""$1"\"""
|
non_dynamic_parameters+=" $name "\""$1"\"""
|
||||||
;;
|
;;
|
||||||
|
--jsonfile|-[Jj][Ss]on[Ff]ile)
|
||||||
|
shift
|
||||||
|
json_file="$1"
|
||||||
|
;;
|
||||||
--skip-non-versioned-files|-[Ss]kip[Nn]on[Vv]ersioned[Ff]iles)
|
--skip-non-versioned-files|-[Ss]kip[Nn]on[Vv]ersioned[Ff]iles)
|
||||||
override_non_versioned_files=false
|
override_non_versioned_files=false
|
||||||
non_dynamic_parameters+=" $name"
|
non_dynamic_parameters+=" $name"
|
||||||
@ -947,22 +1017,25 @@ do
|
|||||||
echo " Possible values:"
|
echo " Possible values:"
|
||||||
echo " - dotnet - the Microsoft.NETCore.App shared runtime"
|
echo " - dotnet - the Microsoft.NETCore.App shared runtime"
|
||||||
echo " - aspnetcore - the Microsoft.AspNetCore.App shared runtime"
|
echo " - aspnetcore - the Microsoft.AspNetCore.App shared runtime"
|
||||||
echo " --skip-non-versioned-files Skips non-versioned files if they already exist, such as the dotnet executable."
|
|
||||||
echo " -SkipNonVersionedFiles"
|
|
||||||
echo " --dry-run,-DryRun Do not perform installation. Display download link."
|
echo " --dry-run,-DryRun Do not perform installation. Display download link."
|
||||||
echo " --no-path, -NoPath Do not set PATH for the current process."
|
echo " --no-path, -NoPath Do not set PATH for the current process."
|
||||||
echo " --verbose,-Verbose Display diagnostics information."
|
echo " --verbose,-Verbose Display diagnostics information."
|
||||||
echo " --azure-feed,-AzureFeed Azure feed location. Defaults to $azure_feed, This parameter typically is not changed by the user."
|
echo " --azure-feed,-AzureFeed Azure feed location. Defaults to $azure_feed, This parameter typically is not changed by the user."
|
||||||
echo " --uncached-feed,-UncachedFeed Uncached feed location. This parameter typically is not changed by the user."
|
echo " --uncached-feed,-UncachedFeed Uncached feed location. This parameter typically is not changed by the user."
|
||||||
echo " --no-cdn,-NoCdn Disable downloading from the Azure CDN, and use the uncached feed directly."
|
|
||||||
echo " --feed-credential,-FeedCredential Azure feed shared access token. This parameter typically is not specified."
|
echo " --feed-credential,-FeedCredential Azure feed shared access token. This parameter typically is not specified."
|
||||||
|
echo " --skip-non-versioned-files Skips non-versioned files if they already exist, such as the dotnet executable."
|
||||||
|
echo " -SkipNonVersionedFiles"
|
||||||
|
echo " --no-cdn,-NoCdn Disable downloading from the Azure CDN, and use the uncached feed directly."
|
||||||
|
echo " --jsonfile <JSONFILE> Determines the SDK version from a user specified global.json file."
|
||||||
|
echo " Note: global.json must have a value for 'SDK:Version'"
|
||||||
echo " --runtime-id Installs the .NET Tools for the given platform (use linux-x64 for portable linux)."
|
echo " --runtime-id Installs the .NET Tools for the given platform (use linux-x64 for portable linux)."
|
||||||
echo " -RuntimeId"
|
echo " -RuntimeId"
|
||||||
echo " -?,--?,-h,--help,-Help Shows this help message"
|
echo " -?,--?,-h,--help,-Help Shows this help message"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Obsolete parameters:"
|
echo "Obsolete parameters:"
|
||||||
echo " --shared-runtime The recommended alternative is '--runtime dotnet'."
|
echo " --shared-runtime The recommended alternative is '--runtime dotnet'."
|
||||||
echo " -SharedRuntime Installs just the shared runtime bits, not the entire SDK."
|
echo " This parameter is obsolete and may be removed in a future version of this script."
|
||||||
|
echo " Installs just the shared runtime bits, not the entire SDK."
|
||||||
echo ""
|
echo ""
|
||||||
echo "Install Location:"
|
echo "Install Location:"
|
||||||
echo " Location is chosen in following order:"
|
echo " Location is chosen in following order:"
|
||||||
|
108
lib/authutil.js
Normal file
108
lib/authutil.js
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
"use strict";
|
||||||
|
var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
|
if (mod && mod.__esModule) return mod;
|
||||||
|
var result = {};
|
||||||
|
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
||||||
|
result["default"] = mod;
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
const fs = __importStar(require("fs"));
|
||||||
|
const path = __importStar(require("path"));
|
||||||
|
const core = __importStar(require("@actions/core"));
|
||||||
|
const github = __importStar(require("@actions/github"));
|
||||||
|
const xmlbuilder = __importStar(require("xmlbuilder"));
|
||||||
|
const xmlParser = __importStar(require("fast-xml-parser"));
|
||||||
|
function configAuthentication(feedUrl, existingFileLocation = '') {
|
||||||
|
const existingNuGetConfig = path.resolve(process.env['RUNNER_TEMP'] || process.cwd(), existingFileLocation == '' ? 'nuget.config' : existingFileLocation);
|
||||||
|
const tempNuGetConfig = path.resolve(process.env['RUNNER_TEMP'] || process.cwd(), '../', 'nuget.config');
|
||||||
|
writeFeedToFile(feedUrl, existingNuGetConfig, tempNuGetConfig);
|
||||||
|
}
|
||||||
|
exports.configAuthentication = configAuthentication;
|
||||||
|
function writeFeedToFile(feedUrl, existingFileLocation, tempFileLocation) {
|
||||||
|
console.log(`dotnet-auth: Finding any source references in ${existingFileLocation}, writing a new temporary configuration file with credentials to ${tempFileLocation}`);
|
||||||
|
let xml;
|
||||||
|
let sourceKeys = [];
|
||||||
|
let owner = core.getInput('owner');
|
||||||
|
let sourceUrl = feedUrl;
|
||||||
|
if (!owner) {
|
||||||
|
owner = github.context.repo.owner;
|
||||||
|
}
|
||||||
|
if (!process.env.NUGET_AUTH_TOKEN || process.env.NUGET_AUTH_TOKEN == '') {
|
||||||
|
throw new Error('The NUGET_AUTH_TOKEN environment variable was not provided. In this step, add the following: \r\nenv:\r\n NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}');
|
||||||
|
}
|
||||||
|
if (fs.existsSync(existingFileLocation)) {
|
||||||
|
// get key from existing NuGet.config so NuGet/dotnet can match credentials
|
||||||
|
const curContents = fs.readFileSync(existingFileLocation, 'utf8');
|
||||||
|
var json = xmlParser.parse(curContents, { ignoreAttributes: false });
|
||||||
|
if (typeof json.configuration == 'undefined') {
|
||||||
|
throw new Error(`The provided NuGet.config seems invalid.`);
|
||||||
|
}
|
||||||
|
if (typeof json.configuration.packageSources != 'undefined') {
|
||||||
|
if (typeof json.configuration.packageSources.add != 'undefined') {
|
||||||
|
// file has at least one <add>
|
||||||
|
if (typeof json.configuration.packageSources.add[0] == 'undefined') {
|
||||||
|
// file has only one <add>
|
||||||
|
if (json.configuration.packageSources.add['@_value']
|
||||||
|
.toLowerCase()
|
||||||
|
.includes(feedUrl.toLowerCase())) {
|
||||||
|
let key = json.configuration.packageSources.add['@_key'];
|
||||||
|
sourceKeys.push(key);
|
||||||
|
core.debug(`Found a URL with key ${key}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// file has 2+ <add>
|
||||||
|
for (let i = 0; i < json.configuration.packageSources.add.length; i++) {
|
||||||
|
core.debug(json.configuration.packageSources.add[i]);
|
||||||
|
if (json.configuration.packageSources.add[i]['@_value']
|
||||||
|
.toLowerCase()
|
||||||
|
.includes(feedUrl.toLowerCase())) {
|
||||||
|
let key = json.configuration.packageSources.add[i]['@_key'];
|
||||||
|
sourceKeys.push(key);
|
||||||
|
core.debug(`Found a URL with key ${key}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
xml = xmlbuilder
|
||||||
|
.create('configuration')
|
||||||
|
.ele('config')
|
||||||
|
.ele('add', { key: 'defaultPushSource', value: sourceUrl })
|
||||||
|
.up()
|
||||||
|
.up();
|
||||||
|
if (sourceKeys.length == 0) {
|
||||||
|
let keystring = 'Source';
|
||||||
|
xml = xml
|
||||||
|
.ele('packageSources')
|
||||||
|
.ele('add', { key: keystring, value: sourceUrl })
|
||||||
|
.up()
|
||||||
|
.up();
|
||||||
|
sourceKeys.push(keystring);
|
||||||
|
}
|
||||||
|
xml = xml.ele('packageSourceCredentials');
|
||||||
|
sourceKeys.forEach(key => {
|
||||||
|
if (key.indexOf(' ') > -1) {
|
||||||
|
throw new Error("This action currently can't handle source names with spaces. Remove the space from your repo's NuGet.config and try again.");
|
||||||
|
}
|
||||||
|
xml = xml
|
||||||
|
.ele(key)
|
||||||
|
.ele('add', { key: 'Username', value: owner })
|
||||||
|
.up()
|
||||||
|
.ele('add', {
|
||||||
|
key: 'ClearTextPassword',
|
||||||
|
value: process.env.NUGET_AUTH_TOKEN
|
||||||
|
})
|
||||||
|
.up()
|
||||||
|
.up();
|
||||||
|
});
|
||||||
|
// If NuGet fixes itself such that on Linux it can look for environment variables in the config file (it doesn't seem to work today),
|
||||||
|
// use this for the value above
|
||||||
|
// process.platform == 'win32'
|
||||||
|
// ? '%NUGET_AUTH_TOKEN%'
|
||||||
|
// : '$NUGET_AUTH_TOKEN'
|
||||||
|
var output = xml.end({ pretty: true });
|
||||||
|
fs.writeFileSync(tempFileLocation, output);
|
||||||
|
}
|
@ -26,7 +26,6 @@ const fs_1 = require("fs");
|
|||||||
const os = __importStar(require("os"));
|
const os = __importStar(require("os"));
|
||||||
const path = __importStar(require("path"));
|
const path = __importStar(require("path"));
|
||||||
const semver = __importStar(require("semver"));
|
const semver = __importStar(require("semver"));
|
||||||
const util = __importStar(require("util"));
|
|
||||||
const IS_WINDOWS = process.platform === 'win32';
|
const IS_WINDOWS = process.platform === 'win32';
|
||||||
if (!tempDirectory) {
|
if (!tempDirectory) {
|
||||||
let baseLocation;
|
let baseLocation;
|
||||||
@ -73,7 +72,7 @@ class DotnetCoreInstaller {
|
|||||||
console.log('Using cached tool');
|
console.log('Using cached tool');
|
||||||
}
|
}
|
||||||
// Need to set this so that .NET Core global tools find the right locations.
|
// Need to set this so that .NET Core global tools find the right locations.
|
||||||
core.exportVariable('DOTNET_ROOT', path.join(toolPath, '../..'));
|
core.exportVariable('DOTNET_ROOT', toolPath);
|
||||||
// Prepend the tools path. instructs the agent to prepend for future tasks
|
// Prepend the tools path. instructs the agent to prepend for future tasks
|
||||||
core.addPath(toolPath);
|
core.addPath(toolPath);
|
||||||
});
|
});
|
||||||
@ -175,39 +174,29 @@ class DotnetCoreInstaller {
|
|||||||
getDownloadUrls(osSuffixes, version) {
|
getDownloadUrls(osSuffixes, version) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
let downloadUrls = [];
|
let downloadUrls = [];
|
||||||
let releasesJSON = yield this.getReleasesJson();
|
const httpCallbackClient = new httpClient.HttpClient('actions/setup-dotnet', [], {});
|
||||||
core.debug('Releases: ' + releasesJSON);
|
const releasesJsonUrl = yield this.getReleasesJsonUrl(httpCallbackClient, version.split('.'));
|
||||||
let releasesInfo = JSON.parse(yield releasesJSON.readBody());
|
let releasesJSON = yield httpCallbackClient.get(releasesJsonUrl);
|
||||||
|
let releasesInfo = JSON.parse(yield releasesJSON.readBody())['releases'];
|
||||||
releasesInfo = releasesInfo.filter((releaseInfo) => {
|
releasesInfo = releasesInfo.filter((releaseInfo) => {
|
||||||
return (releaseInfo['version-sdk'] === version ||
|
return (releaseInfo['sdk']['version'] === version ||
|
||||||
releaseInfo['version-sdk-display'] === version);
|
releaseInfo['sdk']['version-display'] === version);
|
||||||
});
|
});
|
||||||
if (releasesInfo.length != 0) {
|
if (releasesInfo.length != 0) {
|
||||||
let release = releasesInfo[0];
|
let release = releasesInfo[0];
|
||||||
let blobUrl = release['blob-sdk'];
|
let files = release['sdk']['files'];
|
||||||
let dlcUrl = release['dlc--sdk'];
|
files = files.filter((file) => {
|
||||||
let fileName = release['sdk-' + osSuffixes[0]]
|
if (file['rid'] == osSuffixes[0] || file['rid'] == osSuffixes[1]) {
|
||||||
? release['sdk-' + osSuffixes[0]]
|
return (file['url'].endsWith('.zip') || file['url'].endsWith('.tar.gz'));
|
||||||
: release['sdk-' + osSuffixes[1]];
|
}
|
||||||
if (!!fileName) {
|
});
|
||||||
fileName = fileName.trim();
|
if (files.length > 0) {
|
||||||
// For some latest version, the filename itself can be full download url.
|
files.forEach((file) => {
|
||||||
// Do a very basic check for url(instead of regex) as the url is only for downloading and
|
downloadUrls.push(file['url']);
|
||||||
// is coming from .net core releases json and not some ransom user input
|
});
|
||||||
if (fileName.toLowerCase().startsWith('https://')) {
|
|
||||||
downloadUrls.push(fileName);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (!!blobUrl) {
|
throw `The specified version's download links are not correctly formed in the supported versions document => ${releasesJsonUrl}`;
|
||||||
downloadUrls.push(util.format('%s%s', blobUrl.trim(), fileName));
|
|
||||||
}
|
|
||||||
if (!!dlcUrl) {
|
|
||||||
downloadUrls.push(util.format('%s%s', dlcUrl.trim(), fileName));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
throw `The specified version's download links are not correctly formed in the supported versions document => ${DotNetCoreReleasesUrl}`;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -221,9 +210,23 @@ class DotnetCoreInstaller {
|
|||||||
return downloadUrls;
|
return downloadUrls;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
getReleasesJson() {
|
getReleasesJsonUrl(httpCallbackClient, versionParts) {
|
||||||
var httpCallbackClient = new httpClient.HttpClient('setup-dotnet', [], {});
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
return httpCallbackClient.get(DotNetCoreReleasesUrl);
|
const releasesIndex = yield httpCallbackClient.get(DotNetCoreIndexUrl);
|
||||||
|
let releasesInfo = JSON.parse(yield releasesIndex.readBody())['releases-index'];
|
||||||
|
releasesInfo = releasesInfo.filter((info) => {
|
||||||
|
// channel-version is the first 2 elements of the version (e.g. 2.1), filter out versions that don't match 2.1.x.
|
||||||
|
const sdkParts = info['channel-version'].split('.');
|
||||||
|
if (versionParts.length >= 2 && versionParts[1] != 'x') {
|
||||||
|
return versionParts[0] == sdkParts[0] && versionParts[1] == sdkParts[1];
|
||||||
|
}
|
||||||
|
return versionParts[0] == sdkParts[0];
|
||||||
|
});
|
||||||
|
if (releasesInfo.length === 0) {
|
||||||
|
throw `Could not find info for version ${versionParts.join('.')} at ${DotNetCoreIndexUrl}`;
|
||||||
|
}
|
||||||
|
return releasesInfo[0]['releases.json'];
|
||||||
|
});
|
||||||
}
|
}
|
||||||
getFallbackDownloadUrls(version) {
|
getFallbackDownloadUrls(version) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
@ -306,4 +309,4 @@ class DotnetCoreInstaller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports.DotnetCoreInstaller = DotnetCoreInstaller;
|
exports.DotnetCoreInstaller = DotnetCoreInstaller;
|
||||||
const DotNetCoreReleasesUrl = 'https://raw.githubusercontent.com/dotnet/core/master/release-notes/releases.json';
|
const DotNetCoreIndexUrl = 'https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/releases-index.json';
|
||||||
|
@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||||||
const core = __importStar(require("@actions/core"));
|
const core = __importStar(require("@actions/core"));
|
||||||
const installer = __importStar(require("./installer"));
|
const installer = __importStar(require("./installer"));
|
||||||
const path = __importStar(require("path"));
|
const path = __importStar(require("path"));
|
||||||
|
const auth = __importStar(require("./authutil"));
|
||||||
function run() {
|
function run() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
@ -33,6 +34,11 @@ function run() {
|
|||||||
const dotnetInstaller = new installer.DotnetCoreInstaller(version);
|
const dotnetInstaller = new installer.DotnetCoreInstaller(version);
|
||||||
yield dotnetInstaller.installDotnet();
|
yield dotnetInstaller.installDotnet();
|
||||||
}
|
}
|
||||||
|
const sourceUrl = core.getInput('source-url');
|
||||||
|
const configFile = core.getInput('config-file');
|
||||||
|
if (sourceUrl) {
|
||||||
|
auth.configAuthentication(sourceUrl, configFile);
|
||||||
|
}
|
||||||
// TODO: setup proxy from runner proxy config
|
// TODO: setup proxy from runner proxy config
|
||||||
const matchersPath = path.join(__dirname, '..', '.github');
|
const matchersPath = path.join(__dirname, '..', '.github');
|
||||||
console.log(`##[add-matcher]${path.join(matchersPath, 'csc.json')}`);
|
console.log(`##[add-matcher]${path.join(matchersPath, 'csc.json')}`);
|
||||||
|
15
node_modules/.bin/semver
generated
vendored
Normal file
15
node_modules/.bin/semver
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||||
|
|
||||||
|
case `uname` in
|
||||||
|
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -x "$basedir/node" ]; then
|
||||||
|
"$basedir/node" "$basedir/../semver/bin/semver.js" "$@"
|
||||||
|
ret=$?
|
||||||
|
else
|
||||||
|
node "$basedir/../semver/bin/semver.js" "$@"
|
||||||
|
ret=$?
|
||||||
|
fi
|
||||||
|
exit $ret
|
7
node_modules/.bin/semver.cmd
generated
vendored
Normal file
7
node_modules/.bin/semver.cmd
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
@IF EXIST "%~dp0\node.exe" (
|
||||||
|
"%~dp0\node.exe" "%~dp0\..\semver\bin\semver.js" %*
|
||||||
|
) ELSE (
|
||||||
|
@SETLOCAL
|
||||||
|
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
|
node "%~dp0\..\semver\bin\semver.js" %*
|
||||||
|
)
|
15
node_modules/.bin/uuid
generated
vendored
Normal file
15
node_modules/.bin/uuid
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||||
|
|
||||||
|
case `uname` in
|
||||||
|
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -x "$basedir/node" ]; then
|
||||||
|
"$basedir/node" "$basedir/../uuid/bin/uuid" "$@"
|
||||||
|
ret=$?
|
||||||
|
else
|
||||||
|
node "$basedir/../uuid/bin/uuid" "$@"
|
||||||
|
ret=$?
|
||||||
|
fi
|
||||||
|
exit $ret
|
7
node_modules/.bin/uuid.cmd
generated
vendored
Normal file
7
node_modules/.bin/uuid.cmd
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
@IF EXIST "%~dp0\node.exe" (
|
||||||
|
"%~dp0\node.exe" "%~dp0\..\uuid\bin\uuid" %*
|
||||||
|
) ELSE (
|
||||||
|
@SETLOCAL
|
||||||
|
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
|
node "%~dp0\..\uuid\bin\uuid" %*
|
||||||
|
)
|
15
node_modules/.bin/which
generated
vendored
Normal file
15
node_modules/.bin/which
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||||
|
|
||||||
|
case `uname` in
|
||||||
|
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -x "$basedir/node" ]; then
|
||||||
|
"$basedir/node" "$basedir/../which/bin/which" "$@"
|
||||||
|
ret=$?
|
||||||
|
else
|
||||||
|
node "$basedir/../which/bin/which" "$@"
|
||||||
|
ret=$?
|
||||||
|
fi
|
||||||
|
exit $ret
|
7
node_modules/.bin/which.cmd
generated
vendored
Normal file
7
node_modules/.bin/which.cmd
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
@IF EXIST "%~dp0\node.exe" (
|
||||||
|
"%~dp0\node.exe" "%~dp0\..\which\bin\which" %*
|
||||||
|
) ELSE (
|
||||||
|
@SETLOCAL
|
||||||
|
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
|
node "%~dp0\..\which\bin\which" %*
|
||||||
|
)
|
15
node_modules/.bin/xml2js
generated
vendored
Normal file
15
node_modules/.bin/xml2js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||||
|
|
||||||
|
case `uname` in
|
||||||
|
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -x "$basedir/node" ]; then
|
||||||
|
"$basedir/node" "$basedir/../fast-xml-parser/cli.js" "$@"
|
||||||
|
ret=$?
|
||||||
|
else
|
||||||
|
node "$basedir/../fast-xml-parser/cli.js" "$@"
|
||||||
|
ret=$?
|
||||||
|
fi
|
||||||
|
exit $ret
|
7
node_modules/.bin/xml2js.cmd
generated
vendored
Normal file
7
node_modules/.bin/xml2js.cmd
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
@IF EXIST "%~dp0\node.exe" (
|
||||||
|
"%~dp0\node.exe" "%~dp0\..\fast-xml-parser\cli.js" %*
|
||||||
|
) ELSE (
|
||||||
|
@SETLOCAL
|
||||||
|
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
|
node "%~dp0\..\fast-xml-parser\cli.js" %*
|
||||||
|
)
|
109
node_modules/@actions/core/README.md
generated
vendored
109
node_modules/@actions/core/README.md
generated
vendored
@ -4,48 +4,55 @@
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
#### Inputs/Outputs
|
### Import the package
|
||||||
|
|
||||||
You can use this library to get inputs or set outputs:
|
```js
|
||||||
|
// javascript
|
||||||
```
|
|
||||||
const core = require('@actions/core');
|
const core = require('@actions/core');
|
||||||
|
|
||||||
const myInput = core.getInput('inputName', { required: true });
|
// typescript
|
||||||
|
import * as core from '@actions/core';
|
||||||
|
```
|
||||||
|
|
||||||
// Do stuff
|
#### Inputs/Outputs
|
||||||
|
|
||||||
|
Action inputs can be read with `getInput`. Outputs can be set with `setOutput` which makes them available to be mapped into inputs of other actions to ensure they are decoupled.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const myInput = core.getInput('inputName', { required: true });
|
||||||
|
|
||||||
core.setOutput('outputKey', 'outputVal');
|
core.setOutput('outputKey', 'outputVal');
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Exporting variables/secrets
|
#### Exporting variables
|
||||||
|
|
||||||
You can also export variables and secrets for future steps. Variables get set in the environment automatically, while secrets must be scoped into the environment from a workflow using `{{ secret.FOO }}`. Secrets will also be masked from the logs:
|
Since each step runs in a separate process, you can use `exportVariable` to add it to this step and future steps environment blocks.
|
||||||
|
|
||||||
```
|
|
||||||
const core = require('@actions/core');
|
|
||||||
|
|
||||||
// Do stuff
|
|
||||||
|
|
||||||
|
```js
|
||||||
core.exportVariable('envVar', 'Val');
|
core.exportVariable('envVar', 'Val');
|
||||||
core.exportSecret('secretVar', variableWithSecretValue);
|
```
|
||||||
|
|
||||||
|
#### Setting a secret
|
||||||
|
|
||||||
|
Setting a secret registers the secret with the runner to ensure it is masked in logs.
|
||||||
|
|
||||||
|
```js
|
||||||
|
core.setSecret('myPassword');
|
||||||
```
|
```
|
||||||
|
|
||||||
#### PATH Manipulation
|
#### PATH Manipulation
|
||||||
|
|
||||||
You can explicitly add items to the path for all remaining steps in a workflow:
|
To make a tool's path available in the path for the remainder of the job (without altering the machine or containers state), use `addPath`. The runner will prepend the path given to the jobs PATH.
|
||||||
|
|
||||||
```
|
```js
|
||||||
const core = require('@actions/core');
|
core.addPath('/path/to/mytool');
|
||||||
|
|
||||||
core.addPath('pathToTool');
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Exit codes
|
#### Exit codes
|
||||||
|
|
||||||
You should use this library to set the failing exit code for your action:
|
You should use this library to set the failing exit code for your action. If status is not set and the script runs to completion, that will lead to a success.
|
||||||
|
|
||||||
```
|
```js
|
||||||
const core = require('@actions/core');
|
const core = require('@actions/core');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -56,13 +63,15 @@ catch (err) {
|
|||||||
core.setFailed(`Action failed with error ${err}`);
|
core.setFailed(`Action failed with error ${err}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Note that `setNeutral` is not yet implemented in actions V2 but equivalent functionality is being planned.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Logging
|
#### Logging
|
||||||
|
|
||||||
Finally, this library provides some utilities for logging:
|
Finally, this library provides some utilities for logging. Note that debug logging is hidden from the logs by default. This behavior can be toggled by enabling the [Step Debug Logs](../../docs/action-debugging.md#step-debug-logs).
|
||||||
|
|
||||||
```
|
```js
|
||||||
const core = require('@actions/core');
|
const core = require('@actions/core');
|
||||||
|
|
||||||
const myInput = core.getInput('input');
|
const myInput = core.getInput('input');
|
||||||
@ -70,12 +79,62 @@ try {
|
|||||||
core.debug('Inside try block');
|
core.debug('Inside try block');
|
||||||
|
|
||||||
if (!myInput) {
|
if (!myInput) {
|
||||||
core.warning('myInput wasnt set');
|
core.warning('myInput was not set');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do stuff
|
// Do stuff
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
core.error('Error ${err}, action may still succeed though');
|
core.error(`Error ${err}, action may still succeed though`);
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
This library can also wrap chunks of output in foldable groups.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const core = require('@actions/core')
|
||||||
|
|
||||||
|
// Manually wrap output
|
||||||
|
core.startGroup('Do some function')
|
||||||
|
doSomeFunction()
|
||||||
|
core.endGroup()
|
||||||
|
|
||||||
|
// Wrap an asynchronous function call
|
||||||
|
const result = await core.group('Do something async', async () => {
|
||||||
|
const response = await doSomeHTTPRequest()
|
||||||
|
return response
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Action state
|
||||||
|
|
||||||
|
You can use this library to save state and get state for sharing information between a given wrapper action:
|
||||||
|
|
||||||
|
**action.yml**
|
||||||
|
```yaml
|
||||||
|
name: 'Wrapper action sample'
|
||||||
|
inputs:
|
||||||
|
name:
|
||||||
|
default: 'GitHub'
|
||||||
|
runs:
|
||||||
|
using: 'node12'
|
||||||
|
main: 'main.js'
|
||||||
|
post: 'cleanup.js'
|
||||||
|
```
|
||||||
|
|
||||||
|
In action's `main.js`:
|
||||||
|
|
||||||
|
```js
|
||||||
|
const core = require('@actions/core');
|
||||||
|
|
||||||
|
core.saveState("pidToKill", 12345);
|
||||||
|
```
|
||||||
|
|
||||||
|
In action's `cleanup.js`:
|
||||||
|
```js
|
||||||
|
const core = require('@actions/core');
|
||||||
|
|
||||||
|
var pid = core.getState("pidToKill");
|
||||||
|
|
||||||
|
process.kill(pid);
|
||||||
|
```
|
4
node_modules/@actions/core/lib/command.d.ts
generated
vendored
4
node_modules/@actions/core/lib/command.d.ts
generated
vendored
@ -9,8 +9,8 @@ interface CommandProperties {
|
|||||||
*
|
*
|
||||||
* Examples:
|
* Examples:
|
||||||
* ##[warning]This is the user warning message
|
* ##[warning]This is the user warning message
|
||||||
* ##[set-secret name=mypassword]definatelyNotAPassword!
|
* ##[set-secret name=mypassword]definitelyNotAPassword!
|
||||||
*/
|
*/
|
||||||
export declare function issueCommand(command: string, properties: CommandProperties, message: string): void;
|
export declare function issueCommand(command: string, properties: CommandProperties, message: string): void;
|
||||||
export declare function issue(name: string, message: string): void;
|
export declare function issue(name: string, message?: string): void;
|
||||||
export {};
|
export {};
|
||||||
|
12
node_modules/@actions/core/lib/command.js
generated
vendored
12
node_modules/@actions/core/lib/command.js
generated
vendored
@ -9,18 +9,18 @@ const os = require("os");
|
|||||||
*
|
*
|
||||||
* Examples:
|
* Examples:
|
||||||
* ##[warning]This is the user warning message
|
* ##[warning]This is the user warning message
|
||||||
* ##[set-secret name=mypassword]definatelyNotAPassword!
|
* ##[set-secret name=mypassword]definitelyNotAPassword!
|
||||||
*/
|
*/
|
||||||
function issueCommand(command, properties, message) {
|
function issueCommand(command, properties, message) {
|
||||||
const cmd = new Command(command, properties, message);
|
const cmd = new Command(command, properties, message);
|
||||||
process.stdout.write(cmd.toString() + os.EOL);
|
process.stdout.write(cmd.toString() + os.EOL);
|
||||||
}
|
}
|
||||||
exports.issueCommand = issueCommand;
|
exports.issueCommand = issueCommand;
|
||||||
function issue(name, message) {
|
function issue(name, message = '') {
|
||||||
issueCommand(name, {}, message);
|
issueCommand(name, {}, message);
|
||||||
}
|
}
|
||||||
exports.issue = issue;
|
exports.issue = issue;
|
||||||
const CMD_PREFIX = '##[';
|
const CMD_STRING = '::';
|
||||||
class Command {
|
class Command {
|
||||||
constructor(command, properties, message) {
|
constructor(command, properties, message) {
|
||||||
if (!command) {
|
if (!command) {
|
||||||
@ -31,7 +31,7 @@ class Command {
|
|||||||
this.message = message;
|
this.message = message;
|
||||||
}
|
}
|
||||||
toString() {
|
toString() {
|
||||||
let cmdStr = CMD_PREFIX + this.command;
|
let cmdStr = CMD_STRING + this.command;
|
||||||
if (this.properties && Object.keys(this.properties).length > 0) {
|
if (this.properties && Object.keys(this.properties).length > 0) {
|
||||||
cmdStr += ' ';
|
cmdStr += ' ';
|
||||||
for (const key in this.properties) {
|
for (const key in this.properties) {
|
||||||
@ -40,12 +40,12 @@ class Command {
|
|||||||
if (val) {
|
if (val) {
|
||||||
// safely append the val - avoid blowing up when attempting to
|
// safely append the val - avoid blowing up when attempting to
|
||||||
// call .replace() if message is not a string for some reason
|
// call .replace() if message is not a string for some reason
|
||||||
cmdStr += `${key}=${escape(`${val || ''}`)};`;
|
cmdStr += `${key}=${escape(`${val || ''}`)},`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cmdStr += ']';
|
cmdStr += CMD_STRING;
|
||||||
// safely append the message - avoid blowing up when attempting to
|
// safely append the message - avoid blowing up when attempting to
|
||||||
// call .replace() if message is not a string for some reason
|
// call .replace() if message is not a string for some reason
|
||||||
const message = `${this.message || ''}`;
|
const message = `${this.message || ''}`;
|
||||||
|
2
node_modules/@actions/core/lib/command.js.map
generated
vendored
2
node_modules/@actions/core/lib/command.js.map
generated
vendored
@ -1 +1 @@
|
|||||||
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":";;AAAA,yBAAwB;AAQxB;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAC1B,OAAe,EACf,UAA6B,EAC7B,OAAe;IAEf,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;AAC/C,CAAC;AAPD,oCAOC;AAED,SAAgB,KAAK,CAAC,IAAY,EAAE,OAAe;IACjD,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACjC,CAAC;AAFD,sBAEC;AAED,MAAM,UAAU,GAAG,KAAK,CAAA;AAExB,MAAM,OAAO;IAKX,YAAY,OAAe,EAAE,UAA6B,EAAE,OAAe;QACzE,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,iBAAiB,CAAA;SAC5B;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,QAAQ;QACN,IAAI,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,CAAA;QAEtC,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9D,MAAM,IAAI,GAAG,CAAA;YACb,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;oBAChC,IAAI,GAAG,EAAE;wBACP,8DAA8D;wBAC9D,6DAA6D;wBAC7D,MAAM,IAAI,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,CAAA;qBAC9C;iBACF;aACF;SACF;QAED,MAAM,IAAI,GAAG,CAAA;QAEb,kEAAkE;QAClE,6DAA6D;QAC7D,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAA;QACvC,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,CAAA;QAE7B,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,CAAC;SACL,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC"}
|
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":";;AAAA,yBAAwB;AAQxB;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAC1B,OAAe,EACf,UAA6B,EAC7B,OAAe;IAEf,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;AAC/C,CAAC;AAPD,oCAOC;AAED,SAAgB,KAAK,CAAC,IAAY,EAAE,UAAkB,EAAE;IACtD,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACjC,CAAC;AAFD,sBAEC;AAED,MAAM,UAAU,GAAG,IAAI,CAAA;AAEvB,MAAM,OAAO;IAKX,YAAY,OAAe,EAAE,UAA6B,EAAE,OAAe;QACzE,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,iBAAiB,CAAA;SAC5B;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,QAAQ;QACN,IAAI,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,CAAA;QAEtC,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9D,MAAM,IAAI,GAAG,CAAA;YACb,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;oBAChC,IAAI,GAAG,EAAE;wBACP,8DAA8D;wBAC9D,6DAA6D;wBAC7D,MAAM,IAAI,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,CAAA;qBAC9C;iBACF;aACF;SACF;QAED,MAAM,IAAI,UAAU,CAAA;QAEpB,kEAAkE;QAClE,6DAA6D;QAC7D,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAA;QACvC,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,CAAA;QAE7B,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,CAAC;SACL,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC"}
|
49
node_modules/@actions/core/lib/core.d.ts
generated
vendored
49
node_modules/@actions/core/lib/core.d.ts
generated
vendored
@ -19,17 +19,16 @@ export declare enum ExitCode {
|
|||||||
Failure = 1
|
Failure = 1
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* sets env variable for this action and future actions in the job
|
* Sets env variable for this action and future actions in the job
|
||||||
* @param name the name of the variable to set
|
* @param name the name of the variable to set
|
||||||
* @param val the value of the variable
|
* @param val the value of the variable
|
||||||
*/
|
*/
|
||||||
export declare function exportVariable(name: string, val: string): void;
|
export declare function exportVariable(name: string, val: string): void;
|
||||||
/**
|
/**
|
||||||
* exports the variable and registers a secret which will get masked from logs
|
* Registers a secret which will get masked from logs
|
||||||
* @param name the name of the variable to set
|
* @param secret value of the secret
|
||||||
* @param val value of the secret
|
|
||||||
*/
|
*/
|
||||||
export declare function exportSecret(name: string, val: string): void;
|
export declare function setSecret(secret: string): void;
|
||||||
/**
|
/**
|
||||||
* Prepends inputPath to the PATH (for this action and future actions)
|
* Prepends inputPath to the PATH (for this action and future actions)
|
||||||
* @param inputPath
|
* @param inputPath
|
||||||
@ -71,3 +70,43 @@ export declare function error(message: string): void;
|
|||||||
* @param message warning issue message
|
* @param message warning issue message
|
||||||
*/
|
*/
|
||||||
export declare function warning(message: string): void;
|
export declare function warning(message: string): void;
|
||||||
|
/**
|
||||||
|
* Writes info to log with console.log.
|
||||||
|
* @param message info message
|
||||||
|
*/
|
||||||
|
export declare function info(message: string): void;
|
||||||
|
/**
|
||||||
|
* Begin an output group.
|
||||||
|
*
|
||||||
|
* Output until the next `groupEnd` will be foldable in this group
|
||||||
|
*
|
||||||
|
* @param name The name of the output group
|
||||||
|
*/
|
||||||
|
export declare function startGroup(name: string): void;
|
||||||
|
/**
|
||||||
|
* End an output group.
|
||||||
|
*/
|
||||||
|
export declare function endGroup(): void;
|
||||||
|
/**
|
||||||
|
* Wrap an asynchronous function call in a group.
|
||||||
|
*
|
||||||
|
* Returns the same type as the function itself.
|
||||||
|
*
|
||||||
|
* @param name The name of the group
|
||||||
|
* @param fn The function to wrap in the group
|
||||||
|
*/
|
||||||
|
export declare function group<T>(name: string, fn: () => Promise<T>): Promise<T>;
|
||||||
|
/**
|
||||||
|
* Saves state for current action, the state can only be retrieved by this action's post job execution.
|
||||||
|
*
|
||||||
|
* @param name name of the state to store
|
||||||
|
* @param value value to store
|
||||||
|
*/
|
||||||
|
export declare function saveState(name: string, value: string): void;
|
||||||
|
/**
|
||||||
|
* Gets the value of an state set by this action's main execution.
|
||||||
|
*
|
||||||
|
* @param name name of the state to get
|
||||||
|
* @returns string
|
||||||
|
*/
|
||||||
|
export declare function getState(name: string): string;
|
||||||
|
97
node_modules/@actions/core/lib/core.js
generated
vendored
97
node_modules/@actions/core/lib/core.js
generated
vendored
@ -1,6 +1,16 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
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 });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const command_1 = require("./command");
|
const command_1 = require("./command");
|
||||||
|
const os = require("os");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
/**
|
/**
|
||||||
* The code to exit an action
|
* The code to exit an action
|
||||||
@ -20,7 +30,7 @@ var ExitCode;
|
|||||||
// Variables
|
// Variables
|
||||||
//-----------------------------------------------------------------------
|
//-----------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* sets env variable for this action and future actions in the job
|
* Sets env variable for this action and future actions in the job
|
||||||
* @param name the name of the variable to set
|
* @param name the name of the variable to set
|
||||||
* @param val the value of the variable
|
* @param val the value of the variable
|
||||||
*/
|
*/
|
||||||
@ -30,15 +40,13 @@ function exportVariable(name, val) {
|
|||||||
}
|
}
|
||||||
exports.exportVariable = exportVariable;
|
exports.exportVariable = exportVariable;
|
||||||
/**
|
/**
|
||||||
* exports the variable and registers a secret which will get masked from logs
|
* Registers a secret which will get masked from logs
|
||||||
* @param name the name of the variable to set
|
* @param secret value of the secret
|
||||||
* @param val value of the secret
|
|
||||||
*/
|
*/
|
||||||
function exportSecret(name, val) {
|
function setSecret(secret) {
|
||||||
exportVariable(name, val);
|
command_1.issueCommand('add-mask', {}, secret);
|
||||||
command_1.issueCommand('set-secret', {}, val);
|
|
||||||
}
|
}
|
||||||
exports.exportSecret = exportSecret;
|
exports.setSecret = setSecret;
|
||||||
/**
|
/**
|
||||||
* Prepends inputPath to the PATH (for this action and future actions)
|
* Prepends inputPath to the PATH (for this action and future actions)
|
||||||
* @param inputPath
|
* @param inputPath
|
||||||
@ -56,7 +64,7 @@ exports.addPath = addPath;
|
|||||||
* @returns string
|
* @returns string
|
||||||
*/
|
*/
|
||||||
function getInput(name, options) {
|
function getInput(name, options) {
|
||||||
const val = process.env[`INPUT_${name.replace(' ', '_').toUpperCase()}`] || '';
|
const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';
|
||||||
if (options && options.required && !val) {
|
if (options && options.required && !val) {
|
||||||
throw new Error(`Input required and not supplied: ${name}`);
|
throw new Error(`Input required and not supplied: ${name}`);
|
||||||
}
|
}
|
||||||
@ -113,4 +121,75 @@ function warning(message) {
|
|||||||
command_1.issue('warning', message);
|
command_1.issue('warning', message);
|
||||||
}
|
}
|
||||||
exports.warning = warning;
|
exports.warning = warning;
|
||||||
|
/**
|
||||||
|
* Writes info to log with console.log.
|
||||||
|
* @param message info message
|
||||||
|
*/
|
||||||
|
function info(message) {
|
||||||
|
process.stdout.write(message + os.EOL);
|
||||||
|
}
|
||||||
|
exports.info = info;
|
||||||
|
/**
|
||||||
|
* Begin an output group.
|
||||||
|
*
|
||||||
|
* Output until the next `groupEnd` will be foldable in this group
|
||||||
|
*
|
||||||
|
* @param name The name of the output group
|
||||||
|
*/
|
||||||
|
function startGroup(name) {
|
||||||
|
command_1.issue('group', name);
|
||||||
|
}
|
||||||
|
exports.startGroup = startGroup;
|
||||||
|
/**
|
||||||
|
* End an output group.
|
||||||
|
*/
|
||||||
|
function endGroup() {
|
||||||
|
command_1.issue('endgroup');
|
||||||
|
}
|
||||||
|
exports.endGroup = endGroup;
|
||||||
|
/**
|
||||||
|
* Wrap an asynchronous function call in a group.
|
||||||
|
*
|
||||||
|
* Returns the same type as the function itself.
|
||||||
|
*
|
||||||
|
* @param name The name of the group
|
||||||
|
* @param fn The function to wrap in the group
|
||||||
|
*/
|
||||||
|
function group(name, fn) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
startGroup(name);
|
||||||
|
let result;
|
||||||
|
try {
|
||||||
|
result = yield fn();
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
endGroup();
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
exports.group = group;
|
||||||
|
//-----------------------------------------------------------------------
|
||||||
|
// Wrapper action state
|
||||||
|
//-----------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* Saves state for current action, the state can only be retrieved by this action's post job execution.
|
||||||
|
*
|
||||||
|
* @param name name of the state to store
|
||||||
|
* @param value value to store
|
||||||
|
*/
|
||||||
|
function saveState(name, value) {
|
||||||
|
command_1.issueCommand('save-state', { name }, value);
|
||||||
|
}
|
||||||
|
exports.saveState = saveState;
|
||||||
|
/**
|
||||||
|
* Gets the value of an state set by this action's main execution.
|
||||||
|
*
|
||||||
|
* @param name name of the state to get
|
||||||
|
* @returns string
|
||||||
|
*/
|
||||||
|
function getState(name) {
|
||||||
|
return process.env[`STATE_${name}`] || '';
|
||||||
|
}
|
||||||
|
exports.getState = getState;
|
||||||
//# sourceMappingURL=core.js.map
|
//# sourceMappingURL=core.js.map
|
2
node_modules/@actions/core/lib/core.js.map
generated
vendored
2
node_modules/@actions/core/lib/core.js.map
generated
vendored
@ -1 +1 @@
|
|||||||
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":";;AAAA,uCAA6C;AAE7C,6BAA4B;AAU5B;;GAEG;AACH,IAAY,QAUX;AAVD,WAAY,QAAQ;IAClB;;OAEG;IACH,6CAAW,CAAA;IAEX;;OAEG;IACH,6CAAW,CAAA;AACb,CAAC,EAVW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAUnB;AAED,yEAAyE;AACzE,YAAY;AACZ,yEAAyE;AAEzE;;;;GAIG;AACH,SAAgB,cAAc,CAAC,IAAY,EAAE,GAAW;IACtD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;IACvB,sBAAY,CAAC,SAAS,EAAE,EAAC,IAAI,EAAC,EAAE,GAAG,CAAC,CAAA;AACtC,CAAC;AAHD,wCAGC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,IAAY,EAAE,GAAW;IACpD,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACzB,sBAAY,CAAC,YAAY,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;AACrC,CAAC;AAHD,oCAGC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,SAAiB;IACvC,sBAAY,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;AAC7E,CAAC;AAHD,0BAGC;AAED;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAC,IAAY,EAAE,OAAsB;IAC3D,MAAM,GAAG,GACP,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;IACpE,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAA;KAC5D;IAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;AACnB,CAAC;AARD,4BAQC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,IAAY,EAAE,KAAa;IACnD,sBAAY,CAAC,YAAY,EAAE,EAAC,IAAI,EAAC,EAAE,KAAK,CAAC,CAAA;AAC3C,CAAC;AAFD,8BAEC;AAED,yEAAyE;AACzE,UAAU;AACV,yEAAyE;AAEzE;;;;GAIG;AACH,SAAgB,SAAS,CAAC,OAAe;IACvC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAA;IACnC,KAAK,CAAC,OAAO,CAAC,CAAA;AAChB,CAAC;AAHD,8BAGC;AAED,yEAAyE;AACzE,mBAAmB;AACnB,yEAAyE;AAEzE;;;GAGG;AACH,SAAgB,KAAK,CAAC,OAAe;IACnC,sBAAY,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACpC,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACH,SAAgB,KAAK,CAAC,OAAe;IACnC,eAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AACzB,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,OAAe;IACrC,eAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAC3B,CAAC;AAFD,0BAEC"}
|
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
34
node_modules/@actions/core/package.json
generated
vendored
34
node_modules/@actions/core/package.json
generated
vendored
@ -1,29 +1,30 @@
|
|||||||
{
|
{
|
||||||
"_from": "@actions/core@^1.0.0",
|
"_from": "@actions/core@1.2.0",
|
||||||
"_id": "@actions/core@1.0.0",
|
"_id": "@actions/core@1.2.0",
|
||||||
"_inBundle": false,
|
"_inBundle": false,
|
||||||
"_integrity": "sha512-aMIlkx96XH4E/2YZtEOeyrYQfhlas9jIRkfGPqMwXD095Rdkzo4lB6ZmbxPQSzD+e1M+Xsm98ZhuSMYGv/AlqA==",
|
"_integrity": "sha512-ZKdyhlSlyz38S6YFfPnyNgCDZuAF2T0Qv5eHflNWytPS8Qjvz39bZFMry9Bb/dpSnqWcNeav5yM2CTYpJeY+Dw==",
|
||||||
"_location": "/@actions/core",
|
"_location": "/@actions/core",
|
||||||
"_phantomChildren": {},
|
"_phantomChildren": {},
|
||||||
"_requested": {
|
"_requested": {
|
||||||
"type": "range",
|
"type": "version",
|
||||||
"registry": true,
|
"registry": true,
|
||||||
"raw": "@actions/core@^1.0.0",
|
"raw": "@actions/core@1.2.0",
|
||||||
"name": "@actions/core",
|
"name": "@actions/core",
|
||||||
"escapedName": "@actions%2fcore",
|
"escapedName": "@actions%2fcore",
|
||||||
"scope": "@actions",
|
"scope": "@actions",
|
||||||
"rawSpec": "^1.0.0",
|
"rawSpec": "1.2.0",
|
||||||
"saveSpec": null,
|
"saveSpec": null,
|
||||||
"fetchSpec": "^1.0.0"
|
"fetchSpec": "1.2.0"
|
||||||
},
|
},
|
||||||
"_requiredBy": [
|
"_requiredBy": [
|
||||||
|
"#USER",
|
||||||
"/",
|
"/",
|
||||||
"/@actions/tool-cache"
|
"/@actions/tool-cache"
|
||||||
],
|
],
|
||||||
"_resolved": "https://registry.npmjs.org/@actions/core/-/core-1.0.0.tgz",
|
"_resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.0.tgz",
|
||||||
"_shasum": "4a090a2e958cc300b9ea802331034d5faf42d239",
|
"_shasum": "aa5f52b26c362c821d41557e599371a42f6c0b3d",
|
||||||
"_spec": "@actions/core@^1.0.0",
|
"_spec": "@actions/core@1.2.0",
|
||||||
"_where": "C:\\Users\\damccorm\\Documents\\setup-dotnet",
|
"_where": "C:\\Users\\Stanley\\Projects\\GitHub\\setup-dotnet",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/actions/toolkit/issues"
|
"url": "https://github.com/actions/toolkit/issues"
|
||||||
},
|
},
|
||||||
@ -40,11 +41,11 @@
|
|||||||
"files": [
|
"files": [
|
||||||
"lib"
|
"lib"
|
||||||
],
|
],
|
||||||
"gitHead": "a40bce7c8d382aa3dbadaa327acbc696e9390e55",
|
|
||||||
"homepage": "https://github.com/actions/toolkit/tree/master/packages/core",
|
"homepage": "https://github.com/actions/toolkit/tree/master/packages/core",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"core",
|
"github",
|
||||||
"actions"
|
"actions",
|
||||||
|
"core"
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "lib/core.js",
|
"main": "lib/core.js",
|
||||||
@ -54,11 +55,12 @@
|
|||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/actions/toolkit.git"
|
"url": "git+https://github.com/actions/toolkit.git",
|
||||||
|
"directory": "packages/core"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: run tests from root\" && exit 1",
|
"test": "echo \"Error: run tests from root\" && exit 1",
|
||||||
"tsc": "tsc"
|
"tsc": "tsc"
|
||||||
},
|
},
|
||||||
"version": "1.0.0"
|
"version": "1.2.0"
|
||||||
}
|
}
|
||||||
|
19
node_modules/@actions/exec/README.md
generated
vendored
19
node_modules/@actions/exec/README.md
generated
vendored
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
You can use this package to execute your tools on the command line in a cross platform way:
|
You can use this package to execute your tools on the command line in a cross platform way:
|
||||||
|
|
||||||
```
|
```js
|
||||||
const exec = require('@actions/exec');
|
const exec = require('@actions/exec');
|
||||||
|
|
||||||
await exec.exec('node index.js');
|
await exec.exec('node index.js');
|
||||||
@ -16,7 +16,7 @@ await exec.exec('node index.js');
|
|||||||
|
|
||||||
You can also pass in arg arrays:
|
You can also pass in arg arrays:
|
||||||
|
|
||||||
```
|
```js
|
||||||
const exec = require('@actions/exec');
|
const exec = require('@actions/exec');
|
||||||
|
|
||||||
await exec.exec('node', ['index.js', 'foo=bar']);
|
await exec.exec('node', ['index.js', 'foo=bar']);
|
||||||
@ -26,11 +26,11 @@ await exec.exec('node', ['index.js', 'foo=bar']);
|
|||||||
|
|
||||||
Capture output or specify [other options](https://github.com/actions/toolkit/blob/d9347d4ab99fd507c0b9104b2cf79fb44fcc827d/packages/exec/src/interfaces.ts#L5):
|
Capture output or specify [other options](https://github.com/actions/toolkit/blob/d9347d4ab99fd507c0b9104b2cf79fb44fcc827d/packages/exec/src/interfaces.ts#L5):
|
||||||
|
|
||||||
```
|
```js
|
||||||
const exec = require('@actions/exec');
|
const exec = require('@actions/exec');
|
||||||
|
|
||||||
const myOutput = '';
|
let myOutput = '';
|
||||||
const myError = '';
|
let myError = '';
|
||||||
|
|
||||||
const options = {};
|
const options = {};
|
||||||
options.listeners = {
|
options.listeners = {
|
||||||
@ -48,13 +48,10 @@ await exec.exec('node', ['index.js', 'foo=bar'], options);
|
|||||||
|
|
||||||
#### Exec tools not in the PATH
|
#### Exec tools not in the PATH
|
||||||
|
|
||||||
You can use it in conjunction with the `which` function from `@actions/io` to execute tools that are not in the PATH:
|
You can specify the full path for tools not in the PATH:
|
||||||
|
|
||||||
```
|
```js
|
||||||
const exec = require('@actions/exec');
|
const exec = require('@actions/exec');
|
||||||
const io = require('@actions/io');
|
|
||||||
|
|
||||||
const pythonPath: string = await io.which('python', true)
|
await exec.exec('"/path/to/my-tool"', ['arg1']);
|
||||||
|
|
||||||
await exec.exec(`"${pythonPath}"`, ['main.py']);
|
|
||||||
```
|
```
|
||||||
|
3
node_modules/@actions/exec/lib/exec.js
generated
vendored
3
node_modules/@actions/exec/lib/exec.js
generated
vendored
@ -1,9 +1,10 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
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) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
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 rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
2
node_modules/@actions/exec/lib/exec.js.map
generated
vendored
2
node_modules/@actions/exec/lib/exec.js.map
generated
vendored
@ -1 +1 @@
|
|||||||
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":";;;;;;;;;;AACA,mCAAkC;AAElC;;;;;;;;;GASG;AACH,SAAsB,IAAI,CACxB,WAAmB,EACnB,IAAe,EACf,OAAwB;;QAExB,MAAM,WAAW,GAAG,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;QACpD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;SACpE;QACD,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAkB,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QACxE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;IACtB,CAAC;CAAA;AAdD,oBAcC"}
|
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,mCAAkC;AAElC;;;;;;;;;GASG;AACH,SAAsB,IAAI,CACxB,WAAmB,EACnB,IAAe,EACf,OAAwB;;QAExB,MAAM,WAAW,GAAG,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;QACpD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;SACpE;QACD,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAkB,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QACxE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;IACtB,CAAC;CAAA;AAdD,oBAcC"}
|
18
node_modules/@actions/exec/lib/toolrunner.js
generated
vendored
18
node_modules/@actions/exec/lib/toolrunner.js
generated
vendored
@ -1,9 +1,10 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
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) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
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 rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@ -11,6 +12,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||||||
const os = require("os");
|
const os = require("os");
|
||||||
const events = require("events");
|
const events = require("events");
|
||||||
const child = require("child_process");
|
const child = require("child_process");
|
||||||
|
const path = require("path");
|
||||||
|
const io = require("@actions/io");
|
||||||
|
const ioUtil = require("@actions/io/lib/io-util");
|
||||||
/* eslint-disable @typescript-eslint/unbound-method */
|
/* eslint-disable @typescript-eslint/unbound-method */
|
||||||
const IS_WINDOWS = process.platform === 'win32';
|
const IS_WINDOWS = process.platform === 'win32';
|
||||||
/*
|
/*
|
||||||
@ -188,7 +192,7 @@ class ToolRunner extends events.EventEmitter {
|
|||||||
// command line from libuv quoting rules would look like:
|
// command line from libuv quoting rules would look like:
|
||||||
// foo.exe "myarg:\"my val\""
|
// foo.exe "myarg:\"my val\""
|
||||||
//
|
//
|
||||||
// 3) double-up slashes that preceed a quote,
|
// 3) double-up slashes that precede a quote,
|
||||||
// e.g. hello \world => "hello \world"
|
// e.g. hello \world => "hello \world"
|
||||||
// hello\"world => "hello\\""world"
|
// hello\"world => "hello\\""world"
|
||||||
// hello\\"world => "hello\\\\""world"
|
// hello\\"world => "hello\\\\""world"
|
||||||
@ -356,6 +360,16 @@ class ToolRunner extends events.EventEmitter {
|
|||||||
*/
|
*/
|
||||||
exec() {
|
exec() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
// root the tool path if it is unrooted and contains relative pathing
|
||||||
|
if (!ioUtil.isRooted(this.toolPath) &&
|
||||||
|
(this.toolPath.includes('/') ||
|
||||||
|
(IS_WINDOWS && this.toolPath.includes('\\')))) {
|
||||||
|
// prefer options.cwd if it is specified, however options.cwd may also need to be rooted
|
||||||
|
this.toolPath = path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath);
|
||||||
|
}
|
||||||
|
// if the tool is only a file name, then resolve it from the PATH
|
||||||
|
// otherwise verify it exists (add extension on Windows if necessary)
|
||||||
|
this.toolPath = yield io.which(this.toolPath, true);
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
this._debug(`exec tool: ${this.toolPath}`);
|
this._debug(`exec tool: ${this.toolPath}`);
|
||||||
this._debug('arguments:');
|
this._debug('arguments:');
|
||||||
|
2
node_modules/@actions/exec/lib/toolrunner.js.map
generated
vendored
2
node_modules/@actions/exec/lib/toolrunner.js.map
generated
vendored
File diff suppressed because one or more lines are too long
40
node_modules/@actions/exec/package.json
generated
vendored
40
node_modules/@actions/exec/package.json
generated
vendored
@ -1,38 +1,39 @@
|
|||||||
{
|
{
|
||||||
"_from": "@actions/exec@^1.0.0",
|
"_from": "@actions/exec@1.0.2",
|
||||||
"_id": "@actions/exec@1.0.0",
|
"_id": "@actions/exec@1.0.2",
|
||||||
"_inBundle": false,
|
"_inBundle": false,
|
||||||
"_integrity": "sha512-nquH0+XKng+Ll7rZfCojN7NWSbnGh+ltwUJhzfbLkmOJgxocGX2/yXcZLMyT9fa7+tByEow/NSTrBExNlEj9fw==",
|
"_integrity": "sha512-Yo/wfcFuxbVjAaAfvx3aGLhMEuonOahas2jf8BwyA52IkXTAmLi7YVZTpGAQG/lTxuGoNLg9slTWQD4rr7rMDQ==",
|
||||||
"_location": "/@actions/exec",
|
"_location": "/@actions/exec",
|
||||||
"_phantomChildren": {},
|
"_phantomChildren": {},
|
||||||
"_requested": {
|
"_requested": {
|
||||||
"type": "range",
|
"type": "version",
|
||||||
"registry": true,
|
"registry": true,
|
||||||
"raw": "@actions/exec@^1.0.0",
|
"raw": "@actions/exec@1.0.2",
|
||||||
"name": "@actions/exec",
|
"name": "@actions/exec",
|
||||||
"escapedName": "@actions%2fexec",
|
"escapedName": "@actions%2fexec",
|
||||||
"scope": "@actions",
|
"scope": "@actions",
|
||||||
"rawSpec": "^1.0.0",
|
"rawSpec": "1.0.2",
|
||||||
"saveSpec": null,
|
"saveSpec": null,
|
||||||
"fetchSpec": "^1.0.0"
|
"fetchSpec": "1.0.2"
|
||||||
},
|
},
|
||||||
"_requiredBy": [
|
"_requiredBy": [
|
||||||
|
"#USER",
|
||||||
"/",
|
"/",
|
||||||
"/@actions/tool-cache"
|
"/@actions/tool-cache"
|
||||||
],
|
],
|
||||||
"_resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.0.tgz",
|
"_resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.2.tgz",
|
||||||
"_shasum": "70c8b698c9baa02965c07da5f0b185ca56f0a955",
|
"_shasum": "80ae9c2ea0bf5d0046a9f73d2a1b15bddfff0311",
|
||||||
"_spec": "@actions/exec@^1.0.0",
|
"_spec": "@actions/exec@1.0.2",
|
||||||
"_where": "C:\\Users\\damccorm\\Documents\\setup-dotnet",
|
"_where": "C:\\Users\\Stanley\\Projects\\GitHub\\setup-dotnet",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/actions/toolkit/issues"
|
"url": "https://github.com/actions/toolkit/issues"
|
||||||
},
|
},
|
||||||
"bundleDependencies": false,
|
"bundleDependencies": false,
|
||||||
|
"dependencies": {
|
||||||
|
"@actions/io": "^1.0.1"
|
||||||
|
},
|
||||||
"deprecated": false,
|
"deprecated": false,
|
||||||
"description": "Actions exec lib",
|
"description": "Actions exec lib",
|
||||||
"devDependencies": {
|
|
||||||
"@actions/io": "^1.0.0"
|
|
||||||
},
|
|
||||||
"directories": {
|
"directories": {
|
||||||
"lib": "lib",
|
"lib": "lib",
|
||||||
"test": "__tests__"
|
"test": "__tests__"
|
||||||
@ -40,11 +41,11 @@
|
|||||||
"files": [
|
"files": [
|
||||||
"lib"
|
"lib"
|
||||||
],
|
],
|
||||||
"gitHead": "a40bce7c8d382aa3dbadaa327acbc696e9390e55",
|
|
||||||
"homepage": "https://github.com/actions/toolkit/tree/master/packages/exec",
|
"homepage": "https://github.com/actions/toolkit/tree/master/packages/exec",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"exec",
|
"github",
|
||||||
"actions"
|
"actions",
|
||||||
|
"exec"
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "lib/exec.js",
|
"main": "lib/exec.js",
|
||||||
@ -54,11 +55,12 @@
|
|||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/actions/toolkit.git"
|
"url": "git+https://github.com/actions/toolkit.git",
|
||||||
|
"directory": "packages/exec"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: run tests from root\" && exit 1",
|
"test": "echo \"Error: run tests from root\" && exit 1",
|
||||||
"tsc": "tsc"
|
"tsc": "tsc"
|
||||||
},
|
},
|
||||||
"version": "1.0.0"
|
"version": "1.0.2"
|
||||||
}
|
}
|
||||||
|
0
node_modules/@actions/core/LICENSE.md → node_modules/@actions/github/LICENSE.md
generated
vendored
0
node_modules/@actions/core/LICENSE.md → node_modules/@actions/github/LICENSE.md
generated
vendored
50
node_modules/@actions/github/README.md
generated
vendored
Normal file
50
node_modules/@actions/github/README.md
generated
vendored
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# `@actions/github`
|
||||||
|
|
||||||
|
> A hydrated Octokit client.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Returns an Octokit client. See https://octokit.github.io/rest.js for the API.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const github = require('@actions/github');
|
||||||
|
const core = require('@actions/core');
|
||||||
|
|
||||||
|
// This should be a token with access to your repository scoped in as a secret.
|
||||||
|
const myToken = core.getInput('myToken');
|
||||||
|
|
||||||
|
const octokit = new github.GitHub(myToken);
|
||||||
|
|
||||||
|
const { data: pullRequest } = await octokit.pulls.get({
|
||||||
|
owner: 'octokit',
|
||||||
|
repo: 'rest.js',
|
||||||
|
pull_number: 123,
|
||||||
|
mediaType: {
|
||||||
|
format: 'diff'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(pullRequest);
|
||||||
|
```
|
||||||
|
|
||||||
|
You can pass client options (except `auth`, which is handled by the token argument), as specified by [Octokit](https://octokit.github.io/rest.js/), as a second argument to the `GitHub` constructor.
|
||||||
|
|
||||||
|
You can also make GraphQL requests. See https://github.com/octokit/graphql.js for the API.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const result = await octokit.graphql(query, variables);
|
||||||
|
```
|
||||||
|
|
||||||
|
Finally, you can get the context of the current action:
|
||||||
|
|
||||||
|
```js
|
||||||
|
const github = require('@actions/github');
|
||||||
|
|
||||||
|
const context = github.context;
|
||||||
|
|
||||||
|
const newIssue = await octokit.issues.create({
|
||||||
|
...context.repo,
|
||||||
|
title: 'New issue!',
|
||||||
|
body: 'Hello Universe!'
|
||||||
|
});
|
||||||
|
```
|
26
node_modules/@actions/github/lib/context.d.ts
generated
vendored
Normal file
26
node_modules/@actions/github/lib/context.d.ts
generated
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import { WebhookPayload } from './interfaces';
|
||||||
|
export declare class Context {
|
||||||
|
/**
|
||||||
|
* Webhook payload object that triggered the workflow
|
||||||
|
*/
|
||||||
|
payload: WebhookPayload;
|
||||||
|
eventName: string;
|
||||||
|
sha: string;
|
||||||
|
ref: string;
|
||||||
|
workflow: string;
|
||||||
|
action: string;
|
||||||
|
actor: string;
|
||||||
|
/**
|
||||||
|
* Hydrate the context from the environment
|
||||||
|
*/
|
||||||
|
constructor();
|
||||||
|
readonly issue: {
|
||||||
|
owner: string;
|
||||||
|
repo: string;
|
||||||
|
number: number;
|
||||||
|
};
|
||||||
|
readonly repo: {
|
||||||
|
owner: string;
|
||||||
|
repo: string;
|
||||||
|
};
|
||||||
|
}
|
45
node_modules/@actions/github/lib/context.js
generated
vendored
Normal file
45
node_modules/@actions/github/lib/context.js
generated
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
const fs_1 = require("fs");
|
||||||
|
const os_1 = require("os");
|
||||||
|
class Context {
|
||||||
|
/**
|
||||||
|
* Hydrate the context from the environment
|
||||||
|
*/
|
||||||
|
constructor() {
|
||||||
|
this.payload = {};
|
||||||
|
if (process.env.GITHUB_EVENT_PATH) {
|
||||||
|
if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {
|
||||||
|
this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
process.stdout.write(`GITHUB_EVENT_PATH ${process.env.GITHUB_EVENT_PATH} does not exist${os_1.EOL}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.eventName = process.env.GITHUB_EVENT_NAME;
|
||||||
|
this.sha = process.env.GITHUB_SHA;
|
||||||
|
this.ref = process.env.GITHUB_REF;
|
||||||
|
this.workflow = process.env.GITHUB_WORKFLOW;
|
||||||
|
this.action = process.env.GITHUB_ACTION;
|
||||||
|
this.actor = process.env.GITHUB_ACTOR;
|
||||||
|
}
|
||||||
|
get issue() {
|
||||||
|
const payload = this.payload;
|
||||||
|
return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pullRequest || payload).number });
|
||||||
|
}
|
||||||
|
get repo() {
|
||||||
|
if (process.env.GITHUB_REPOSITORY) {
|
||||||
|
const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');
|
||||||
|
return { owner, repo };
|
||||||
|
}
|
||||||
|
if (this.payload.repository) {
|
||||||
|
return {
|
||||||
|
owner: this.payload.repository.owner.login,
|
||||||
|
repo: this.payload.repository.name
|
||||||
|
};
|
||||||
|
}
|
||||||
|
throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.Context = Context;
|
||||||
|
//# sourceMappingURL=context.js.map
|
1
node_modules/@actions/github/lib/context.js.map
generated
vendored
Normal file
1
node_modules/@actions/github/lib/context.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;AAEA,2BAA2C;AAC3C,2BAAsB;AAEtB,MAAa,OAAO;IAalB;;OAEG;IACH;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;YACjC,IAAI,eAAU,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;gBAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CACvB,iBAAY,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAChE,CAAA;aACF;iBAAM;gBACL,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qBACE,OAAO,CAAC,GAAG,CAAC,iBACd,kBAAkB,QAAG,EAAE,CACxB,CAAA;aACF;SACF;QACD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAA2B,CAAA;QACxD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAoB,CAAA;QAC3C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAoB,CAAA;QAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAyB,CAAA;QACrD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAuB,CAAA;QACjD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAsB,CAAA;IACjD,CAAC;IAED,IAAI,KAAK;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAE5B,uCACK,IAAI,CAAC,IAAI,KACZ,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC,MAAM,IACjE;IACH,CAAC;IAED,IAAI,IAAI;QACN,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;YACjC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC9D,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,CAAA;SACrB;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YAC3B,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK;gBAC1C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;aACnC,CAAA;SACF;QAED,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;IACH,CAAC;CACF;AAjED,0BAiEC"}
|
8
node_modules/@actions/github/lib/github.d.ts
generated
vendored
Normal file
8
node_modules/@actions/github/lib/github.d.ts
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import { GraphQlQueryResponse, Variables } from '@octokit/graphql';
|
||||||
|
import Octokit from '@octokit/rest';
|
||||||
|
import * as Context from './context';
|
||||||
|
export declare const context: Context.Context;
|
||||||
|
export declare class GitHub extends Octokit {
|
||||||
|
graphql: (query: string, variables?: Variables) => Promise<GraphQlQueryResponse>;
|
||||||
|
constructor(token: string, opts?: Omit<Octokit.Options, 'auth'>);
|
||||||
|
}
|
29
node_modules/@actions/github/lib/github.js
generated
vendored
Normal file
29
node_modules/@actions/github/lib/github.js
generated
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
"use strict";
|
||||||
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
|
};
|
||||||
|
var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
|
if (mod && mod.__esModule) return mod;
|
||||||
|
var result = {};
|
||||||
|
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
||||||
|
result["default"] = mod;
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
// Originally pulled from https://github.com/JasonEtco/actions-toolkit/blob/master/src/github.ts
|
||||||
|
const graphql_1 = require("@octokit/graphql");
|
||||||
|
const rest_1 = __importDefault(require("@octokit/rest"));
|
||||||
|
const Context = __importStar(require("./context"));
|
||||||
|
// We need this in order to extend Octokit
|
||||||
|
rest_1.default.prototype = new rest_1.default();
|
||||||
|
exports.context = new Context.Context();
|
||||||
|
class GitHub extends rest_1.default {
|
||||||
|
constructor(token, opts = {}) {
|
||||||
|
super(Object.assign(Object.assign({}, opts), { auth: `token ${token}` }));
|
||||||
|
this.graphql = graphql_1.defaults({
|
||||||
|
headers: { authorization: `token ${token}` }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.GitHub = GitHub;
|
||||||
|
//# sourceMappingURL=github.js.map
|
1
node_modules/@actions/github/lib/github.js.map
generated
vendored
Normal file
1
node_modules/@actions/github/lib/github.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gGAAgG;AAChG,8CAA0E;AAC1E,yDAAmC;AACnC,mDAAoC;AAEpC,0CAA0C;AAC1C,cAAO,CAAC,SAAS,GAAG,IAAI,cAAO,EAAE,CAAA;AAEpB,QAAA,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;AAE5C,MAAa,MAAO,SAAQ,cAAO;IAMjC,YAAY,KAAa,EAAE,OAAsC,EAAE;QACjE,KAAK,iCAAK,IAAI,KAAE,IAAI,EAAE,SAAS,KAAK,EAAE,IAAE,CAAA;QACxC,IAAI,CAAC,OAAO,GAAG,kBAAQ,CAAC;YACtB,OAAO,EAAE,EAAC,aAAa,EAAE,SAAS,KAAK,EAAE,EAAC;SAC3C,CAAC,CAAA;IACJ,CAAC;CACF;AAZD,wBAYC"}
|
36
node_modules/@actions/github/lib/interfaces.d.ts
generated
vendored
Normal file
36
node_modules/@actions/github/lib/interfaces.d.ts
generated
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
export interface PayloadRepository {
|
||||||
|
[key: string]: any;
|
||||||
|
full_name?: string;
|
||||||
|
name: string;
|
||||||
|
owner: {
|
||||||
|
[key: string]: any;
|
||||||
|
login: string;
|
||||||
|
name?: string;
|
||||||
|
};
|
||||||
|
html_url?: string;
|
||||||
|
}
|
||||||
|
export interface WebhookPayload {
|
||||||
|
[key: string]: any;
|
||||||
|
repository?: PayloadRepository;
|
||||||
|
issue?: {
|
||||||
|
[key: string]: any;
|
||||||
|
number: number;
|
||||||
|
html_url?: string;
|
||||||
|
body?: string;
|
||||||
|
};
|
||||||
|
pull_request?: {
|
||||||
|
[key: string]: any;
|
||||||
|
number: number;
|
||||||
|
html_url?: string;
|
||||||
|
body?: string;
|
||||||
|
};
|
||||||
|
sender?: {
|
||||||
|
[key: string]: any;
|
||||||
|
type: string;
|
||||||
|
};
|
||||||
|
action?: string;
|
||||||
|
installation?: {
|
||||||
|
id: number;
|
||||||
|
[key: string]: any;
|
||||||
|
};
|
||||||
|
}
|
4
node_modules/@actions/github/lib/interfaces.js
generated
vendored
Normal file
4
node_modules/@actions/github/lib/interfaces.js
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
"use strict";
|
||||||
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
//# sourceMappingURL=interfaces.js.map
|
1
node_modules/@actions/github/lib/interfaces.js.map
generated
vendored
Normal file
1
node_modules/@actions/github/lib/interfaces.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";AAAA,uDAAuD"}
|
71
node_modules/@actions/github/package.json
generated
vendored
Normal file
71
node_modules/@actions/github/package.json
generated
vendored
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
{
|
||||||
|
"_args": [
|
||||||
|
[
|
||||||
|
"@actions/github@1.1.0",
|
||||||
|
"C:\\dev\\repos\\actions\\setup-dotnet"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"_from": "@actions/github@1.1.0",
|
||||||
|
"_id": "@actions/github@1.1.0",
|
||||||
|
"_inBundle": false,
|
||||||
|
"_integrity": "sha512-cHf6PyoNMdei13jEdGPhKprIMFmjVVW/dnM5/9QmQDJ1ZTaGVyezUSCUIC/ySNLRvDUpeFwPYMdThSEJldSbUw==",
|
||||||
|
"_location": "/@actions/github",
|
||||||
|
"_phantomChildren": {},
|
||||||
|
"_requested": {
|
||||||
|
"type": "version",
|
||||||
|
"registry": true,
|
||||||
|
"raw": "@actions/github@1.1.0",
|
||||||
|
"name": "@actions/github",
|
||||||
|
"escapedName": "@actions%2fgithub",
|
||||||
|
"scope": "@actions",
|
||||||
|
"rawSpec": "1.1.0",
|
||||||
|
"saveSpec": null,
|
||||||
|
"fetchSpec": "1.1.0"
|
||||||
|
},
|
||||||
|
"_requiredBy": [
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
"_resolved": "https://registry.npmjs.org/@actions/github/-/github-1.1.0.tgz",
|
||||||
|
"_spec": "1.1.0",
|
||||||
|
"_where": "C:\\dev\\repos\\actions\\setup-dotnet",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/actions/toolkit/issues"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@octokit/graphql": "^2.0.1",
|
||||||
|
"@octokit/rest": "^16.15.0"
|
||||||
|
},
|
||||||
|
"description": "Actions github lib",
|
||||||
|
"devDependencies": {
|
||||||
|
"jest": "^24.7.1"
|
||||||
|
},
|
||||||
|
"directories": {
|
||||||
|
"lib": "lib",
|
||||||
|
"test": "__tests__"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"lib"
|
||||||
|
],
|
||||||
|
"gitHead": "a2ab4bcf78e4f7080f0d45856e6eeba16f0bbc52",
|
||||||
|
"homepage": "https://github.com/actions/toolkit/tree/master/packages/github",
|
||||||
|
"keywords": [
|
||||||
|
"github",
|
||||||
|
"actions"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"main": "lib/github.js",
|
||||||
|
"name": "@actions/github",
|
||||||
|
"publishConfig": {
|
||||||
|
"access": "public"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/actions/toolkit.git"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"build": "tsc",
|
||||||
|
"test": "jest",
|
||||||
|
"tsc": "tsc"
|
||||||
|
},
|
||||||
|
"version": "1.1.0"
|
||||||
|
}
|
8
node_modules/@actions/io/README.md
generated
vendored
8
node_modules/@actions/io/README.md
generated
vendored
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Recursively make a directory. Follows rules specified in [man mkdir](https://linux.die.net/man/1/mkdir) with the `-p` option specified:
|
Recursively make a directory. Follows rules specified in [man mkdir](https://linux.die.net/man/1/mkdir) with the `-p` option specified:
|
||||||
|
|
||||||
```
|
```js
|
||||||
const io = require('@actions/io');
|
const io = require('@actions/io');
|
||||||
|
|
||||||
await io.mkdirP('path/to/make');
|
await io.mkdirP('path/to/make');
|
||||||
@ -18,7 +18,7 @@ await io.mkdirP('path/to/make');
|
|||||||
|
|
||||||
Copy or move files or folders. Follows rules specified in [man cp](https://linux.die.net/man/1/cp) and [man mv](https://linux.die.net/man/1/mv):
|
Copy or move files or folders. Follows rules specified in [man cp](https://linux.die.net/man/1/cp) and [man mv](https://linux.die.net/man/1/mv):
|
||||||
|
|
||||||
```
|
```js
|
||||||
const io = require('@actions/io');
|
const io = require('@actions/io');
|
||||||
|
|
||||||
// Recursive must be true for directories
|
// Recursive must be true for directories
|
||||||
@ -32,7 +32,7 @@ await io.mv('path/to/file', 'path/to/dest');
|
|||||||
|
|
||||||
Remove a file or folder recursively. Follows rules specified in [man rm](https://linux.die.net/man/1/rm) with the `-r` and `-f` rules specified.
|
Remove a file or folder recursively. Follows rules specified in [man rm](https://linux.die.net/man/1/rm) with the `-r` and `-f` rules specified.
|
||||||
|
|
||||||
```
|
```js
|
||||||
const io = require('@actions/io');
|
const io = require('@actions/io');
|
||||||
|
|
||||||
await io.rmRF('path/to/directory');
|
await io.rmRF('path/to/directory');
|
||||||
@ -43,7 +43,7 @@ await io.rmRF('path/to/file');
|
|||||||
|
|
||||||
Get the path to a tool and resolves via paths. Follows the rules specified in [man which](https://linux.die.net/man/1/which).
|
Get the path to a tool and resolves via paths. Follows the rules specified in [man which](https://linux.die.net/man/1/which).
|
||||||
|
|
||||||
```
|
```js
|
||||||
const exec = require('@actions/exec');
|
const exec = require('@actions/exec');
|
||||||
const io = require('@actions/io');
|
const io = require('@actions/io');
|
||||||
|
|
||||||
|
3
node_modules/@actions/io/lib/io-util.js
generated
vendored
3
node_modules/@actions/io/lib/io-util.js
generated
vendored
@ -1,9 +1,10 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
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) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
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 rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
2
node_modules/@actions/io/lib/io-util.js.map
generated
vendored
2
node_modules/@actions/io/lib/io-util.js.map
generated
vendored
@ -1 +1 @@
|
|||||||
{"version":3,"file":"io-util.js","sourceRoot":"","sources":["../src/io-util.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAAyB;AACzB,yBAAwB;AACxB,6BAA4B;AAEf,gBAYE,qTAAA;AAEF,QAAA,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAA;AAEtD,SAAsB,MAAM,CAAC,MAAc;;QACzC,IAAI;YACF,MAAM,YAAI,CAAC,MAAM,CAAC,CAAA;SACnB;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzB,OAAO,KAAK,CAAA;aACb;YAED,MAAM,GAAG,CAAA;SACV;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CAAA;AAZD,wBAYC;AAED,SAAsB,WAAW,CAC/B,MAAc,EACd,UAAmB,KAAK;;QAExB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,aAAK,CAAC,MAAM,CAAC,CAAA;QAChE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAA;IAC5B,CAAC;CAAA;AAND,kCAMC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,CAAS;IAChC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAI,CAAC,CAAC,EAAE;QACN,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;KAC5D;IAED,IAAI,kBAAU,EAAE;QACd,OAAO,CACL,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,8BAA8B;SACxE,CAAA,CAAC,sBAAsB;KACzB;IAED,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC;AAbD,4BAaC;AAED;;;;;;;;;GASG;AACH,SAAsB,MAAM,CAC1B,MAAc,EACd,WAAmB,IAAI,EACvB,QAAgB,CAAC;;QAEjB,WAAE,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAA;QAE9C,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAE7B,IAAI,KAAK,IAAI,QAAQ;YAAE,OAAO,aAAK,CAAC,MAAM,CAAC,CAAA;QAE3C,IAAI;YACF,MAAM,aAAK,CAAC,MAAM,CAAC,CAAA;YACnB,OAAM;SACP;QAAC,OAAO,GAAG,EAAE;YACZ,QAAQ,GAAG,CAAC,IAAI,EAAE;gBAChB,KAAK,QAAQ,CAAC,CAAC;oBACb,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;oBACvD,MAAM,aAAK,CAAC,MAAM,CAAC,CAAA;oBACnB,OAAM;iBACP;gBACD,OAAO,CAAC,CAAC;oBACP,IAAI,KAAe,CAAA;oBAEnB,IAAI;wBACF,KAAK,GAAG,MAAM,YAAI,CAAC,MAAM,CAAC,CAAA;qBAC3B;oBAAC,OAAO,IAAI,EAAE;wBACb,MAAM,GAAG,CAAA;qBACV;oBAED,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;wBAAE,MAAM,GAAG,CAAA;iBACpC;aACF;SACF;IACH,CAAC;CAAA;AAlCD,wBAkCC;AAED;;;;;GAKG;AACH,SAAsB,oBAAoB,CACxC,QAAgB,EAChB,UAAoB;;QAEpB,IAAI,KAAK,GAAyB,SAAS,CAAA;QAC3C,IAAI;YACF,mBAAmB;YACnB,KAAK,GAAG,MAAM,YAAI,CAAC,QAAQ,CAAC,CAAA;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzB,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CACT,uEAAuE,QAAQ,MAAM,GAAG,EAAE,CAC3F,CAAA;aACF;SACF;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;YAC3B,IAAI,kBAAU,EAAE;gBACd,uCAAuC;gBACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;gBACrD,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAE;oBACpE,OAAO,QAAQ,CAAA;iBAChB;aACF;iBAAM;gBACL,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;oBAC3B,OAAO,QAAQ,CAAA;iBAChB;aACF;SACF;QAED,qBAAqB;QACrB,MAAM,gBAAgB,GAAG,QAAQ,CAAA;QACjC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAAA;YAEvC,KAAK,GAAG,SAAS,CAAA;YACjB,IAAI;gBACF,KAAK,GAAG,MAAM,YAAI,CAAC,QAAQ,CAAC,CAAA;aAC7B;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;oBACzB,sCAAsC;oBACtC,OAAO,CAAC,GAAG,CACT,uEAAuE,QAAQ,MAAM,GAAG,EAAE,CAC3F,CAAA;iBACF;aACF;YAED,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;gBAC3B,IAAI,kBAAU,EAAE;oBACd,yEAAyE;oBACzE,IAAI;wBACF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;wBACxC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;wBACvD,KAAK,MAAM,UAAU,IAAI,MAAM,eAAO,CAAC,SAAS,CAAC,EAAE;4BACjD,IAAI,SAAS,KAAK,UAAU,CAAC,WAAW,EAAE,EAAE;gCAC1C,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;gCAC3C,MAAK;6BACN;yBACF;qBACF;oBAAC,OAAO,GAAG,EAAE;wBACZ,sCAAsC;wBACtC,OAAO,CAAC,GAAG,CACT,yEAAyE,QAAQ,MAAM,GAAG,EAAE,CAC7F,CAAA;qBACF;oBAED,OAAO,QAAQ,CAAA;iBAChB;qBAAM;oBACL,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;wBAC3B,OAAO,QAAQ,CAAA;qBAChB;iBACF;aACF;SACF;QAED,OAAO,EAAE,CAAA;IACX,CAAC;CAAA;AA5ED,oDA4EC;AAED,SAAS,mBAAmB,CAAC,CAAS;IACpC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;IACX,IAAI,kBAAU,EAAE;QACd,6BAA6B;QAC7B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAE1B,2BAA2B;QAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;KACjC;IAED,2BAA2B;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACjC,CAAC;AAED,qCAAqC;AACrC,6BAA6B;AAC7B,6BAA6B;AAC7B,SAAS,gBAAgB,CAAC,KAAe;IACvC,OAAO,CACL,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QACxD,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAC1D,CAAA;AACH,CAAC"}
|
{"version":3,"file":"io-util.js","sourceRoot":"","sources":["../src/io-util.ts"],"names":[],"mappings":"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"}
|
7
node_modules/@actions/io/lib/io.js
generated
vendored
7
node_modules/@actions/io/lib/io.js
generated
vendored
@ -1,9 +1,10 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
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) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
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 rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@ -204,9 +205,9 @@ function which(tool, check) {
|
|||||||
}
|
}
|
||||||
// build the list of directories
|
// build the list of directories
|
||||||
//
|
//
|
||||||
// Note, technically "where" checks the current directory on Windows. From a task lib perspective,
|
// Note, technically "where" checks the current directory on Windows. From a toolkit perspective,
|
||||||
// it feels like we should not do this. Checking the current directory seems like more of a use
|
// it feels like we should not do this. Checking the current directory seems like more of a use
|
||||||
// case of a shell, and the which() function exposed by the task lib should strive for consistency
|
// case of a shell, and the which() function exposed by the toolkit should strive for consistency
|
||||||
// across platforms.
|
// across platforms.
|
||||||
const directories = [];
|
const directories = [];
|
||||||
if (process.env.PATH) {
|
if (process.env.PATH) {
|
||||||
|
2
node_modules/@actions/io/lib/io.js.map
generated
vendored
2
node_modules/@actions/io/lib/io.js.map
generated
vendored
File diff suppressed because one or more lines are too long
33
node_modules/@actions/io/package.json
generated
vendored
33
node_modules/@actions/io/package.json
generated
vendored
@ -1,29 +1,31 @@
|
|||||||
{
|
{
|
||||||
"_from": "@actions/io@^1.0.0",
|
"_from": "@actions/io@1.0.1",
|
||||||
"_id": "@actions/io@1.0.0",
|
"_id": "@actions/io@1.0.1",
|
||||||
"_inBundle": false,
|
"_inBundle": false,
|
||||||
"_integrity": "sha512-ezrJSRdqtXtdx1WXlfYL85+40F7gB39jCK9P0jZVODW3W6xUYmu6ZOEc/UmmElUwhRyDRm1R4yNZu1Joq2kuQg==",
|
"_integrity": "sha512-rhq+tfZukbtaus7xyUtwKfuiCRXd1hWSfmJNEpFgBQJ4woqPEpsBw04awicjwz9tyG2/MVhAEMfVn664Cri5zA==",
|
||||||
"_location": "/@actions/io",
|
"_location": "/@actions/io",
|
||||||
"_phantomChildren": {},
|
"_phantomChildren": {},
|
||||||
"_requested": {
|
"_requested": {
|
||||||
"type": "range",
|
"type": "version",
|
||||||
"registry": true,
|
"registry": true,
|
||||||
"raw": "@actions/io@^1.0.0",
|
"raw": "@actions/io@1.0.1",
|
||||||
"name": "@actions/io",
|
"name": "@actions/io",
|
||||||
"escapedName": "@actions%2fio",
|
"escapedName": "@actions%2fio",
|
||||||
"scope": "@actions",
|
"scope": "@actions",
|
||||||
"rawSpec": "^1.0.0",
|
"rawSpec": "1.0.1",
|
||||||
"saveSpec": null,
|
"saveSpec": null,
|
||||||
"fetchSpec": "^1.0.0"
|
"fetchSpec": "1.0.1"
|
||||||
},
|
},
|
||||||
"_requiredBy": [
|
"_requiredBy": [
|
||||||
|
"#USER",
|
||||||
"/",
|
"/",
|
||||||
|
"/@actions/exec",
|
||||||
"/@actions/tool-cache"
|
"/@actions/tool-cache"
|
||||||
],
|
],
|
||||||
"_resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.0.tgz",
|
"_resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.1.tgz",
|
||||||
"_shasum": "379454174660623bb5b3bce0be8b9e2285a62bcb",
|
"_shasum": "81a9418fe2bbdef2d2717a8e9f85188b9c565aca",
|
||||||
"_spec": "@actions/io@^1.0.0",
|
"_spec": "@actions/io@1.0.1",
|
||||||
"_where": "C:\\Users\\damccorm\\Documents\\setup-dotnet",
|
"_where": "C:\\Users\\Stanley\\Projects\\GitHub\\setup-dotnet",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/actions/toolkit/issues"
|
"url": "https://github.com/actions/toolkit/issues"
|
||||||
},
|
},
|
||||||
@ -37,11 +39,12 @@
|
|||||||
"files": [
|
"files": [
|
||||||
"lib"
|
"lib"
|
||||||
],
|
],
|
||||||
"gitHead": "a40bce7c8d382aa3dbadaa327acbc696e9390e55",
|
"gitHead": "a2ab4bcf78e4f7080f0d45856e6eeba16f0bbc52",
|
||||||
"homepage": "https://github.com/actions/toolkit/tree/master/packages/io",
|
"homepage": "https://github.com/actions/toolkit/tree/master/packages/io",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"io",
|
"github",
|
||||||
"actions"
|
"actions",
|
||||||
|
"io"
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "lib/io.js",
|
"main": "lib/io.js",
|
||||||
@ -57,5 +60,5 @@
|
|||||||
"test": "echo \"Error: run tests from root\" && exit 1",
|
"test": "echo \"Error: run tests from root\" && exit 1",
|
||||||
"tsc": "tsc"
|
"tsc": "tsc"
|
||||||
},
|
},
|
||||||
"version": "1.0.0"
|
"version": "1.0.1"
|
||||||
}
|
}
|
||||||
|
22
node_modules/@actions/tool-cache/README.md
generated
vendored
22
node_modules/@actions/tool-cache/README.md
generated
vendored
@ -8,29 +8,29 @@
|
|||||||
|
|
||||||
You can use this to download tools (or other files) from a download URL:
|
You can use this to download tools (or other files) from a download URL:
|
||||||
|
|
||||||
```
|
```js
|
||||||
const tc = require('@actions/tool-cache');
|
const tc = require('@actions/tool-cache');
|
||||||
|
|
||||||
const node12Path = await tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
|
const node12Path = await tc.downloadTool('https://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Extract
|
#### Extract
|
||||||
|
|
||||||
These can then be extracted in platform specific ways:
|
These can then be extracted in platform specific ways:
|
||||||
|
|
||||||
```
|
```js
|
||||||
const tc = require('@actions/tool-cache');
|
const tc = require('@actions/tool-cache');
|
||||||
|
|
||||||
if (process.platform === 'win32') {
|
if (process.platform === 'win32') {
|
||||||
tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-win-x64.zip');
|
const node12Path = tc.downloadTool('https://nodejs.org/dist/v12.7.0/node-v12.7.0-win-x64.zip');
|
||||||
const node12ExtractedFolder = await tc.extractZip(node12Path, 'path/to/extract/to');
|
const node12ExtractedFolder = await tc.extractZip(node12Path, 'path/to/extract/to');
|
||||||
|
|
||||||
// Or alternately
|
// Or alternately
|
||||||
tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-win-x64.7z');
|
const node12Path = tc.downloadTool('https://nodejs.org/dist/v12.7.0/node-v12.7.0-win-x64.7z');
|
||||||
const node12ExtractedFolder = await tc.extract7z(node12Path, 'path/to/extract/to');
|
const node12ExtractedFolder = await tc.extract7z(node12Path, 'path/to/extract/to');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const node12Path = await tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
|
const node12Path = await tc.downloadTool('https://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
|
||||||
const node12ExtractedFolder = await tc.extractTar(node12Path, 'path/to/extract/to');
|
const node12ExtractedFolder = await tc.extractTar(node12Path, 'path/to/extract/to');
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -41,11 +41,11 @@ Finally, you can cache these directories in our tool-cache. This is useful if yo
|
|||||||
|
|
||||||
You'll often want to add it to the path as part of this step:
|
You'll often want to add it to the path as part of this step:
|
||||||
|
|
||||||
```
|
```js
|
||||||
const tc = require('@actions/tool-cache');
|
const tc = require('@actions/tool-cache');
|
||||||
const core = require('@actions/core');
|
const core = require('@actions/core');
|
||||||
|
|
||||||
const node12Path = await tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
|
const node12Path = await tc.downloadTool('https://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
|
||||||
const node12ExtractedFolder = await tc.extractTar(node12Path, 'path/to/extract/to');
|
const node12ExtractedFolder = await tc.extractTar(node12Path, 'path/to/extract/to');
|
||||||
|
|
||||||
const cachedPath = await tc.cacheDir(node12ExtractedFolder, 'node', '12.7.0');
|
const cachedPath = await tc.cacheDir(node12ExtractedFolder, 'node', '12.7.0');
|
||||||
@ -54,7 +54,7 @@ core.addPath(cachedPath);
|
|||||||
|
|
||||||
You can also cache files for reuse.
|
You can also cache files for reuse.
|
||||||
|
|
||||||
```
|
```js
|
||||||
const tc = require('@actions/tool-cache');
|
const tc = require('@actions/tool-cache');
|
||||||
|
|
||||||
tc.cacheFile('path/to/exe', 'destFileName.exe', 'myExeName', '1.1.0');
|
tc.cacheFile('path/to/exe', 'destFileName.exe', 'myExeName', '1.1.0');
|
||||||
@ -64,7 +64,7 @@ tc.cacheFile('path/to/exe', 'destFileName.exe', 'myExeName', '1.1.0');
|
|||||||
|
|
||||||
Finally, you can find directories and files you've previously cached:
|
Finally, you can find directories and files you've previously cached:
|
||||||
|
|
||||||
```
|
```js
|
||||||
const tc = require('@actions/tool-cache');
|
const tc = require('@actions/tool-cache');
|
||||||
const core = require('@actions/core');
|
const core = require('@actions/core');
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ core.addPath(nodeDirectory);
|
|||||||
|
|
||||||
You can even find all cached versions of a tool:
|
You can even find all cached versions of a tool:
|
||||||
|
|
||||||
```
|
```js
|
||||||
const tc = require('@actions/tool-cache');
|
const tc = require('@actions/tool-cache');
|
||||||
|
|
||||||
const allNodeVersions = tc.findAllVersions('node');
|
const allNodeVersions = tc.findAllVersions('node');
|
||||||
|
3
node_modules/@actions/tool-cache/lib/tool-cache.d.ts
generated
vendored
3
node_modules/@actions/tool-cache/lib/tool-cache.d.ts
generated
vendored
@ -30,9 +30,10 @@ export declare function extract7z(file: string, dest?: string, _7zPath?: string)
|
|||||||
*
|
*
|
||||||
* @param file path to the tar
|
* @param file path to the tar
|
||||||
* @param dest destination directory. Optional.
|
* @param dest destination directory. Optional.
|
||||||
|
* @param flags flags for the tar. Optional.
|
||||||
* @returns path to the destination directory
|
* @returns path to the destination directory
|
||||||
*/
|
*/
|
||||||
export declare function extractTar(file: string, dest?: string): Promise<string>;
|
export declare function extractTar(file: string, dest?: string, flags?: string): Promise<string>;
|
||||||
/**
|
/**
|
||||||
* Extract a zip
|
* Extract a zip
|
||||||
*
|
*
|
||||||
|
10
node_modules/@actions/tool-cache/lib/tool-cache.js
generated
vendored
10
node_modules/@actions/tool-cache/lib/tool-cache.js
generated
vendored
@ -1,9 +1,10 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
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) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
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 rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@ -185,16 +186,17 @@ exports.extract7z = extract7z;
|
|||||||
*
|
*
|
||||||
* @param file path to the tar
|
* @param file path to the tar
|
||||||
* @param dest destination directory. Optional.
|
* @param dest destination directory. Optional.
|
||||||
|
* @param flags flags for the tar. Optional.
|
||||||
* @returns path to the destination directory
|
* @returns path to the destination directory
|
||||||
*/
|
*/
|
||||||
function extractTar(file, dest) {
|
function extractTar(file, dest, flags = 'xz') {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
if (!file) {
|
if (!file) {
|
||||||
throw new Error("parameter 'file' is required");
|
throw new Error("parameter 'file' is required");
|
||||||
}
|
}
|
||||||
dest = dest || (yield _createExtractFolder(dest));
|
dest = dest || (yield _createExtractFolder(dest));
|
||||||
const tarPath = yield io.which('tar', true);
|
const tarPath = yield io.which('tar', true);
|
||||||
yield exec_1.exec(`"${tarPath}"`, ['xzC', dest, '-f', file]);
|
yield exec_1.exec(`"${tarPath}"`, [flags, '-C', dest, '-f', file]);
|
||||||
return dest;
|
return dest;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -245,7 +247,7 @@ function extractZipWin(file, dest) {
|
|||||||
}
|
}
|
||||||
function extractZipNix(file, dest) {
|
function extractZipNix(file, dest) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const unzipPath = path.join(__dirname, '..', 'scripts', 'externals', 'unzip');
|
const unzipPath = yield io.which('unzip');
|
||||||
yield exec_1.exec(`"${unzipPath}"`, [file], { cwd: dest });
|
yield exec_1.exec(`"${unzipPath}"`, [file], { cwd: dest });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
2
node_modules/@actions/tool-cache/lib/tool-cache.js.map
generated
vendored
2
node_modules/@actions/tool-cache/lib/tool-cache.js.map
generated
vendored
File diff suppressed because one or more lines are too long
37
node_modules/@actions/tool-cache/package.json
generated
vendored
37
node_modules/@actions/tool-cache/package.json
generated
vendored
@ -1,36 +1,37 @@
|
|||||||
{
|
{
|
||||||
"_from": "@actions/tool-cache@^1.0.0",
|
"_from": "@actions/tool-cache@1.1.2",
|
||||||
"_id": "@actions/tool-cache@1.0.0",
|
"_id": "@actions/tool-cache@1.1.2",
|
||||||
"_inBundle": false,
|
"_inBundle": false,
|
||||||
"_integrity": "sha512-l3zT0IfDfi5Ik5aMpnXqGHGATxN8xa9ls4ue+X/CBXpPhRMRZS4vcuh5Q9T98WAGbkysRCfhpbksTPHIcKnNwQ==",
|
"_integrity": "sha512-IJczPaZr02ECa3Lgws/TJEVco9tjOujiQSZbO3dHuXXjhd5vrUtfOgGwhmz3/f97L910OraPZ8SknofUk6RvOQ==",
|
||||||
"_location": "/@actions/tool-cache",
|
"_location": "/@actions/tool-cache",
|
||||||
"_phantomChildren": {},
|
"_phantomChildren": {},
|
||||||
"_requested": {
|
"_requested": {
|
||||||
"type": "range",
|
"type": "version",
|
||||||
"registry": true,
|
"registry": true,
|
||||||
"raw": "@actions/tool-cache@^1.0.0",
|
"raw": "@actions/tool-cache@1.1.2",
|
||||||
"name": "@actions/tool-cache",
|
"name": "@actions/tool-cache",
|
||||||
"escapedName": "@actions%2ftool-cache",
|
"escapedName": "@actions%2ftool-cache",
|
||||||
"scope": "@actions",
|
"scope": "@actions",
|
||||||
"rawSpec": "^1.0.0",
|
"rawSpec": "1.1.2",
|
||||||
"saveSpec": null,
|
"saveSpec": null,
|
||||||
"fetchSpec": "^1.0.0"
|
"fetchSpec": "1.1.2"
|
||||||
},
|
},
|
||||||
"_requiredBy": [
|
"_requiredBy": [
|
||||||
|
"#USER",
|
||||||
"/"
|
"/"
|
||||||
],
|
],
|
||||||
"_resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-1.0.0.tgz",
|
"_resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-1.1.2.tgz",
|
||||||
"_shasum": "a9ac414bd2e0bf1f5f0302f029193c418d344c09",
|
"_shasum": "304d44cecb9547324731e03ca004a3905e6530d2",
|
||||||
"_spec": "@actions/tool-cache@^1.0.0",
|
"_spec": "@actions/tool-cache@1.1.2",
|
||||||
"_where": "C:\\Users\\damccorm\\Documents\\setup-dotnet",
|
"_where": "C:\\Users\\Stanley\\Projects\\GitHub\\setup-dotnet",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/actions/toolkit/issues"
|
"url": "https://github.com/actions/toolkit/issues"
|
||||||
},
|
},
|
||||||
"bundleDependencies": false,
|
"bundleDependencies": false,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.0.0",
|
"@actions/core": "^1.1.0",
|
||||||
"@actions/exec": "^1.0.0",
|
"@actions/exec": "^1.0.1",
|
||||||
"@actions/io": "^1.0.0",
|
"@actions/io": "^1.0.1",
|
||||||
"semver": "^6.1.0",
|
"semver": "^6.1.0",
|
||||||
"typed-rest-client": "^1.4.0",
|
"typed-rest-client": "^1.4.0",
|
||||||
"uuid": "^3.3.2"
|
"uuid": "^3.3.2"
|
||||||
@ -51,11 +52,11 @@
|
|||||||
"lib",
|
"lib",
|
||||||
"scripts"
|
"scripts"
|
||||||
],
|
],
|
||||||
"gitHead": "a40bce7c8d382aa3dbadaa327acbc696e9390e55",
|
|
||||||
"homepage": "https://github.com/actions/toolkit/tree/master/packages/exec",
|
"homepage": "https://github.com/actions/toolkit/tree/master/packages/exec",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"exec",
|
"github",
|
||||||
"actions"
|
"actions",
|
||||||
|
"exec"
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "lib/tool-cache.js",
|
"main": "lib/tool-cache.js",
|
||||||
@ -71,5 +72,5 @@
|
|||||||
"test": "echo \"Error: run tests from root\" && exit 1",
|
"test": "echo \"Error: run tests from root\" && exit 1",
|
||||||
"tsc": "tsc"
|
"tsc": "tsc"
|
||||||
},
|
},
|
||||||
"version": "1.0.0"
|
"version": "1.1.2"
|
||||||
}
|
}
|
||||||
|
BIN
node_modules/@actions/tool-cache/scripts/externals/unzip
generated
vendored
BIN
node_modules/@actions/tool-cache/scripts/externals/unzip
generated
vendored
Binary file not shown.
21
node_modules/@octokit/endpoint/LICENSE
generated
vendored
Normal file
21
node_modules/@octokit/endpoint/LICENSE
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
The MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2018 Octokit contributors
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
421
node_modules/@octokit/endpoint/README.md
generated
vendored
Normal file
421
node_modules/@octokit/endpoint/README.md
generated
vendored
Normal file
@ -0,0 +1,421 @@
|
|||||||
|
# endpoint.js
|
||||||
|
|
||||||
|
> Turns GitHub REST API endpoints into generic request options
|
||||||
|
|
||||||
|
[](https://www.npmjs.com/package/@octokit/endpoint)
|
||||||
|
[](https://travis-ci.org/octokit/endpoint.js)
|
||||||
|
[](https://greenkeeper.io/)
|
||||||
|
|
||||||
|
`@octokit/endpoint` combines [GitHub REST API routes](https://developer.github.com/v3/) with your parameters and turns them into generic request options that can be used in any request library.
|
||||||
|
|
||||||
|
<!-- update table of contents by running `npx markdown-toc README.md -i` -->
|
||||||
|
<!-- toc -->
|
||||||
|
|
||||||
|
- [Usage](#usage)
|
||||||
|
- [API](#api)
|
||||||
|
- [endpoint()](#endpoint)
|
||||||
|
- [endpoint.defaults()](#endpointdefaults)
|
||||||
|
- [endpoint.DEFAULTS](#endpointdefaults)
|
||||||
|
- [endpoint.merge()](#endpointmerge)
|
||||||
|
- [endpoint.parse()](#endpointparse)
|
||||||
|
- [Special cases](#special-cases)
|
||||||
|
- [The `data` parameter – set request body directly](#the-data-parameter-%E2%80%93-set-request-body-directly)
|
||||||
|
- [Set parameters for both the URL/query and the request body](#set-parameters-for-both-the-urlquery-and-the-request-body)
|
||||||
|
- [LICENSE](#license)
|
||||||
|
|
||||||
|
<!-- tocstop -->
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tbody valign=top align=left>
|
||||||
|
<tr><th>
|
||||||
|
Browsers
|
||||||
|
</th><td width=100%>
|
||||||
|
Load <code>@octokit/endpoint</code> directly from <a href="https://cdn.pika.dev">cdn.pika.dev</a>
|
||||||
|
|
||||||
|
```html
|
||||||
|
<script type="module">
|
||||||
|
import { endpoint } from "https://cdn.pika.dev/@octokit/endpoint";
|
||||||
|
</script>
|
||||||
|
```
|
||||||
|
|
||||||
|
</td></tr>
|
||||||
|
<tr><th>
|
||||||
|
Node
|
||||||
|
</th><td>
|
||||||
|
|
||||||
|
Install with <code>npm install @octokit/endpoint</code>
|
||||||
|
|
||||||
|
```js
|
||||||
|
const { endpoint } = require("@octokit/endpoint");
|
||||||
|
// or: import { endpoint } from "@octokit/endpoint";
|
||||||
|
```
|
||||||
|
|
||||||
|
</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
Example for [List organization repositories](https://developer.github.com/v3/repos/#list-organization-repositories)
|
||||||
|
|
||||||
|
```js
|
||||||
|
const requestOptions = endpoint("GET /orgs/:org/repos", {
|
||||||
|
headers: {
|
||||||
|
authorization: "token 0000000000000000000000000000000000000001"
|
||||||
|
},
|
||||||
|
org: "octokit",
|
||||||
|
type: "private"
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
The resulting `requestOptions` looks as follows
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"method": "GET",
|
||||||
|
"url": "https://api.github.com/orgs/octokit/repos?type=private",
|
||||||
|
"headers": {
|
||||||
|
"accept": "application/vnd.github.v3+json",
|
||||||
|
"authorization": "token 0000000000000000000000000000000000000001",
|
||||||
|
"user-agent": "octokit/endpoint.js v1.2.3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
You can pass `requestOptions` to commen request libraries
|
||||||
|
|
||||||
|
```js
|
||||||
|
const { url, ...options } = requestOptions;
|
||||||
|
// using with fetch (https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)
|
||||||
|
fetch(url, options);
|
||||||
|
// using with request (https://github.com/request/request)
|
||||||
|
request(requestOptions);
|
||||||
|
// using with got (https://github.com/sindresorhus/got)
|
||||||
|
got[options.method](url, options);
|
||||||
|
// using with axios
|
||||||
|
axios(requestOptions);
|
||||||
|
```
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
### `endpoint(route, options)` or `endpoint(options)`
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<thead align=left>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
name
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
type
|
||||||
|
</th>
|
||||||
|
<th width=100%>
|
||||||
|
description
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody align=left valign=top>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<code>route</code>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
String
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
If set, it has to be a string consisting of URL and the request method, e.g., <code>GET /orgs/:org</code>. If it’s set to a URL, only the method defaults to <code>GET</code>.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<code>options.method</code>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
String
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<strong>Required unless <code>route</code> is set.</strong> Any supported <a href="https://developer.github.com/v3/#http-verbs">http verb</a>. <em>Defaults to <code>GET</code></em>.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<code>options.url</code>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
String
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<strong>Required unless <code>route</code> is set.</strong> A path or full URL which may contain <code>:variable</code> or <code>{variable}</code> placeholders,
|
||||||
|
e.g., <code>/orgs/:org/repos</code>. The <code>url</code> is parsed using <a href="https://github.com/bramstein/url-template">url-template</a>.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<code>options.baseUrl</code>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
String
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<em>Defaults to <code>https://api.github.com</code></em>.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<code>options.headers</code>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
Object
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
Custom headers. Passed headers are merged with defaults:<br>
|
||||||
|
<em><code>headers['user-agent']</code> defaults to <code>octokit-endpoint.js/1.2.3</code> (where <code>1.2.3</code> is the released version)</em>.<br>
|
||||||
|
<em><code>headers['accept']</code> defaults to <code>application/vnd.github.v3+json</code></em>.<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<code>options.mediaType.format</code>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
String
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
Media type param, such as <code>raw</code>, <code>diff</code>, or <code>text+json</code>. See <a href="https://developer.github.com/v3/media/">Media Types</a>. Setting <code>options.mediaType.format</code> will amend the <code>headers.accept</code> value.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<code>options.mediaType.previews</code>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
Array of Strings
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
Name of previews, such as <code>mercy</code>, <code>symmetra</code>, or <code>scarlet-witch</code>. See <a href="https://developer.github.com/v3/previews/">API Previews</a>. If <code>options.mediaType.previews</code> was set as default, the new previews will be merged into the default ones. Setting <code>options.mediaType.previews</code> will amend the <code>headers.accept</code> value. <code>options.mediaType.previews</code> will be merged with an existing array set using <code>.defaults()</code>.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<code>options.data</code>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
Any
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
Set request body directly instead of setting it to JSON based on additional parameters. See <a href="#data-parameter">"The <code>data</code> parameter"</a> below.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<code>options.request</code>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
Object
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
Pass custom meta information for the request. The <code>request</code> object will be returned as is.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
All other options will be passed depending on the `method` and `url` options.
|
||||||
|
|
||||||
|
1. If the option key has a placeholder in the `url`, it will be used as the replacement. For example, if the passed options are `{url: '/orgs/:org/repos', org: 'foo'}` the returned `options.url` is `https://api.github.com/orgs/foo/repos`.
|
||||||
|
2. If the `method` is `GET` or `HEAD`, the option is passed as a query parameter.
|
||||||
|
3. Otherwise, the parameter is passed in the request body as a JSON key.
|
||||||
|
|
||||||
|
**Result**
|
||||||
|
|
||||||
|
`endpoint()` is a synchronous method and returns an object with the following keys:
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<thead align=left>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
key
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
type
|
||||||
|
</th>
|
||||||
|
<th width=100%>
|
||||||
|
description
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody align=left valign=top>
|
||||||
|
<tr>
|
||||||
|
<th><code>method</code></th>
|
||||||
|
<td>String</td>
|
||||||
|
<td>The http method. Always lowercase.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th><code>url</code></th>
|
||||||
|
<td>String</td>
|
||||||
|
<td>The url with placeholders replaced with passed parameters.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th><code>headers</code></th>
|
||||||
|
<td>Object</td>
|
||||||
|
<td>All header names are lowercased.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th><code>body</code></th>
|
||||||
|
<td>Any</td>
|
||||||
|
<td>The request body if one is present. Only for <code>PATCH</code>, <code>POST</code>, <code>PUT</code>, <code>DELETE</code> requests.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th><code>request</code></th>
|
||||||
|
<td>Object</td>
|
||||||
|
<td>Request meta option, it will be returned as it was passed into <code>endpoint()</code></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
### `endpoint.defaults()`
|
||||||
|
|
||||||
|
Override or set default options. Example:
|
||||||
|
|
||||||
|
```js
|
||||||
|
const request = require("request");
|
||||||
|
const myEndpoint = require("@octokit/endpoint").defaults({
|
||||||
|
baseUrl: "https://github-enterprise.acme-inc.com/api/v3",
|
||||||
|
headers: {
|
||||||
|
"user-agent": "myApp/1.2.3",
|
||||||
|
authorization: `token 0000000000000000000000000000000000000001`
|
||||||
|
},
|
||||||
|
org: "my-project",
|
||||||
|
per_page: 100
|
||||||
|
});
|
||||||
|
|
||||||
|
request(myEndpoint(`GET /orgs/:org/repos`));
|
||||||
|
```
|
||||||
|
|
||||||
|
You can call `.defaults()` again on the returned method, the defaults will cascade.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const myProjectEndpoint = endpoint.defaults({
|
||||||
|
baseUrl: "https://github-enterprise.acme-inc.com/api/v3",
|
||||||
|
headers: {
|
||||||
|
"user-agent": "myApp/1.2.3"
|
||||||
|
},
|
||||||
|
org: "my-project"
|
||||||
|
});
|
||||||
|
const myProjectEndpointWithAuth = myProjectEndpoint.defaults({
|
||||||
|
headers: {
|
||||||
|
authorization: `token 0000000000000000000000000000000000000001`
|
||||||
|
}
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
`myProjectEndpointWithAuth` now defaults the `baseUrl`, `headers['user-agent']`,
|
||||||
|
`org` and `headers['authorization']` on top of `headers['accept']` that is set
|
||||||
|
by the global default.
|
||||||
|
|
||||||
|
### `endpoint.DEFAULTS`
|
||||||
|
|
||||||
|
The current default options.
|
||||||
|
|
||||||
|
```js
|
||||||
|
endpoint.DEFAULTS.baseUrl; // https://api.github.com
|
||||||
|
const myEndpoint = endpoint.defaults({
|
||||||
|
baseUrl: "https://github-enterprise.acme-inc.com/api/v3"
|
||||||
|
});
|
||||||
|
myEndpoint.DEFAULTS.baseUrl; // https://github-enterprise.acme-inc.com/api/v3
|
||||||
|
```
|
||||||
|
|
||||||
|
### `endpoint.merge(route, options)` or `endpoint.merge(options)`
|
||||||
|
|
||||||
|
Get the defaulted endpoint options, but without parsing them into request options:
|
||||||
|
|
||||||
|
```js
|
||||||
|
const myProjectEndpoint = endpoint.defaults({
|
||||||
|
baseUrl: "https://github-enterprise.acme-inc.com/api/v3",
|
||||||
|
headers: {
|
||||||
|
"user-agent": "myApp/1.2.3"
|
||||||
|
},
|
||||||
|
org: "my-project"
|
||||||
|
});
|
||||||
|
myProjectEndpoint.merge("GET /orgs/:org/repos", {
|
||||||
|
headers: {
|
||||||
|
authorization: `token 0000000000000000000000000000000000000001`
|
||||||
|
},
|
||||||
|
org: "my-secret-project",
|
||||||
|
type: "private"
|
||||||
|
});
|
||||||
|
|
||||||
|
// {
|
||||||
|
// baseUrl: 'https://github-enterprise.acme-inc.com/api/v3',
|
||||||
|
// method: 'GET',
|
||||||
|
// url: '/orgs/:org/repos',
|
||||||
|
// headers: {
|
||||||
|
// accept: 'application/vnd.github.v3+json',
|
||||||
|
// authorization: `token 0000000000000000000000000000000000000001`,
|
||||||
|
// 'user-agent': 'myApp/1.2.3'
|
||||||
|
// },
|
||||||
|
// org: 'my-secret-project',
|
||||||
|
// type: 'private'
|
||||||
|
// }
|
||||||
|
```
|
||||||
|
|
||||||
|
### `endpoint.parse()`
|
||||||
|
|
||||||
|
Stateless method to turn endpoint options into request options. Calling
|
||||||
|
`endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`.
|
||||||
|
|
||||||
|
## Special cases
|
||||||
|
|
||||||
|
<a name="data-parameter"></a>
|
||||||
|
|
||||||
|
### The `data` parameter – set request body directly
|
||||||
|
|
||||||
|
Some endpoints such as [Render a Markdown document in raw mode](https://developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode) don’t have parameters that are sent as request body keys, instead, the request body needs to be set directly. In these cases, set the `data` parameter.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const options = endpoint("POST /markdown/raw", {
|
||||||
|
data: "Hello world github/linguist#1 **cool**, and #1!",
|
||||||
|
headers: {
|
||||||
|
accept: "text/html;charset=utf-8",
|
||||||
|
"content-type": "text/plain"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// options is
|
||||||
|
// {
|
||||||
|
// method: 'post',
|
||||||
|
// url: 'https://api.github.com/markdown/raw',
|
||||||
|
// headers: {
|
||||||
|
// accept: 'text/html;charset=utf-8',
|
||||||
|
// 'content-type': 'text/plain',
|
||||||
|
// 'user-agent': userAgent
|
||||||
|
// },
|
||||||
|
// body: 'Hello world github/linguist#1 **cool**, and #1!'
|
||||||
|
// }
|
||||||
|
```
|
||||||
|
|
||||||
|
### Set parameters for both the URL/query and the request body
|
||||||
|
|
||||||
|
There are API endpoints that accept both query parameters as well as a body. In that case, you need to add the query parameters as templates to `options.url`, as defined in the [RFC 6570 URI Template specification](https://tools.ietf.org/html/rfc6570).
|
||||||
|
|
||||||
|
Example
|
||||||
|
|
||||||
|
```js
|
||||||
|
endpoint(
|
||||||
|
"POST https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name,label}",
|
||||||
|
{
|
||||||
|
name: "example.zip",
|
||||||
|
label: "short description",
|
||||||
|
headers: {
|
||||||
|
"content-type": "text/plain",
|
||||||
|
"content-length": 14,
|
||||||
|
authorization: `token 0000000000000000000000000000000000000001`
|
||||||
|
},
|
||||||
|
data: "Hello, world!"
|
||||||
|
}
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
|
## LICENSE
|
||||||
|
|
||||||
|
[MIT](LICENSE)
|
377
node_modules/@octokit/endpoint/dist-node/index.js
generated
vendored
Normal file
377
node_modules/@octokit/endpoint/dist-node/index.js
generated
vendored
Normal file
@ -0,0 +1,377 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
|
||||||
|
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
||||||
|
|
||||||
|
var isPlainObject = _interopDefault(require('is-plain-object'));
|
||||||
|
var universalUserAgent = require('universal-user-agent');
|
||||||
|
|
||||||
|
function lowercaseKeys(object) {
|
||||||
|
if (!object) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
return Object.keys(object).reduce((newObj, key) => {
|
||||||
|
newObj[key.toLowerCase()] = object[key];
|
||||||
|
return newObj;
|
||||||
|
}, {});
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
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 = route || {};
|
||||||
|
} // lowercase header names before merging with defaults to avoid duplicates
|
||||||
|
|
||||||
|
|
||||||
|
options.headers = lowercaseKeys(options.headers);
|
||||||
|
const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
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("&");
|
||||||
|
}
|
||||||
|
|
||||||
|
const urlVariableRegex = /\{[^}]+\}/g;
|
||||||
|
|
||||||
|
function removeNonChars(variableName) {
|
||||||
|
return variableName.replace(/^\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), []);
|
||||||
|
}
|
||||||
|
|
||||||
|
function omit(object, keysToOmit) {
|
||||||
|
return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {
|
||||||
|
obj[key] = object[key];
|
||||||
|
return obj;
|
||||||
|
}, {});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Based on https://github.com/bramstein/url-template, licensed under BSD
|
||||||
|
// TODO: create separate package.
|
||||||
|
//
|
||||||
|
// Copyright (c) 2012-2014, Bram Stein
|
||||||
|
// All rights reserved.
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions
|
||||||
|
// are met:
|
||||||
|
// 1. Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer in the
|
||||||
|
// documentation and/or other materials provided with the distribution.
|
||||||
|
// 3. The name of the author may not be used to endorse or promote products
|
||||||
|
// derived from this software without specific prior written permission.
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
|
// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||||
|
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
||||||
|
// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||||
|
// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
/* istanbul ignore file */
|
||||||
|
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 !== undefined && 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 (value) {
|
||||||
|
result.push(encodeValue(operator, value, 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 (value) {
|
||||||
|
tmp.push(encodeValue(operator, value));
|
||||||
|
});
|
||||||
|
} 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 = ["+", "#", ".", "/", ";", "?", "&"];
|
||||||
|
return 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);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function parse(options) {
|
||||||
|
// https://fetch.spec.whatwg.org/#methods
|
||||||
|
let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible
|
||||||
|
|
||||||
|
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"]); // extract variable names from URL to calculate remaining variables later
|
||||||
|
|
||||||
|
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 isBinaryRequset = /application\/octet-stream/i.test(headers.accept);
|
||||||
|
|
||||||
|
if (!isBinaryRequset) {
|
||||||
|
if (options.mediaType.format) {
|
||||||
|
// e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw
|
||||||
|
headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(",");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.mediaType.previews.length) {
|
||||||
|
const previewsFromAcceptHeader = headers.accept.match(/[\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(",");
|
||||||
|
}
|
||||||
|
} // for GET/HEAD requests, set URL query parameters from remaining parameters
|
||||||
|
// for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters
|
||||||
|
|
||||||
|
|
||||||
|
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;
|
||||||
|
} else {
|
||||||
|
headers["content-length"] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} // default content-type for JSON if body is set
|
||||||
|
|
||||||
|
|
||||||
|
if (!headers["content-type"] && typeof body !== "undefined") {
|
||||||
|
headers["content-type"] = "application/json; charset=utf-8";
|
||||||
|
} // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.
|
||||||
|
// fetch does not allow to set `content-length` header, but we can set body to an empty string
|
||||||
|
|
||||||
|
|
||||||
|
if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") {
|
||||||
|
body = "";
|
||||||
|
} // Only return body/request keys if present
|
||||||
|
|
||||||
|
|
||||||
|
return Object.assign({
|
||||||
|
method,
|
||||||
|
url,
|
||||||
|
headers
|
||||||
|
}, typeof body !== "undefined" ? {
|
||||||
|
body
|
||||||
|
} : null, options.request ? {
|
||||||
|
request: options.request
|
||||||
|
} : null);
|
||||||
|
}
|
||||||
|
|
||||||
|
function endpointWithDefaults(defaults, route, options) {
|
||||||
|
return parse(merge(defaults, route, options));
|
||||||
|
}
|
||||||
|
|
||||||
|
function withDefaults(oldDefaults, newDefaults) {
|
||||||
|
const DEFAULTS = merge(oldDefaults, newDefaults);
|
||||||
|
const endpoint = endpointWithDefaults.bind(null, DEFAULTS);
|
||||||
|
return Object.assign(endpoint, {
|
||||||
|
DEFAULTS,
|
||||||
|
defaults: withDefaults.bind(null, DEFAULTS),
|
||||||
|
merge: merge.bind(null, DEFAULTS),
|
||||||
|
parse
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const VERSION = "0.0.0-development";
|
||||||
|
|
||||||
|
const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`;
|
||||||
|
const DEFAULTS = {
|
||||||
|
method: "GET",
|
||||||
|
baseUrl: "https://api.github.com",
|
||||||
|
headers: {
|
||||||
|
accept: "application/vnd.github.v3+json",
|
||||||
|
"user-agent": userAgent
|
||||||
|
},
|
||||||
|
mediaType: {
|
||||||
|
format: "",
|
||||||
|
previews: []
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const endpoint = withDefaults(null, DEFAULTS);
|
||||||
|
|
||||||
|
exports.endpoint = endpoint;
|
||||||
|
//# sourceMappingURL=index.js.map
|
1
node_modules/@octokit/endpoint/dist-node/index.js.map
generated
vendored
Normal file
1
node_modules/@octokit/endpoint/dist-node/index.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
15
node_modules/@octokit/endpoint/dist-src/defaults.js
generated
vendored
Normal file
15
node_modules/@octokit/endpoint/dist-src/defaults.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import { getUserAgent } from "universal-user-agent";
|
||||||
|
import { VERSION } from "./version";
|
||||||
|
const userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;
|
||||||
|
export const DEFAULTS = {
|
||||||
|
method: "GET",
|
||||||
|
baseUrl: "https://api.github.com",
|
||||||
|
headers: {
|
||||||
|
accept: "application/vnd.github.v3+json",
|
||||||
|
"user-agent": userAgent
|
||||||
|
},
|
||||||
|
mediaType: {
|
||||||
|
format: "",
|
||||||
|
previews: []
|
||||||
|
}
|
||||||
|
};
|
5
node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js
generated
vendored
Normal file
5
node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
import { merge } from "./merge";
|
||||||
|
import { parse } from "./parse";
|
||||||
|
export function endpointWithDefaults(defaults, route, options) {
|
||||||
|
return parse(merge(defaults, route, options));
|
||||||
|
}
|
0
node_modules/@octokit/endpoint/dist-src/generated/routes.js
generated
vendored
Normal file
0
node_modules/@octokit/endpoint/dist-src/generated/routes.js
generated
vendored
Normal file
3
node_modules/@octokit/endpoint/dist-src/index.js
generated
vendored
Normal file
3
node_modules/@octokit/endpoint/dist-src/index.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
import { withDefaults } from "./with-defaults";
|
||||||
|
import { DEFAULTS } from "./defaults";
|
||||||
|
export const endpoint = withDefaults(null, DEFAULTS);
|
22
node_modules/@octokit/endpoint/dist-src/merge.js
generated
vendored
Normal file
22
node_modules/@octokit/endpoint/dist-src/merge.js
generated
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import { lowercaseKeys } from "./util/lowercase-keys";
|
||||||
|
import { mergeDeep } from "./util/merge-deep";
|
||||||
|
export 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 = route || {};
|
||||||
|
}
|
||||||
|
// lowercase header names before merging with defaults to avoid duplicates
|
||||||
|
options.headers = lowercaseKeys(options.headers);
|
||||||
|
const mergedOptions = mergeDeep(defaults || {}, options);
|
||||||
|
// mediaType.previews arrays are merged, instead of overwritten
|
||||||
|
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;
|
||||||
|
}
|
81
node_modules/@octokit/endpoint/dist-src/parse.js
generated
vendored
Normal file
81
node_modules/@octokit/endpoint/dist-src/parse.js
generated
vendored
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
import { addQueryParameters } from "./util/add-query-parameters";
|
||||||
|
import { extractUrlVariableNames } from "./util/extract-url-variable-names";
|
||||||
|
import { omit } from "./util/omit";
|
||||||
|
import { parseUrl } from "./util/url-template";
|
||||||
|
export function parse(options) {
|
||||||
|
// https://fetch.spec.whatwg.org/#methods
|
||||||
|
let method = options.method.toUpperCase();
|
||||||
|
// replace :varname with {varname} to make it RFC 6570 compatible
|
||||||
|
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"
|
||||||
|
]);
|
||||||
|
// extract variable names from URL to calculate remaining variables later
|
||||||
|
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 isBinaryRequset = /application\/octet-stream/i.test(headers.accept);
|
||||||
|
if (!isBinaryRequset) {
|
||||||
|
if (options.mediaType.format) {
|
||||||
|
// e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw
|
||||||
|
headers.accept = headers.accept
|
||||||
|
.split(/,/)
|
||||||
|
.map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`))
|
||||||
|
.join(",");
|
||||||
|
}
|
||||||
|
if (options.mediaType.previews.length) {
|
||||||
|
const previewsFromAcceptHeader = headers.accept.match(/[\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(",");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// for GET/HEAD requests, set URL query parameters from remaining parameters
|
||||||
|
// for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
headers["content-length"] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// default content-type for JSON if body is set
|
||||||
|
if (!headers["content-type"] && typeof body !== "undefined") {
|
||||||
|
headers["content-type"] = "application/json; charset=utf-8";
|
||||||
|
}
|
||||||
|
// GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.
|
||||||
|
// fetch does not allow to set `content-length` header, but we can set body to an empty string
|
||||||
|
if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") {
|
||||||
|
body = "";
|
||||||
|
}
|
||||||
|
// Only return body/request keys if present
|
||||||
|
return Object.assign({ method, url, headers }, typeof body !== "undefined" ? { body } : null, options.request ? { request: options.request } : null);
|
||||||
|
}
|
0
node_modules/@octokit/endpoint/dist-src/types.js
generated
vendored
Normal file
0
node_modules/@octokit/endpoint/dist-src/types.js
generated
vendored
Normal file
21
node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js
generated
vendored
Normal file
21
node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
export 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("&"));
|
||||||
|
}
|
11
node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js
generated
vendored
Normal file
11
node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js
generated
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
const urlVariableRegex = /\{[^}]+\}/g;
|
||||||
|
function removeNonChars(variableName) {
|
||||||
|
return variableName.replace(/^\W+|\W+$/g, "").split(/,/);
|
||||||
|
}
|
||||||
|
export function extractUrlVariableNames(url) {
|
||||||
|
const matches = url.match(urlVariableRegex);
|
||||||
|
if (!matches) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);
|
||||||
|
}
|
9
node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js
generated
vendored
Normal file
9
node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
export function lowercaseKeys(object) {
|
||||||
|
if (!object) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
return Object.keys(object).reduce((newObj, key) => {
|
||||||
|
newObj[key.toLowerCase()] = object[key];
|
||||||
|
return newObj;
|
||||||
|
}, {});
|
||||||
|
}
|
16
node_modules/@octokit/endpoint/dist-src/util/merge-deep.js
generated
vendored
Normal file
16
node_modules/@octokit/endpoint/dist-src/util/merge-deep.js
generated
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import isPlainObject from "is-plain-object";
|
||||||
|
export 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;
|
||||||
|
}
|
8
node_modules/@octokit/endpoint/dist-src/util/omit.js
generated
vendored
Normal file
8
node_modules/@octokit/endpoint/dist-src/util/omit.js
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
export function omit(object, keysToOmit) {
|
||||||
|
return Object.keys(object)
|
||||||
|
.filter(option => !keysToOmit.includes(option))
|
||||||
|
.reduce((obj, key) => {
|
||||||
|
obj[key] = object[key];
|
||||||
|
return obj;
|
||||||
|
}, {});
|
||||||
|
}
|
170
node_modules/@octokit/endpoint/dist-src/util/url-template.js
generated
vendored
Normal file
170
node_modules/@octokit/endpoint/dist-src/util/url-template.js
generated
vendored
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
// Based on https://github.com/bramstein/url-template, licensed under BSD
|
||||||
|
// TODO: create separate package.
|
||||||
|
//
|
||||||
|
// Copyright (c) 2012-2014, Bram Stein
|
||||||
|
// All rights reserved.
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions
|
||||||
|
// are met:
|
||||||
|
// 1. Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer in the
|
||||||
|
// documentation and/or other materials provided with the distribution.
|
||||||
|
// 3. The name of the author may not be used to endorse or promote products
|
||||||
|
// derived from this software without specific prior written permission.
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
|
// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||||
|
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
||||||
|
// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||||
|
// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
/* istanbul ignore file */
|
||||||
|
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 !== undefined && 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 (value) {
|
||||||
|
result.push(encodeValue(operator, value, 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 (value) {
|
||||||
|
tmp.push(encodeValue(operator, value));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
export function parseUrl(template) {
|
||||||
|
return {
|
||||||
|
expand: expand.bind(null, template)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function expand(template, context) {
|
||||||
|
var operators = ["+", "#", ".", "/", ";", "?", "&"];
|
||||||
|
return 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);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
1
node_modules/@octokit/endpoint/dist-src/version.js
generated
vendored
Normal file
1
node_modules/@octokit/endpoint/dist-src/version.js
generated
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
export const VERSION = "0.0.0-development";
|
13
node_modules/@octokit/endpoint/dist-src/with-defaults.js
generated
vendored
Normal file
13
node_modules/@octokit/endpoint/dist-src/with-defaults.js
generated
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import { endpointWithDefaults } from "./endpoint-with-defaults";
|
||||||
|
import { merge } from "./merge";
|
||||||
|
import { parse } from "./parse";
|
||||||
|
export function withDefaults(oldDefaults, newDefaults) {
|
||||||
|
const DEFAULTS = merge(oldDefaults, newDefaults);
|
||||||
|
const endpoint = endpointWithDefaults.bind(null, DEFAULTS);
|
||||||
|
return Object.assign(endpoint, {
|
||||||
|
DEFAULTS,
|
||||||
|
defaults: withDefaults.bind(null, DEFAULTS),
|
||||||
|
merge: merge.bind(null, DEFAULTS),
|
||||||
|
parse
|
||||||
|
});
|
||||||
|
}
|
2
node_modules/@octokit/endpoint/dist-types/defaults.d.ts
generated
vendored
Normal file
2
node_modules/@octokit/endpoint/dist-types/defaults.d.ts
generated
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
import { Defaults } from "./types";
|
||||||
|
export declare const DEFAULTS: Defaults;
|
2
node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts
generated
vendored
Normal file
2
node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts
generated
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
import { Defaults, Endpoint, RequestOptions, Route, Parameters } from "./types";
|
||||||
|
export declare function endpointWithDefaults(defaults: Defaults, route: Route | Endpoint, options?: Parameters): RequestOptions;
|
6745
node_modules/@octokit/endpoint/dist-types/generated/routes.d.ts
generated
vendored
Normal file
6745
node_modules/@octokit/endpoint/dist-types/generated/routes.d.ts
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
node_modules/@octokit/endpoint/dist-types/index.d.ts
generated
vendored
Normal file
1
node_modules/@octokit/endpoint/dist-types/index.d.ts
generated
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
export declare const endpoint: import("./types").endpoint;
|
2
node_modules/@octokit/endpoint/dist-types/merge.d.ts
generated
vendored
Normal file
2
node_modules/@octokit/endpoint/dist-types/merge.d.ts
generated
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
import { Defaults, Route, Parameters } from "./types";
|
||||||
|
export declare function merge(defaults: Defaults | null, route?: Route | Parameters, options?: Parameters): Defaults;
|
2
node_modules/@octokit/endpoint/dist-types/parse.d.ts
generated
vendored
Normal file
2
node_modules/@octokit/endpoint/dist-types/parse.d.ts
generated
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
import { Defaults, RequestOptions } from "./types";
|
||||||
|
export declare function parse(options: Defaults): RequestOptions;
|
150
node_modules/@octokit/endpoint/dist-types/types.d.ts
generated
vendored
Normal file
150
node_modules/@octokit/endpoint/dist-types/types.d.ts
generated
vendored
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
import { Routes as KnownRoutes } from "./generated/routes";
|
||||||
|
export interface endpoint {
|
||||||
|
/**
|
||||||
|
* Transforms a GitHub REST API endpoint into generic request options
|
||||||
|
*
|
||||||
|
* @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`.
|
||||||
|
*/
|
||||||
|
(options: Endpoint): RequestOptions;
|
||||||
|
/**
|
||||||
|
* Transforms a GitHub REST API endpoint into generic request options
|
||||||
|
*
|
||||||
|
* @param {string} route Request method + URL. Example: `'GET /orgs/:org'`
|
||||||
|
* @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`.
|
||||||
|
*/
|
||||||
|
<R extends Route>(route: keyof KnownRoutes | R, options?: R extends keyof KnownRoutes ? KnownRoutes[R][0] & Parameters : Parameters): R extends keyof KnownRoutes ? KnownRoutes[R][1] : RequestOptions;
|
||||||
|
/**
|
||||||
|
* Object with current default route and parameters
|
||||||
|
*/
|
||||||
|
DEFAULTS: Defaults;
|
||||||
|
/**
|
||||||
|
* Returns a new `endpoint` with updated route and parameters
|
||||||
|
*/
|
||||||
|
defaults: (newDefaults: Parameters) => endpoint;
|
||||||
|
merge: {
|
||||||
|
/**
|
||||||
|
* Merges current endpoint defaults with passed route and parameters,
|
||||||
|
* without transforming them into request options.
|
||||||
|
*
|
||||||
|
* @param {string} route Request method + URL. Example: `'GET /orgs/:org'`
|
||||||
|
* @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
(route: Route, parameters?: Parameters): Defaults;
|
||||||
|
/**
|
||||||
|
* Merges current endpoint defaults with passed route and parameters,
|
||||||
|
* without transforming them into request options.
|
||||||
|
*
|
||||||
|
* @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`.
|
||||||
|
*/
|
||||||
|
(options: Parameters): Defaults;
|
||||||
|
/**
|
||||||
|
* Returns current default options.
|
||||||
|
*
|
||||||
|
* @deprecated use endpoint.DEFAULTS instead
|
||||||
|
*/
|
||||||
|
(): Defaults;
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* Stateless method to turn endpoint options into request options.
|
||||||
|
* Calling `endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`.
|
||||||
|
*
|
||||||
|
* @param {object} options `method`, `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`.
|
||||||
|
*/
|
||||||
|
parse: (options: Defaults) => RequestOptions;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Request method + URL. Example: `'GET /orgs/:org'`
|
||||||
|
*/
|
||||||
|
export declare type Route = string;
|
||||||
|
/**
|
||||||
|
* Relative or absolute URL. Examples: `'/orgs/:org'`, `https://example.com/foo/bar`
|
||||||
|
*/
|
||||||
|
export declare type Url = string;
|
||||||
|
/**
|
||||||
|
* Request method
|
||||||
|
*/
|
||||||
|
export declare type Method = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT";
|
||||||
|
/**
|
||||||
|
* Endpoint parameters
|
||||||
|
*/
|
||||||
|
export declare type Parameters = {
|
||||||
|
/**
|
||||||
|
* Base URL to be used when a relative URL is passed, such as `/orgs/:org`.
|
||||||
|
* If `baseUrl` is `https://enterprise.acme-inc.com/api/v3`, then the resulting
|
||||||
|
* `RequestOptions.url` will be `https://enterprise.acme-inc.com/api/v3/orgs/:org`.
|
||||||
|
*/
|
||||||
|
baseUrl?: string;
|
||||||
|
/**
|
||||||
|
* HTTP headers. Use lowercase keys.
|
||||||
|
*/
|
||||||
|
headers?: Headers;
|
||||||
|
/**
|
||||||
|
* Media type options, see {@link https://developer.github.com/v3/media/|GitHub Developer Guide}
|
||||||
|
*/
|
||||||
|
mediaType?: {
|
||||||
|
/**
|
||||||
|
* `json` by default. Can be `raw`, `text`, `html`, `full`, `diff`, `patch`, `sha`, `base64`. Depending on endpoint
|
||||||
|
*/
|
||||||
|
format?: string;
|
||||||
|
/**
|
||||||
|
* Custom media type names of {@link https://developer.github.com/v3/media/|API Previews} without the `-preview` suffix.
|
||||||
|
* Example for single preview: `['squirrel-girl']`.
|
||||||
|
* Example for multiple previews: `['squirrel-girl', 'mister-fantastic']`.
|
||||||
|
*/
|
||||||
|
previews?: string[];
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* Pass custom meta information for the request. The `request` object will be returned as is.
|
||||||
|
*/
|
||||||
|
request?: EndpointRequestOptions;
|
||||||
|
/**
|
||||||
|
* Any additional parameter will be passed as follows
|
||||||
|
* 1. URL parameter if `':parameter'` or `{parameter}` is part of `url`
|
||||||
|
* 2. Query parameter if `method` is `'GET'` or `'HEAD'`
|
||||||
|
* 3. Request body if `parameter` is `'data'`
|
||||||
|
* 4. JSON in the request body in the form of `body[parameter]` unless `parameter` key is `'data'`
|
||||||
|
*/
|
||||||
|
[parameter: string]: any;
|
||||||
|
};
|
||||||
|
export declare type Endpoint = Parameters & {
|
||||||
|
method: Method;
|
||||||
|
url: Url;
|
||||||
|
};
|
||||||
|
export declare type Defaults = Parameters & {
|
||||||
|
method: Method;
|
||||||
|
baseUrl: string;
|
||||||
|
headers: Headers & {
|
||||||
|
accept: string;
|
||||||
|
"user-agent": string;
|
||||||
|
};
|
||||||
|
mediaType: {
|
||||||
|
format: string;
|
||||||
|
previews: string[];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
export declare type RequestOptions = {
|
||||||
|
method: Method;
|
||||||
|
url: Url;
|
||||||
|
headers: Headers;
|
||||||
|
body?: any;
|
||||||
|
request?: EndpointRequestOptions;
|
||||||
|
};
|
||||||
|
export declare type Headers = {
|
||||||
|
/**
|
||||||
|
* Avoid setting `accept`, use `mediaFormat.{format|previews}` instead.
|
||||||
|
*/
|
||||||
|
accept?: string;
|
||||||
|
/**
|
||||||
|
* Use `authorization` to send authenticated request, remember `token ` / `bearer ` prefixes. Example: `token 1234567890abcdef1234567890abcdef12345678`
|
||||||
|
*/
|
||||||
|
authorization?: string;
|
||||||
|
/**
|
||||||
|
* `user-agent` is set do a default and can be overwritten as needed.
|
||||||
|
*/
|
||||||
|
"user-agent"?: string;
|
||||||
|
[header: string]: string | number | undefined;
|
||||||
|
};
|
||||||
|
export declare type EndpointRequestOptions = {
|
||||||
|
[option: string]: any;
|
||||||
|
};
|
4
node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts
generated
vendored
Normal file
4
node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
export declare function addQueryParameters(url: string, parameters: {
|
||||||
|
[x: string]: string | undefined;
|
||||||
|
q?: string;
|
||||||
|
}): string;
|
1
node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts
generated
vendored
Normal file
1
node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts
generated
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
export declare function extractUrlVariableNames(url: string): string[];
|
5
node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts
generated
vendored
Normal file
5
node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
export declare function lowercaseKeys(object?: {
|
||||||
|
[key: string]: any;
|
||||||
|
}): {
|
||||||
|
[key: string]: any;
|
||||||
|
};
|
1
node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts
generated
vendored
Normal file
1
node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts
generated
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
export declare function mergeDeep(defaults: any, options: any): object;
|
5
node_modules/@octokit/endpoint/dist-types/util/omit.d.ts
generated
vendored
Normal file
5
node_modules/@octokit/endpoint/dist-types/util/omit.d.ts
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
export declare function omit(object: {
|
||||||
|
[key: string]: any;
|
||||||
|
}, keysToOmit: string[]): {
|
||||||
|
[key: string]: any;
|
||||||
|
};
|
3
node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts
generated
vendored
Normal file
3
node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
export declare function parseUrl(template: string): {
|
||||||
|
expand: (context: object) => string;
|
||||||
|
};
|
1
node_modules/@octokit/endpoint/dist-types/version.d.ts
generated
vendored
Normal file
1
node_modules/@octokit/endpoint/dist-types/version.d.ts
generated
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
export declare const VERSION = "0.0.0-development";
|
2
node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts
generated
vendored
Normal file
2
node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts
generated
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
import { Defaults, endpoint, Parameters } from "./types";
|
||||||
|
export declare function withDefaults(oldDefaults: Defaults | null, newDefaults: Parameters): endpoint;
|
377
node_modules/@octokit/endpoint/dist-web/index.js
generated
vendored
Normal file
377
node_modules/@octokit/endpoint/dist-web/index.js
generated
vendored
Normal file
@ -0,0 +1,377 @@
|
|||||||
|
import isPlainObject from 'is-plain-object';
|
||||||
|
import { getUserAgent } from 'universal-user-agent';
|
||||||
|
|
||||||
|
function lowercaseKeys(object) {
|
||||||
|
if (!object) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
return Object.keys(object).reduce((newObj, key) => {
|
||||||
|
newObj[key.toLowerCase()] = object[key];
|
||||||
|
return newObj;
|
||||||
|
}, {});
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
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 = route || {};
|
||||||
|
}
|
||||||
|
// lowercase header names before merging with defaults to avoid duplicates
|
||||||
|
options.headers = lowercaseKeys(options.headers);
|
||||||
|
const mergedOptions = mergeDeep(defaults || {}, options);
|
||||||
|
// mediaType.previews arrays are merged, instead of overwritten
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
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("&"));
|
||||||
|
}
|
||||||
|
|
||||||
|
const urlVariableRegex = /\{[^}]+\}/g;
|
||||||
|
function removeNonChars(variableName) {
|
||||||
|
return variableName.replace(/^\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), []);
|
||||||
|
}
|
||||||
|
|
||||||
|
function omit(object, keysToOmit) {
|
||||||
|
return Object.keys(object)
|
||||||
|
.filter(option => !keysToOmit.includes(option))
|
||||||
|
.reduce((obj, key) => {
|
||||||
|
obj[key] = object[key];
|
||||||
|
return obj;
|
||||||
|
}, {});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Based on https://github.com/bramstein/url-template, licensed under BSD
|
||||||
|
// TODO: create separate package.
|
||||||
|
//
|
||||||
|
// Copyright (c) 2012-2014, Bram Stein
|
||||||
|
// All rights reserved.
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions
|
||||||
|
// are met:
|
||||||
|
// 1. Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer in the
|
||||||
|
// documentation and/or other materials provided with the distribution.
|
||||||
|
// 3. The name of the author may not be used to endorse or promote products
|
||||||
|
// derived from this software without specific prior written permission.
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
|
// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||||
|
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
||||||
|
// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||||
|
// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
/* istanbul ignore file */
|
||||||
|
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 !== undefined && 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 (value) {
|
||||||
|
result.push(encodeValue(operator, value, 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 (value) {
|
||||||
|
tmp.push(encodeValue(operator, value));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
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 = ["+", "#", ".", "/", ";", "?", "&"];
|
||||||
|
return 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);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function parse(options) {
|
||||||
|
// https://fetch.spec.whatwg.org/#methods
|
||||||
|
let method = options.method.toUpperCase();
|
||||||
|
// replace :varname with {varname} to make it RFC 6570 compatible
|
||||||
|
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"
|
||||||
|
]);
|
||||||
|
// extract variable names from URL to calculate remaining variables later
|
||||||
|
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 isBinaryRequset = /application\/octet-stream/i.test(headers.accept);
|
||||||
|
if (!isBinaryRequset) {
|
||||||
|
if (options.mediaType.format) {
|
||||||
|
// e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw
|
||||||
|
headers.accept = headers.accept
|
||||||
|
.split(/,/)
|
||||||
|
.map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`))
|
||||||
|
.join(",");
|
||||||
|
}
|
||||||
|
if (options.mediaType.previews.length) {
|
||||||
|
const previewsFromAcceptHeader = headers.accept.match(/[\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(",");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// for GET/HEAD requests, set URL query parameters from remaining parameters
|
||||||
|
// for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
headers["content-length"] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// default content-type for JSON if body is set
|
||||||
|
if (!headers["content-type"] && typeof body !== "undefined") {
|
||||||
|
headers["content-type"] = "application/json; charset=utf-8";
|
||||||
|
}
|
||||||
|
// GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.
|
||||||
|
// fetch does not allow to set `content-length` header, but we can set body to an empty string
|
||||||
|
if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") {
|
||||||
|
body = "";
|
||||||
|
}
|
||||||
|
// Only return body/request keys if present
|
||||||
|
return Object.assign({ method, url, headers }, typeof body !== "undefined" ? { body } : null, options.request ? { request: options.request } : null);
|
||||||
|
}
|
||||||
|
|
||||||
|
function endpointWithDefaults(defaults, route, options) {
|
||||||
|
return parse(merge(defaults, route, options));
|
||||||
|
}
|
||||||
|
|
||||||
|
function withDefaults(oldDefaults, newDefaults) {
|
||||||
|
const DEFAULTS = merge(oldDefaults, newDefaults);
|
||||||
|
const endpoint = endpointWithDefaults.bind(null, DEFAULTS);
|
||||||
|
return Object.assign(endpoint, {
|
||||||
|
DEFAULTS,
|
||||||
|
defaults: withDefaults.bind(null, DEFAULTS),
|
||||||
|
merge: merge.bind(null, DEFAULTS),
|
||||||
|
parse
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const VERSION = "0.0.0-development";
|
||||||
|
|
||||||
|
const userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;
|
||||||
|
const DEFAULTS = {
|
||||||
|
method: "GET",
|
||||||
|
baseUrl: "https://api.github.com",
|
||||||
|
headers: {
|
||||||
|
accept: "application/vnd.github.v3+json",
|
||||||
|
"user-agent": userAgent
|
||||||
|
},
|
||||||
|
mediaType: {
|
||||||
|
format: "",
|
||||||
|
previews: []
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const endpoint = withDefaults(null, DEFAULTS);
|
||||||
|
|
||||||
|
export { endpoint };
|
||||||
|
//# sourceMappingURL=index.js.map
|
1
node_modules/@octokit/endpoint/dist-web/index.js.map
generated
vendored
Normal file
1
node_modules/@octokit/endpoint/dist-web/index.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
21
node_modules/@octokit/endpoint/node_modules/is-plain-object/LICENSE
generated
vendored
Normal file
21
node_modules/@octokit/endpoint/node_modules/is-plain-object/LICENSE
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2014-2017, Jon Schlinkert.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
119
node_modules/@octokit/endpoint/node_modules/is-plain-object/README.md
generated
vendored
Normal file
119
node_modules/@octokit/endpoint/node_modules/is-plain-object/README.md
generated
vendored
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
# is-plain-object [](https://www.npmjs.com/package/is-plain-object) [](https://npmjs.org/package/is-plain-object) [](https://npmjs.org/package/is-plain-object) [](https://travis-ci.org/jonschlinkert/is-plain-object)
|
||||||
|
|
||||||
|
> Returns true if an object was created by the `Object` constructor.
|
||||||
|
|
||||||
|
Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
Install with [npm](https://www.npmjs.com/):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ npm install --save is-plain-object
|
||||||
|
```
|
||||||
|
|
||||||
|
Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```js
|
||||||
|
import isPlainObject from 'is-plain-object';
|
||||||
|
```
|
||||||
|
|
||||||
|
**true** when created by the `Object` constructor.
|
||||||
|
|
||||||
|
```js
|
||||||
|
isPlainObject(Object.create({}));
|
||||||
|
//=> true
|
||||||
|
isPlainObject(Object.create(Object.prototype));
|
||||||
|
//=> true
|
||||||
|
isPlainObject({foo: 'bar'});
|
||||||
|
//=> true
|
||||||
|
isPlainObject({});
|
||||||
|
//=> true
|
||||||
|
```
|
||||||
|
|
||||||
|
**false** when not created by the `Object` constructor.
|
||||||
|
|
||||||
|
```js
|
||||||
|
isPlainObject(1);
|
||||||
|
//=> false
|
||||||
|
isPlainObject(['foo', 'bar']);
|
||||||
|
//=> false
|
||||||
|
isPlainObject([]);
|
||||||
|
//=> false
|
||||||
|
isPlainObject(new Foo);
|
||||||
|
//=> false
|
||||||
|
isPlainObject(null);
|
||||||
|
//=> false
|
||||||
|
isPlainObject(Object.create(null));
|
||||||
|
//=> false
|
||||||
|
```
|
||||||
|
|
||||||
|
## About
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><strong>Contributing</strong></summary>
|
||||||
|
|
||||||
|
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><strong>Running Tests</strong></summary>
|
||||||
|
|
||||||
|
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ npm install && npm test
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><strong>Building docs</strong></summary>
|
||||||
|
|
||||||
|
_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
|
||||||
|
|
||||||
|
To generate the readme, run the following command:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ npm install -g verbose/verb#dev verb-generate-readme && verb
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
### Related projects
|
||||||
|
|
||||||
|
You might also be interested in these projects:
|
||||||
|
|
||||||
|
* [is-number](https://www.npmjs.com/package/is-number): Returns true if a number or string value is a finite number. Useful for regex… [more](https://github.com/jonschlinkert/is-number) | [homepage](https://github.com/jonschlinkert/is-number "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.")
|
||||||
|
* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
|
||||||
|
* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
|
||||||
|
|
||||||
|
### Contributors
|
||||||
|
|
||||||
|
| **Commits** | **Contributor** |
|
||||||
|
| --- | --- |
|
||||||
|
| 19 | [jonschlinkert](https://github.com/jonschlinkert) |
|
||||||
|
| 6 | [TrySound](https://github.com/TrySound) |
|
||||||
|
| 6 | [stevenvachon](https://github.com/stevenvachon) |
|
||||||
|
| 3 | [onokumus](https://github.com/onokumus) |
|
||||||
|
| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
|
||||||
|
|
||||||
|
### Author
|
||||||
|
|
||||||
|
**Jon Schlinkert**
|
||||||
|
|
||||||
|
* [GitHub Profile](https://github.com/jonschlinkert)
|
||||||
|
* [Twitter Profile](https://twitter.com/jonschlinkert)
|
||||||
|
* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
|
||||||
|
|
||||||
|
### License
|
||||||
|
|
||||||
|
Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert).
|
||||||
|
Released under the [MIT License](LICENSE).
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 28, 2019._
|
48
node_modules/@octokit/endpoint/node_modules/is-plain-object/index.cjs.js
generated
vendored
Normal file
48
node_modules/@octokit/endpoint/node_modules/is-plain-object/index.cjs.js
generated
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* isobject <https://github.com/jonschlinkert/isobject>
|
||||||
|
*
|
||||||
|
* Copyright (c) 2014-2017, Jon Schlinkert.
|
||||||
|
* Released under the MIT License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
function isObject(val) {
|
||||||
|
return val != null && typeof val === 'object' && Array.isArray(val) === false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* is-plain-object <https://github.com/jonschlinkert/is-plain-object>
|
||||||
|
*
|
||||||
|
* Copyright (c) 2014-2017, Jon Schlinkert.
|
||||||
|
* Released under the MIT License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
function isObjectObject(o) {
|
||||||
|
return isObject(o) === true
|
||||||
|
&& Object.prototype.toString.call(o) === '[object Object]';
|
||||||
|
}
|
||||||
|
|
||||||
|
function isPlainObject(o) {
|
||||||
|
var ctor,prot;
|
||||||
|
|
||||||
|
if (isObjectObject(o) === false) return false;
|
||||||
|
|
||||||
|
// If has modified constructor
|
||||||
|
ctor = o.constructor;
|
||||||
|
if (typeof ctor !== 'function') return false;
|
||||||
|
|
||||||
|
// If has modified prototype
|
||||||
|
prot = ctor.prototype;
|
||||||
|
if (isObjectObject(prot) === false) return false;
|
||||||
|
|
||||||
|
// If constructor does not have an Object-specific method
|
||||||
|
if (prot.hasOwnProperty('isPrototypeOf') === false) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Most likely a plain Object
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = isPlainObject;
|
3
node_modules/@octokit/endpoint/node_modules/is-plain-object/index.d.ts
generated
vendored
Normal file
3
node_modules/@octokit/endpoint/node_modules/is-plain-object/index.d.ts
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
declare function isPlainObject(o: any): boolean;
|
||||||
|
|
||||||
|
export default isPlainObject;
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user