mirror of
https://github.com/softprops/action-gh-release
synced 2026-10-01 09:11:31 +00:00
Merge branch 'alerque-default-token'
This commit is contained in:
commit
6aeb2b7009
5 files changed
+63
-62
No files matched your search
@@ -1,4 +1,3 @@
|
||||
|
||||
<div align="center">
|
||||
📦 :octocat:
|
||||
</div>
|
||||
@@ -20,7 +19,6 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
<br />
|
||||
|
||||
## 🤸 Usage
|
||||
@@ -47,8 +45,6 @@ jobs:
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
```
|
||||
|
||||
You can also use push config tag filter
|
||||
@@ -59,7 +55,7 @@ name: Main
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*.*.*'
|
||||
- "v*.*.*"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -69,8 +65,6 @@ jobs:
|
||||
uses: actions/checkout@v2
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
```
|
||||
|
||||
### ⬆️ Uploading release assets
|
||||
@@ -104,8 +98,6 @@ jobs:
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
with:
|
||||
files: Release.txt
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
```
|
||||
|
||||
Below is an example of uploading more than one asset with a GitHub release
|
||||
@@ -132,8 +124,6 @@ jobs:
|
||||
files: |
|
||||
Release.txt
|
||||
LICENSE
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
```
|
||||
|
||||
> **⚠️ Note:** Notice the `|` in the yaml syntax above ☝️. That let's you effectively declare a multi-line yaml string. You can learn more about multi-line yaml syntax [here](https://yaml-multiline.info)
|
||||
@@ -163,7 +153,6 @@ jobs:
|
||||
with:
|
||||
body_path: ${{ github.workflow }}-CHANGELOG.txt
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GITHUB_REPOSITORY: my_gh_org/my_gh_repo
|
||||
```
|
||||
|
||||
@@ -173,17 +162,20 @@ jobs:
|
||||
|
||||
The following are optional as `step.with` keys
|
||||
|
||||
| Name | Type | Description |
|
||||
| Name | Type | Description |
|
||||
|
||||
|---------------------------|---------|-----------------------------------------------------------------------------------------------------|
|
||||
| `body` | String | Text communicating notable changes in this release |
|
||||
| `body_path` | String | Path to load text communicating notable changes in this release |
|
||||
| `draft` | Boolean | Indicator of whether or not this release is a draft |
|
||||
| `prerelease` | Boolean | Indicator of whether or not is a prerelease |
|
||||
| `files` | String | Newline-delimited globs of paths to assets to upload for release |
|
||||
| `name` | String | Name of the release. defaults to tag name |
|
||||
| `tag_name` | String | Name of a tag. defaults to `github.ref` |
|
||||
| `fail_on_unmatched_files` | Boolean | Indicator of whether to fail if any of the `files` globs match nothing |
|
||||
| `target_commitish` | String | Commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. |
|
||||
|
||||
| `body` | String | Text communicating notable changes in this release |
|
||||
| `body_path` | String | Path to load text communicating notable changes in this release |
|
||||
| `draft` | Boolean | Indicator of whether or not this release is a draft |
|
||||
| `prerelease` | Boolean | Indicator of whether or not is a prerelease |
|
||||
| `files` | String | Newline-delimited globs of paths to assets to upload for release |
|
||||
| `name` | String | Name of the release. defaults to tag name |
|
||||
| `tag_name` | String | Name of a tag. defaults to `github.ref` |
|
||||
| `fail_on_unmatched_files` | Boolean | Indicator of whether to fail if any of the `files` globs match nothing |
|
||||
| `target_commitish` | String | Commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. |
|
||||
| `token` | String | Secret GitHub Personal Access Token. Defaults to `${{ github.token }}` |
|
||||
|
||||
💡 When providing a `body` and `body_path` at the same time, `body_path` will be
|
||||
attempted first, then falling back on `body` if the path can not be read from.
|
||||
@@ -196,22 +188,20 @@ release will retain its original info.
|
||||
|
||||
The following outputs can be accessed via `${{ steps.<step-id>.outputs }}` from this action
|
||||
|
||||
| Name | Type | Description |
|
||||
|-------------|---------|-----------------------------------------------------------------|
|
||||
| `url` | String | Github.com URL for the release |
|
||||
| `id` | String | Release ID |
|
||||
| `upload_url`| String | URL for uploading assets to the release |
|
||||
|
||||
| Name | Type | Description |
|
||||
| ------------ | ------ | --------------------------------------- |
|
||||
| `url` | String | Github.com URL for the release |
|
||||
| `id` | String | Release ID |
|
||||
| `upload_url` | String | URL for uploading assets to the release |
|
||||
|
||||
#### environment variables
|
||||
|
||||
The following are *required* as `step.env` keys
|
||||
|
||||
| Name | Description |
|
||||
|----------------|--------------------------------------|
|
||||
| `GITHUB_TOKEN` | GITHUB_TOKEN as provided by `secrets`|
|
||||
| `GITHUB_REPOSITORY` | Name of a target repository in `<owner>/<repo>` format. defaults to the current repository|
|
||||
The following `step.env` keys are allowed as a fallback but deprecated in favor of using inputs.
|
||||
|
||||
| Name | Description |
|
||||
| ------------------- | ------------------------------------------------------------------------------------------ |
|
||||
| `GITHUB_TOKEN` | GITHUB_TOKEN as provided by `secrets` |
|
||||
| `GITHUB_REPOSITORY` | Name of a target repository in `<owner>/<repo>` format. defaults to the current repository |
|
||||
|
||||
> **⚠️ Note:** This action was previously implemented as a Docker container, limiting its use to GitHub Actions Linux virtual environments only. With recent releases, we now support cross platform usage. You'll need to remove the `docker://` prefix in these versions
|
||||
|
||||
|
||||
+28
-18
@@ -1,50 +1,60 @@
|
||||
# https://help.github.com/en/articles/metadata-syntax-for-github-actions
|
||||
name: 'GH Release'
|
||||
description: 'Github Action for creating Github Releases'
|
||||
author: 'softprops'
|
||||
name: "GH Release"
|
||||
description: "Github Action for creating Github Releases"
|
||||
author: "softprops"
|
||||
inputs:
|
||||
body:
|
||||
description: 'Note-worthy description of changes in release'
|
||||
description: "Note-worthy description of changes in release"
|
||||
required: false
|
||||
body_path:
|
||||
description: 'Path to load note-worthy description of changes in release from'
|
||||
description: "Path to load note-worthy description of changes in release from"
|
||||
required: false
|
||||
name:
|
||||
description: 'Gives the release a custom name. Defaults to tag name'
|
||||
description: "Gives the release a custom name. Defaults to tag name"
|
||||
required: false
|
||||
tag_name:
|
||||
description: 'Gives a tag name. Defaults to github.GITHUB_REF'
|
||||
description: "Gives a tag name. Defaults to github.GITHUB_REF"
|
||||
required: false
|
||||
draft:
|
||||
description: 'Creates a draft release. Defaults to false'
|
||||
description: "Creates a draft release. Defaults to false"
|
||||
required: false
|
||||
prerelease:
|
||||
description: 'Identify the release as a prerelease. Defaults to false'
|
||||
description: "Identify the release as a prerelease. Defaults to false"
|
||||
required: false
|
||||
files:
|
||||
description: 'Newline-delimited list of path globs for asset files to upload'
|
||||
description: "Newline-delimited list of path globs for asset files to upload"
|
||||
required: false
|
||||
fail_on_unmatched_files:
|
||||
description: 'Fails if any of the `files` globs match nothing. Defaults to false'
|
||||
description: "Fails if any of the `files` globs match nothing. Defaults to false"
|
||||
required: false
|
||||
repository:
|
||||
description: 'Repository to make releases against, in <owner>/<repo> format'
|
||||
description: "Repository to make releases against, in <owner>/<repo> format"
|
||||
required: false
|
||||
token:
|
||||
description: "Authorized secret GitHub Personal Access Token. Defaults to github.token"
|
||||
required: false
|
||||
default: ${{ github.token }}
|
||||
target_commitish:
|
||||
description: "Commitish value that determines where the Git tag is created from. Can be any branch or commit SHA."
|
||||
required: false
|
||||
target_commitish:
|
||||
description: 'Commitish value that determines where the Git tag is created from. Can be any branch or commit SHA.'
|
||||
required: false
|
||||
target_commitish:
|
||||
description: 'Commitish value that determines where the Git tag is created from. Can be any branch or commit SHA.'
|
||||
required: false
|
||||
env:
|
||||
'GITHUB_TOKEN': 'As provided by Github Actions'
|
||||
"GITHUB_TOKEN": "As provided by Github Actions"
|
||||
outputs:
|
||||
url:
|
||||
description: 'URL to the Release HTML Page'
|
||||
id:
|
||||
description: 'Release ID'
|
||||
upload_url:
|
||||
description: 'URL for uploading assets to the release'
|
||||
description: "URL for uploading assets to the release"
|
||||
runs:
|
||||
using: 'node12'
|
||||
main: 'dist/index.js'
|
||||
using: "node12"
|
||||
main: "dist/index.js"
|
||||
branding:
|
||||
color: 'green'
|
||||
icon: 'package'
|
||||
color: "green"
|
||||
icon: "package"
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
module.exports=function(e,t){"use strict";var r={};function __webpack_require__(t){if(r[t]){return r[t].exports}var i=r[t]={i:t,l:false,exports:{}};e[t].call(i.exports,i,i.exports,__webpack_require__);i.l=true;return i.exports}__webpack_require__.ab=__dirname+"/";function startup(){return __webpack_require__(131)}return startup()}({0:function(e,t,r){const{requestLog:i}=r(916);const{restEndpointMethods:n}=r(842);const s=r(529);const o=[r(190),r(19),i,r(148),n,r(430),r(850)];const a=s.plugin(o);function DeprecatedOctokit(e){const t=e&&e.log&&e.log.warn?e.log.warn:console.warn;t('[@octokit/rest] `const Octokit = require("@octokit/rest")` is deprecated. Use `const { Octokit } = require("@octokit/rest")` instead');return new a(e)}const p=Object.assign(DeprecatedOctokit,{Octokit:a});Object.keys(a).forEach(e=>{if(a.hasOwnProperty(e)){p[e]=a[e]}});e.exports=p},2:function(e,t,r){"use strict";const i=r(87);const n=r(118);const s=r(494);const o=(e,t)=>{if(!e&&t){throw new Error("You can't specify a `release` without specifying `platform`")}e=e||i.platform();let r;if(e==="darwin"){if(!t&&i.platform()==="darwin"){t=i.release()}const e=t?Number(t.split(".")[0])>15?"macOS":"OS X":"macOS";r=t?n(t).name:"";return e+(r?" "+r:"")}if(e==="linux"){if(!t&&i.platform()==="linux"){t=i.release()}r=t?t.replace(/^(\d+\.\d+).*/,"$1"):"";return"Linux"+(r?" "+r:"")}if(e==="win32"){if(!t&&i.platform()==="win32"){t=i.release()}r=t?s(t):"";return"Windows"+(r?" "+r:"")}return e};e.exports=o},3:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:true});function isObject(e){return Object.prototype.toString.call(e)==="[object Object]"}function isPlainObject(e){var t,r;if(isObject(e)===false)return false;t=e.constructor;if(t===undefined)return true;r=t.prototype;if(isObject(r)===false)return false;if(r.hasOwnProperty("isPrototypeOf")===false){return false}return true}t.isPlainObject=isPlainObject},4:function(e,t){"use strict";var r="\ufeff";t.PrependBOM=PrependBOMWrapper;function PrependBOMWrapper(e,t){this.encoder=e;this.addBOM=true}PrependBOMWrapper.prototype.write=function(e){if(this.addBOM){e=r+e;this.addBOM=false}return this.encoder.write(e)};PrependBOMWrapper.prototype.end=function(){return this.encoder.end()};t.StripBOM=StripBOMWrapper;function StripBOMWrapper(e,t){this.decoder=e;this.pass=false;this.options=t||{}}StripBOMWrapper.prototype.write=function(e){var t=this.decoder.write(e);if(this.pass||!t)return t;if(t[0]===r){t=t.slice(1);if(typeof this.options.stripBOM==="function")this.options.stripBOM()}this.pass=true;return t};StripBOMWrapper.prototype.end=function(){return this.decoder.end()}},9:function(e,t,r){var i=r(49);var n=function(){};var s=function(e){return e.setHeader&&typeof e.abort==="function"};var o=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3};var a=function(e,t,r){if(typeof t==="function")return a(e,null,t);if(!t)t={};r=i(r||n);var p=e._writableState;var u=e._readableState;var c=t.readable||t.readable!==false&&e.readable;var d=t.writable||t.writable!==false&&e.writable;var l=function(){if(!e.writable)m()};var m=function(){d=false;if(!c)r.call(e)};var h=function(){c=false;if(!d)r.call(e)};var g=function(t){r.call(e,t?new Error("exited with error code: "+t):null)};var f=function(t){r.call(e,t)};var y=function(){if(c&&!(u&&u.ended))return r.call(e,new Error("premature close"));if(d&&!(p&&p.ended))return r.call(e,new Error("premature close"))};var b=function(){e.req.on("finish",m)};if(s(e)){e.on("complete",m);e.on("abort",y);if(e.req)b();else e.on("request",b)}else if(d&&!p){e.on("end",l);e.on("close",l)}if(o(e))e.on("exit",g);e.on("end",h);e.on("finish",m);if(t.error!==false)e.on("error",f);e.on("close",y);return function(){e.removeListener("complete",m);e.removeListener("abort",y);e.removeListener("request",b);if(e.req)e.req.removeListener("finish",m);e.removeListener("end",l);e.removeListener("close",l);e.removeListener("finish",m);e.removeListener("exit",g);e.removeListener("end",h);e.removeListener("error",f);e.removeListener("close",y)}};e.exports=a},11:function(e){e.exports=wrappy;function wrappy(e,t){if(e&&t)return wrappy(e)(t);if(typeof e!=="function")throw new TypeError("need wrapper function");Object.keys(e).forEach(function(t){wrapper[t]=e[t]});return wrapper;function wrapper(){var t=new Array(arguments.length);for(var r=0;r<t.length;r++){t[r]=arguments[r]}var i=e.apply(this,t);var n=t[t.length-1];if(typeof i==="function"&&i!==n){Object.keys(n).forEach(function(e){i[e]=n[e]})}return i}}},16:function(e){e.exports=require("tls")},19:function(e,t,r){e.exports=authenticationPlugin;const{Deprecation:i}=r(692);const n=r(49);const s=n((e,t)=>e.warn(t));const o=r(533);const a=r(471);const p=r(349);function authenticationPlugin(e,t){if(t.auth){e.authenticate=(()=>{s(e.log,new i('[@octokit/rest] octokit.authenticate() is deprecated and has no effect when "auth" option is set on Octokit constructor'))});return}const r={octokit:e,auth:false};e.authenticate=o.bind(null,r);e.hook.Line truncated
|
||||
module.exports=function(e,t){"use strict";var r={};function __webpack_require__(t){if(r[t]){return r[t].exports}var i=r[t]={i:t,l:false,exports:{}};e[t].call(i.exports,i,i.exports,__webpack_require__);i.l=true;return i.exports}__webpack_require__.ab=__dirname+"/";function startup(){return __webpack_require__(131)}return startup()}({0:function(e,t,r){const{requestLog:i}=r(916);const{restEndpointMethods:n}=r(842);const s=r(529);const o=[r(190),r(19),i,r(148),n,r(430),r(850)];const a=s.plugin(o);function DeprecatedOctokit(e){const t=e&&e.log&&e.log.warn?e.log.warn:console.warn;t('[@octokit/rest] `const Octokit = require("@octokit/rest")` is deprecated. Use `const { Octokit } = require("@octokit/rest")` instead');return new a(e)}const p=Object.assign(DeprecatedOctokit,{Octokit:a});Object.keys(a).forEach(e=>{if(a.hasOwnProperty(e)){p[e]=a[e]}});e.exports=p},2:function(e,t,r){"use strict";const i=r(87);const n=r(118);const s=r(494);const o=(e,t)=>{if(!e&&t){throw new Error("You can't specify a `release` without specifying `platform`")}e=e||i.platform();let r;if(e==="darwin"){if(!t&&i.platform()==="darwin"){t=i.release()}const e=t?Number(t.split(".")[0])>15?"macOS":"OS X":"macOS";r=t?n(t).name:"";return e+(r?" "+r:"")}if(e==="linux"){if(!t&&i.platform()==="linux"){t=i.release()}r=t?t.replace(/^(\d+\.\d+).*/,"$1"):"";return"Linux"+(r?" "+r:"")}if(e==="win32"){if(!t&&i.platform()==="win32"){t=i.release()}r=t?s(t):"";return"Windows"+(r?" "+r:"")}return e};e.exports=o},3:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:true});function isObject(e){return Object.prototype.toString.call(e)==="[object Object]"}function isPlainObject(e){var t,r;if(isObject(e)===false)return false;t=e.constructor;if(t===undefined)return true;r=t.prototype;if(isObject(r)===false)return false;if(r.hasOwnProperty("isPrototypeOf")===false){return false}return true}t.isPlainObject=isPlainObject},4:function(e,t){"use strict";var r="\ufeff";t.PrependBOM=PrependBOMWrapper;function PrependBOMWrapper(e,t){this.encoder=e;this.addBOM=true}PrependBOMWrapper.prototype.write=function(e){if(this.addBOM){e=r+e;this.addBOM=false}return this.encoder.write(e)};PrependBOMWrapper.prototype.end=function(){return this.encoder.end()};t.StripBOM=StripBOMWrapper;function StripBOMWrapper(e,t){this.decoder=e;this.pass=false;this.options=t||{}}StripBOMWrapper.prototype.write=function(e){var t=this.decoder.write(e);if(this.pass||!t)return t;if(t[0]===r){t=t.slice(1);if(typeof this.options.stripBOM==="function")this.options.stripBOM()}this.pass=true;return t};StripBOMWrapper.prototype.end=function(){return this.decoder.end()}},9:function(e,t,r){var i=r(49);var n=function(){};var s=function(e){return e.setHeader&&typeof e.abort==="function"};var o=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3};var a=function(e,t,r){if(typeof t==="function")return a(e,null,t);if(!t)t={};r=i(r||n);var p=e._writableState;var u=e._readableState;var c=t.readable||t.readable!==false&&e.readable;var d=t.writable||t.writable!==false&&e.writable;var l=function(){if(!e.writable)m()};var m=function(){d=false;if(!c)r.call(e)};var h=function(){c=false;if(!d)r.call(e)};var g=function(t){r.call(e,t?new Error("exited with error code: "+t):null)};var f=function(t){r.call(e,t)};var y=function(){if(c&&!(u&&u.ended))return r.call(e,new Error("premature close"));if(d&&!(p&&p.ended))return r.call(e,new Error("premature close"))};var b=function(){e.req.on("finish",m)};if(s(e)){e.on("complete",m);e.on("abort",y);if(e.req)b();else e.on("request",b)}else if(d&&!p){e.on("end",l);e.on("close",l)}if(o(e))e.on("exit",g);e.on("end",h);e.on("finish",m);if(t.error!==false)e.on("error",f);e.on("close",y);return function(){e.removeListener("complete",m);e.removeListener("abort",y);e.removeListener("request",b);if(e.req)e.req.removeListener("finish",m);e.removeListener("end",l);e.removeListener("close",l);e.removeListener("finish",m);e.removeListener("exit",g);e.removeListener("end",h);e.removeListener("error",f);e.removeListener("close",y)}};e.exports=a},11:function(e){e.exports=wrappy;function wrappy(e,t){if(e&&t)return wrappy(e)(t);if(typeof e!=="function")throw new TypeError("need wrapper function");Object.keys(e).forEach(function(t){wrapper[t]=e[t]});return wrapper;function wrapper(){var t=new Array(arguments.length);for(var r=0;r<t.length;r++){t[r]=arguments[r]}var i=e.apply(this,t);var n=t[t.length-1];if(typeof i==="function"&&i!==n){Object.keys(n).forEach(function(e){i[e]=n[e]})}return i}}},16:function(e){e.exports=require("tls")},19:function(e,t,r){e.exports=authenticationPlugin;const{Deprecation:i}=r(692);const n=r(49);const s=n((e,t)=>e.warn(t));const o=r(533);const a=r(471);const p=r(349);function authenticationPlugin(e,t){if(t.auth){e.authenticate=(()=>{s(e.log,new i('[@octokit/rest] octokit.authenticate() is deprecated and has no effect when "auth" option is set on Octokit constructor'))});return}const r={octokit:e,auth:false};e.authenticate=o.bind(null,r);e.hook.Line truncated
|
||||
+8
-8
@@ -116,7 +116,7 @@ export const asset = (path: string): ReleaseAsset => {
|
||||
name: basename(path),
|
||||
mime: mimeOrDefault(path),
|
||||
size: lstatSync(path).size,
|
||||
file: readFileSync(path)
|
||||
file: readFileSync(path),
|
||||
};
|
||||
};
|
||||
|
||||
@@ -135,10 +135,10 @@ export const upload = async (
|
||||
url,
|
||||
headers: {
|
||||
"content-length": size,
|
||||
"content-type": mime
|
||||
"content-type": mime,
|
||||
},
|
||||
name,
|
||||
file
|
||||
file,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -164,9 +164,9 @@ export const release = async (
|
||||
if (config.input_draft) {
|
||||
for await (const response of releaser.allReleases({
|
||||
owner,
|
||||
repo
|
||||
repo,
|
||||
})) {
|
||||
let release = response.data.find(release => release.tag_name === tag);
|
||||
let release = response.data.find((release) => release.tag_name === tag);
|
||||
if (release) {
|
||||
return release;
|
||||
}
|
||||
@@ -175,7 +175,7 @@ export const release = async (
|
||||
let existingRelease = await releaser.getReleaseByTag({
|
||||
owner,
|
||||
repo,
|
||||
tag
|
||||
tag,
|
||||
});
|
||||
|
||||
const release_id = existingRelease.data.id;
|
||||
@@ -219,7 +219,7 @@ export const release = async (
|
||||
name,
|
||||
body,
|
||||
draft,
|
||||
prerelease
|
||||
prerelease,
|
||||
});
|
||||
return release.data;
|
||||
} catch (error) {
|
||||
@@ -246,7 +246,7 @@ export const release = async (
|
||||
body,
|
||||
draft,
|
||||
prerelease,
|
||||
target_commitish
|
||||
target_commitish,
|
||||
});
|
||||
return release.data;
|
||||
} catch (error) {
|
||||
|
||||
+2
-1
@@ -1,3 +1,4 @@
|
||||
import { getInput } from "@actions/core";
|
||||
import * as glob from "glob";
|
||||
import { lstatSync, readFileSync } from "fs";
|
||||
|
||||
@@ -41,7 +42,7 @@ export const parseInputFiles = (files: string): string[] => {
|
||||
|
||||
export const parseConfig = (env: Env): Config => {
|
||||
return {
|
||||
github_token: env.GITHUB_TOKEN || "",
|
||||
github_token: getInput("token") || env.GITHUB_TOKEN || "",
|
||||
github_ref: env.GITHUB_REF || "",
|
||||
github_repository: env.INPUT_REPOSITORY || env.GITHUB_REPOSITORY || "",
|
||||
input_name: env.INPUT_NAME,
|
||||
|
||||
Reference in new issue
Block a user