Compare commits

..

18 Commits

Author SHA1 Message Date
CrazyMax
98669ae865 Merge pull request #97 from crazy-max/fix-pr-event
Fix `pull_request_target` event
2021-05-25 18:47:42 +02:00
CrazyMax
85f4f732f2 Fix pull_request_target event
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-05-25 18:45:38 +02:00
CrazyMax
013e892d4a Merge pull request #93 from docker/dependabot/npm_and_yarn/actions/core-1.3.0
Bump @actions/core from 1.2.7 to 1.3.0
2021-05-25 02:39:40 +02:00
CrazyMax
4a03258546 Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-05-25 02:37:56 +02:00
dependabot[bot]
3c951ec458 Bump @actions/core from 1.2.7 to 1.3.0
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.2.7 to 1.3.0.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-25 00:34:56 +00:00
CrazyMax
84dbd57663 Merge pull request #94 from docker/dependabot/npm_and_yarn/actions/github-5.0.0
Bump @actions/github from 4.0.0 to 5.0.0
2021-05-25 02:09:27 +02:00
CrazyMax
28d7c8bbcd Fix octokit definition object
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-05-25 02:07:31 +02:00
dependabot[bot]
e5c54f2159 Bump @actions/github from 4.0.0 to 5.0.0
Bumps [@actions/github](https://github.com/actions/toolkit/tree/HEAD/packages/github) from 4.0.0 to 5.0.0.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/github/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/github)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-24 23:36:59 +00:00
CrazyMax
4742d2f661 Merge pull request #92 from crazy-max/dependabot-config
Update dependabot config
2021-05-25 01:34:51 +02:00
CrazyMax
d605601d46 Update dependabot config
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-05-25 01:32:47 +02:00
CrazyMax
9987462005 Merge pull request #91 from crazy-max/pr_target_event
Handle `pull_request_target` event
2021-05-23 15:28:23 +02:00
CrazyMax
4d088f5efc Handle pull_request_target event
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-05-23 03:54:23 +02:00
CrazyMax
e856afadf9 Merge pull request #89 from crazy-max/json-output
Add json output
2021-05-22 22:12:28 +02:00
CrazyMax
e6f3e4aa91 Add json output
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-05-22 21:23:06 +02:00
CrazyMax
01dc739d69 Merge pull request #83 from crazy-max/fix-readme
Fix readme
2021-05-13 21:51:40 +02:00
CrazyMax
a1417fcdec Fix readme
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-05-13 21:46:07 +02:00
CrazyMax
12528c4f05 Merge pull request #81 from crazy-max/sha-format
Add format attribute for type=sha
2021-05-11 20:28:33 +02:00
CrazyMax
8841ef4bb7 Add format attribute for type=sha
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-05-11 20:14:27 +02:00
15 changed files with 1832 additions and 399 deletions

View File

@@ -4,8 +4,6 @@ updates:
directory: "/" directory: "/"
schedule: schedule:
interval: "daily" interval: "daily"
time: "06:00"
timezone: "Europe/Paris"
labels: labels:
- ":game_die: dependencies" - ":game_die: dependencies"
- ":robot: bot" - ":robot: bot"
@@ -13,8 +11,6 @@ updates:
directory: "/" directory: "/"
schedule: schedule:
interval: "daily" interval: "daily"
time: "06:00"
timezone: "Europe/Paris"
allow: allow:
- dependency-type: "production" - dependency-type: "production"
labels: labels:

View File

@@ -165,6 +165,30 @@ jobs:
org.opencontainers.image.description=Another description org.opencontainers.image.description=Another description
org.opencontainers.image.vendor=MyCompany org.opencontainers.image.vendor=MyCompany
json:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Docker meta
id: meta
uses: ./
with:
images: |
${{ env.DOCKER_IMAGE }}
ghcr.io/name/app
labels: |
maintainer=CrazyMax
-
name: JSON output
run: |
echo "maintainer=${{ fromJSON(steps.meta.outputs.json).labels['maintainer'] }}"
echo "version=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }}"
echo "revision=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}"
echo "created=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }}"
docker-push: docker-push:
runs-on: ubuntu-latest runs-on: ubuntu-latest
services: services:

View File

@@ -32,6 +32,7 @@ ___
* [Latest tag](#latest-tag) * [Latest tag](#latest-tag)
* [Global expressions](#global-expressions) * [Global expressions](#global-expressions)
* [Major version zero](#major-version-zero) * [Major version zero](#major-version-zero)
* [JSON output object](#json-output-object)
* [Overwrite labels](#overwrite-labels) * [Overwrite labels](#overwrite-labels)
* [Keep up-to-date with GitHub Dependabot](#keep-up-to-date-with-github-dependabot) * [Keep up-to-date with GitHub Dependabot](#keep-up-to-date-with-github-dependabot)
@@ -274,6 +275,7 @@ Following outputs are available
| `version` | String | Docker image version | | `version` | String | Docker image version |
| `tags` | String | Docker tags | | `tags` | String | Docker tags |
| `labels` | String | Docker labels | | `labels` | String | Docker labels |
| `json` | String | JSON output of tags and labels |
| `bake-file` | File | [Bake definition file](https://github.com/docker/buildx#file-definition) path | | `bake-file` | File | [Bake definition file](https://github.com/docker/buildx#file-definition) path |
## `flavor` input ## `flavor` input
@@ -524,17 +526,19 @@ tags: |
```yaml ```yaml
tags: | tags: |
# minimal # minimal (short sha)
type=sha type=sha
# full length sha
type=sha,format=long
``` ```
Output Git short commit as Docker tag like `sha-ad132f5`. Output Git short commit (or long if specified) as Docker tag like `sha-ad132f5`.
Extended attributes and default values: Extended attributes and default values:
```yaml ```yaml
tags: | tags: |
type=sha,enable=true,priority=100,prefix=sha-,suffix= type=sha,enable=true,priority=100,prefix=sha-,suffix=,format=short
``` ```
## Notes ## Notes
@@ -584,6 +588,30 @@ tags: |
type=semver,pattern={{major}},enable=${{ !startsWith(github.ref, 'refs/tags/v0.') }} type=semver,pattern={{major}},enable=${{ !startsWith(github.ref, 'refs/tags/v0.') }}
``` ```
### JSON output object
The `json` output is a JSON object composed of the generated tags and labels so that you can reuse them further in your
workflow using the [`fromJSON` function](https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#fromjson):
```yaml
-
name: Docker meta
uses: docker/metadata-action@v3
id: meta
with:
images: name/app
-
name: Build and push
uses: docker/build-push-action@v2
with:
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
BUILDTIME=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }}
VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }}
REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}
```
### Overwrite labels ### Overwrite labels
If some of the [OCI Image Format Specification](https://github.com/opencontainers/image-spec/blob/master/annotations.md) If some of the [OCI Image Format Specification](https://github.com/opencontainers/image-spec/blob/master/annotations.md)
@@ -592,7 +620,7 @@ labels generated are not suitable, you can overwrite them like this:
```yaml ```yaml
- -
name: Docker meta name: Docker meta
id: docker_meta id: meta
uses: docker/metadata-action@v3 uses: docker/metadata-action@v3
with: with:
images: name/app images: name/app

View File

@@ -0,0 +1,25 @@
GITHUB_ACTION=crazy-maxghaction-dump-context
GITHUB_ACTIONS=true
GITHUB_ACTION_PATH=/home/runner/work/_actions/crazy-max/ghaction-dump-context/v1
GITHUB_ACTION_REF=
GITHUB_ACTION_REPOSITORY=
GITHUB_ACTOR=crazy-max
GITHUB_API_URL=https://api.github.com
GITHUB_BASE_REF=master
GITHUB_ENV=/home/runner/work/_temp/_runner_file_commands/set_env_cc4da131-0660-4771-8663-0f96c0fc944f
GITHUB_EVENT_NAME=pull_request_target
GITHUB_EVENT_PATH=./__tests__/fixtures/event_pull_request_target.json
GITHUB_GRAPHQL_URL=https://api.github.com/graphql
GITHUB_HEAD_REF=test-pr-target
GITHUB_JOB=build
GITHUB_PATH=/home/runner/work/_temp/_runner_file_commands/add_path_cc4da131-0660-4771-8663-0f96c0fc944f
GITHUB_REF=refs/heads/master
GITHUB_REPOSITORY=crazy-max/test-docker-action
GITHUB_REPOSITORY_OWNER=crazy-max
GITHUB_RETENTION_DAYS=90
GITHUB_RUN_ID=867725119
GITHUB_RUN_NUMBER=12
GITHUB_SERVER_URL=https://github.com
GITHUB_SHA=f24900bfcfee76d8055c8421a164c7e57ad20e68
GITHUB_WORKFLOW=push-ghcr
GITHUB_WORKSPACE=/home/runner/work/test-docker-action/test-docker-action

View File

@@ -0,0 +1,476 @@
{
"action": "synchronize",
"after": "57a8fb29acfb3c1e27c66226a8993fb4ef722e26",
"before": "18c4c149d695bdeba42643ef8343a6b8e466970c",
"number": 8,
"pull_request": {
"_links": {
"comments": {
"href": "https://api.github.com/repos/crazy-max/test-docker-action/issues/8/comments"
},
"commits": {
"href": "https://api.github.com/repos/crazy-max/test-docker-action/pulls/8/commits"
},
"html": {
"href": "https://github.com/crazy-max/test-docker-action/pull/8"
},
"issue": {
"href": "https://api.github.com/repos/crazy-max/test-docker-action/issues/8"
},
"review_comment": {
"href": "https://api.github.com/repos/crazy-max/test-docker-action/pulls/comments{/number}"
},
"review_comments": {
"href": "https://api.github.com/repos/crazy-max/test-docker-action/pulls/8/comments"
},
"self": {
"href": "https://api.github.com/repos/crazy-max/test-docker-action/pulls/8"
},
"statuses": {
"href": "https://api.github.com/repos/crazy-max/test-docker-action/statuses/57a8fb29acfb3c1e27c66226a8993fb4ef722e26"
}
},
"active_lock_reason": null,
"additions": 1,
"assignee": null,
"assignees": [],
"author_association": "OWNER",
"auto_merge": null,
"base": {
"label": "crazy-max:master",
"ref": "master",
"repo": {
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_squash_merge": true,
"archive_url": "https://api.github.com/repos/crazy-max/test-docker-action/{archive_format}{/ref}",
"archived": false,
"assignees_url": "https://api.github.com/repos/crazy-max/test-docker-action/assignees{/user}",
"blobs_url": "https://api.github.com/repos/crazy-max/test-docker-action/git/blobs{/sha}",
"branches_url": "https://api.github.com/repos/crazy-max/test-docker-action/branches{/branch}",
"clone_url": "https://github.com/crazy-max/test-docker-action.git",
"collaborators_url": "https://api.github.com/repos/crazy-max/test-docker-action/collaborators{/collaborator}",
"comments_url": "https://api.github.com/repos/crazy-max/test-docker-action/comments{/number}",
"commits_url": "https://api.github.com/repos/crazy-max/test-docker-action/commits{/sha}",
"compare_url": "https://api.github.com/repos/crazy-max/test-docker-action/compare/{base}...{head}",
"contents_url": "https://api.github.com/repos/crazy-max/test-docker-action/contents/{+path}",
"contributors_url": "https://api.github.com/repos/crazy-max/test-docker-action/contributors",
"created_at": "2020-08-07T09:23:00Z",
"default_branch": "master",
"delete_branch_on_merge": false,
"deployments_url": "https://api.github.com/repos/crazy-max/test-docker-action/deployments",
"description": "Test \"Docker\" Actions",
"disabled": false,
"downloads_url": "https://api.github.com/repos/crazy-max/test-docker-action/downloads",
"events_url": "https://api.github.com/repos/crazy-max/test-docker-action/events",
"fork": false,
"forks": 4,
"forks_count": 4,
"forks_url": "https://api.github.com/repos/crazy-max/test-docker-action/forks",
"full_name": "crazy-max/test-docker-action",
"git_commits_url": "https://api.github.com/repos/crazy-max/test-docker-action/git/commits{/sha}",
"git_refs_url": "https://api.github.com/repos/crazy-max/test-docker-action/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/crazy-max/test-docker-action/git/tags{/sha}",
"git_url": "git://github.com/crazy-max/test-docker-action.git",
"has_downloads": true,
"has_issues": false,
"has_pages": false,
"has_projects": false,
"has_wiki": false,
"homepage": "",
"hooks_url": "https://api.github.com/repos/crazy-max/test-docker-action/hooks",
"html_url": "https://github.com/crazy-max/test-docker-action",
"id": 285789493,
"issue_comment_url": "https://api.github.com/repos/crazy-max/test-docker-action/issues/comments{/number}",
"issue_events_url": "https://api.github.com/repos/crazy-max/test-docker-action/issues/events{/number}",
"issues_url": "https://api.github.com/repos/crazy-max/test-docker-action/issues{/number}",
"keys_url": "https://api.github.com/repos/crazy-max/test-docker-action/keys{/key_id}",
"labels_url": "https://api.github.com/repos/crazy-max/test-docker-action/labels{/name}",
"language": "Dockerfile",
"languages_url": "https://api.github.com/repos/crazy-max/test-docker-action/languages",
"license": {
"key": "mit",
"name": "MIT License",
"node_id": "MDc6TGljZW5zZTEz",
"spdx_id": "MIT",
"url": "https://api.github.com/licenses/mit"
},
"merges_url": "https://api.github.com/repos/crazy-max/test-docker-action/merges",
"milestones_url": "https://api.github.com/repos/crazy-max/test-docker-action/milestones{/number}",
"mirror_url": null,
"name": "test-docker-action",
"node_id": "MDEwOlJlcG9zaXRvcnkyODU3ODk0OTM=",
"notifications_url": "https://api.github.com/repos/crazy-max/test-docker-action/notifications{?since,all,participating}",
"open_issues": 4,
"open_issues_count": 4,
"owner": {
"avatar_url": "https://avatars.githubusercontent.com/u/1951866?v=4",
"events_url": "https://api.github.com/users/crazy-max/events{/privacy}",
"followers_url": "https://api.github.com/users/crazy-max/followers",
"following_url": "https://api.github.com/users/crazy-max/following{/other_user}",
"gists_url": "https://api.github.com/users/crazy-max/gists{/gist_id}",
"gravatar_id": "",
"html_url": "https://github.com/crazy-max",
"id": 1951866,
"login": "crazy-max",
"node_id": "MDQ6VXNlcjE5NTE4NjY=",
"organizations_url": "https://api.github.com/users/crazy-max/orgs",
"received_events_url": "https://api.github.com/users/crazy-max/received_events",
"repos_url": "https://api.github.com/users/crazy-max/repos",
"site_admin": false,
"starred_url": "https://api.github.com/users/crazy-max/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/crazy-max/subscriptions",
"type": "User",
"url": "https://api.github.com/users/crazy-max"
},
"private": false,
"pulls_url": "https://api.github.com/repos/crazy-max/test-docker-action/pulls{/number}",
"pushed_at": "2021-05-23T01:38:41Z",
"releases_url": "https://api.github.com/repos/crazy-max/test-docker-action/releases{/id}",
"size": 137,
"ssh_url": "git@github.com:crazy-max/test-docker-action.git",
"stargazers_count": 3,
"stargazers_url": "https://api.github.com/repos/crazy-max/test-docker-action/stargazers",
"statuses_url": "https://api.github.com/repos/crazy-max/test-docker-action/statuses/{sha}",
"subscribers_url": "https://api.github.com/repos/crazy-max/test-docker-action/subscribers",
"subscription_url": "https://api.github.com/repos/crazy-max/test-docker-action/subscription",
"svn_url": "https://github.com/crazy-max/test-docker-action",
"tags_url": "https://api.github.com/repos/crazy-max/test-docker-action/tags",
"teams_url": "https://api.github.com/repos/crazy-max/test-docker-action/teams",
"trees_url": "https://api.github.com/repos/crazy-max/test-docker-action/git/trees{/sha}",
"updated_at": "2021-05-23T01:37:33Z",
"url": "https://api.github.com/repos/crazy-max/test-docker-action",
"watchers": 3,
"watchers_count": 3
},
"sha": "2b13c4617af78dc00a6304390682f234a53f3665",
"user": {
"avatar_url": "https://avatars.githubusercontent.com/u/1951866?v=4",
"events_url": "https://api.github.com/users/crazy-max/events{/privacy}",
"followers_url": "https://api.github.com/users/crazy-max/followers",
"following_url": "https://api.github.com/users/crazy-max/following{/other_user}",
"gists_url": "https://api.github.com/users/crazy-max/gists{/gist_id}",
"gravatar_id": "",
"html_url": "https://github.com/crazy-max",
"id": 1951866,
"login": "crazy-max",
"node_id": "MDQ6VXNlcjE5NTE4NjY=",
"organizations_url": "https://api.github.com/users/crazy-max/orgs",
"received_events_url": "https://api.github.com/users/crazy-max/received_events",
"repos_url": "https://api.github.com/users/crazy-max/repos",
"site_admin": false,
"starred_url": "https://api.github.com/users/crazy-max/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/crazy-max/subscriptions",
"type": "User",
"url": "https://api.github.com/users/crazy-max"
}
},
"body": "",
"changed_files": 1,
"closed_at": null,
"comments": 0,
"comments_url": "https://api.github.com/repos/crazy-max/test-docker-action/issues/8/comments",
"commits": 2,
"commits_url": "https://api.github.com/repos/crazy-max/test-docker-action/pulls/8/commits",
"created_at": "2021-05-23T01:24:57Z",
"deletions": 1,
"diff_url": "https://github.com/crazy-max/test-docker-action/pull/8.diff",
"draft": false,
"head": {
"label": "crazy-max:test-pr-target",
"ref": "test-pr-target",
"repo": {
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_squash_merge": true,
"archive_url": "https://api.github.com/repos/crazy-max/test-docker-action/{archive_format}{/ref}",
"archived": false,
"assignees_url": "https://api.github.com/repos/crazy-max/test-docker-action/assignees{/user}",
"blobs_url": "https://api.github.com/repos/crazy-max/test-docker-action/git/blobs{/sha}",
"branches_url": "https://api.github.com/repos/crazy-max/test-docker-action/branches{/branch}",
"clone_url": "https://github.com/crazy-max/test-docker-action.git",
"collaborators_url": "https://api.github.com/repos/crazy-max/test-docker-action/collaborators{/collaborator}",
"comments_url": "https://api.github.com/repos/crazy-max/test-docker-action/comments{/number}",
"commits_url": "https://api.github.com/repos/crazy-max/test-docker-action/commits{/sha}",
"compare_url": "https://api.github.com/repos/crazy-max/test-docker-action/compare/{base}...{head}",
"contents_url": "https://api.github.com/repos/crazy-max/test-docker-action/contents/{+path}",
"contributors_url": "https://api.github.com/repos/crazy-max/test-docker-action/contributors",
"created_at": "2020-08-07T09:23:00Z",
"default_branch": "master",
"delete_branch_on_merge": false,
"deployments_url": "https://api.github.com/repos/crazy-max/test-docker-action/deployments",
"description": "Test \"Docker\" Actions",
"disabled": false,
"downloads_url": "https://api.github.com/repos/crazy-max/test-docker-action/downloads",
"events_url": "https://api.github.com/repos/crazy-max/test-docker-action/events",
"fork": false,
"forks": 4,
"forks_count": 4,
"forks_url": "https://api.github.com/repos/crazy-max/test-docker-action/forks",
"full_name": "crazy-max/test-docker-action",
"git_commits_url": "https://api.github.com/repos/crazy-max/test-docker-action/git/commits{/sha}",
"git_refs_url": "https://api.github.com/repos/crazy-max/test-docker-action/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/crazy-max/test-docker-action/git/tags{/sha}",
"git_url": "git://github.com/crazy-max/test-docker-action.git",
"has_downloads": true,
"has_issues": false,
"has_pages": false,
"has_projects": false,
"has_wiki": false,
"homepage": "",
"hooks_url": "https://api.github.com/repos/crazy-max/test-docker-action/hooks",
"html_url": "https://github.com/crazy-max/test-docker-action",
"id": 285789493,
"issue_comment_url": "https://api.github.com/repos/crazy-max/test-docker-action/issues/comments{/number}",
"issue_events_url": "https://api.github.com/repos/crazy-max/test-docker-action/issues/events{/number}",
"issues_url": "https://api.github.com/repos/crazy-max/test-docker-action/issues{/number}",
"keys_url": "https://api.github.com/repos/crazy-max/test-docker-action/keys{/key_id}",
"labels_url": "https://api.github.com/repos/crazy-max/test-docker-action/labels{/name}",
"language": "Dockerfile",
"languages_url": "https://api.github.com/repos/crazy-max/test-docker-action/languages",
"license": {
"key": "mit",
"name": "MIT License",
"node_id": "MDc6TGljZW5zZTEz",
"spdx_id": "MIT",
"url": "https://api.github.com/licenses/mit"
},
"merges_url": "https://api.github.com/repos/crazy-max/test-docker-action/merges",
"milestones_url": "https://api.github.com/repos/crazy-max/test-docker-action/milestones{/number}",
"mirror_url": null,
"name": "test-docker-action",
"node_id": "MDEwOlJlcG9zaXRvcnkyODU3ODk0OTM=",
"notifications_url": "https://api.github.com/repos/crazy-max/test-docker-action/notifications{?since,all,participating}",
"open_issues": 4,
"open_issues_count": 4,
"owner": {
"avatar_url": "https://avatars.githubusercontent.com/u/1951866?v=4",
"events_url": "https://api.github.com/users/crazy-max/events{/privacy}",
"followers_url": "https://api.github.com/users/crazy-max/followers",
"following_url": "https://api.github.com/users/crazy-max/following{/other_user}",
"gists_url": "https://api.github.com/users/crazy-max/gists{/gist_id}",
"gravatar_id": "",
"html_url": "https://github.com/crazy-max",
"id": 1951866,
"login": "crazy-max",
"node_id": "MDQ6VXNlcjE5NTE4NjY=",
"organizations_url": "https://api.github.com/users/crazy-max/orgs",
"received_events_url": "https://api.github.com/users/crazy-max/received_events",
"repos_url": "https://api.github.com/users/crazy-max/repos",
"site_admin": false,
"starred_url": "https://api.github.com/users/crazy-max/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/crazy-max/subscriptions",
"type": "User",
"url": "https://api.github.com/users/crazy-max"
},
"private": false,
"pulls_url": "https://api.github.com/repos/crazy-max/test-docker-action/pulls{/number}",
"pushed_at": "2021-05-23T01:38:41Z",
"releases_url": "https://api.github.com/repos/crazy-max/test-docker-action/releases{/id}",
"size": 137,
"ssh_url": "git@github.com:crazy-max/test-docker-action.git",
"stargazers_count": 3,
"stargazers_url": "https://api.github.com/repos/crazy-max/test-docker-action/stargazers",
"statuses_url": "https://api.github.com/repos/crazy-max/test-docker-action/statuses/{sha}",
"subscribers_url": "https://api.github.com/repos/crazy-max/test-docker-action/subscribers",
"subscription_url": "https://api.github.com/repos/crazy-max/test-docker-action/subscription",
"svn_url": "https://github.com/crazy-max/test-docker-action",
"tags_url": "https://api.github.com/repos/crazy-max/test-docker-action/tags",
"teams_url": "https://api.github.com/repos/crazy-max/test-docker-action/teams",
"trees_url": "https://api.github.com/repos/crazy-max/test-docker-action/git/trees{/sha}",
"updated_at": "2021-05-23T01:37:33Z",
"url": "https://api.github.com/repos/crazy-max/test-docker-action",
"watchers": 3,
"watchers_count": 3
},
"sha": "57a8fb29acfb3c1e27c66226a8993fb4ef722e26",
"user": {
"avatar_url": "https://avatars.githubusercontent.com/u/1951866?v=4",
"events_url": "https://api.github.com/users/crazy-max/events{/privacy}",
"followers_url": "https://api.github.com/users/crazy-max/followers",
"following_url": "https://api.github.com/users/crazy-max/following{/other_user}",
"gists_url": "https://api.github.com/users/crazy-max/gists{/gist_id}",
"gravatar_id": "",
"html_url": "https://github.com/crazy-max",
"id": 1951866,
"login": "crazy-max",
"node_id": "MDQ6VXNlcjE5NTE4NjY=",
"organizations_url": "https://api.github.com/users/crazy-max/orgs",
"received_events_url": "https://api.github.com/users/crazy-max/received_events",
"repos_url": "https://api.github.com/users/crazy-max/repos",
"site_admin": false,
"starred_url": "https://api.github.com/users/crazy-max/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/crazy-max/subscriptions",
"type": "User",
"url": "https://api.github.com/users/crazy-max"
}
},
"html_url": "https://github.com/crazy-max/test-docker-action/pull/8",
"id": 650710002,
"issue_url": "https://api.github.com/repos/crazy-max/test-docker-action/issues/8",
"labels": [],
"locked": false,
"maintainer_can_modify": false,
"merge_commit_sha": "823b99c3c3cf5421e6ff0514b13a44bf21c7a4f0",
"mergeable": null,
"mergeable_state": "unknown",
"merged": false,
"merged_at": null,
"merged_by": null,
"milestone": null,
"node_id": "MDExOlB1bGxSZXF1ZXN0NjUwNzEwMDAy",
"number": 8,
"patch_url": "https://github.com/crazy-max/test-docker-action/pull/8.patch",
"rebaseable": null,
"requested_reviewers": [],
"requested_teams": [],
"review_comment_url": "https://api.github.com/repos/crazy-max/test-docker-action/pulls/comments{/number}",
"review_comments": 0,
"review_comments_url": "https://api.github.com/repos/crazy-max/test-docker-action/pulls/8/comments",
"state": "open",
"statuses_url": "https://api.github.com/repos/crazy-max/test-docker-action/statuses/57a8fb29acfb3c1e27c66226a8993fb4ef722e26",
"title": "Test PR target",
"updated_at": "2021-05-23T01:38:42Z",
"url": "https://api.github.com/repos/crazy-max/test-docker-action/pulls/8",
"user": {
"avatar_url": "https://avatars.githubusercontent.com/u/1951866?v=4",
"events_url": "https://api.github.com/users/crazy-max/events{/privacy}",
"followers_url": "https://api.github.com/users/crazy-max/followers",
"following_url": "https://api.github.com/users/crazy-max/following{/other_user}",
"gists_url": "https://api.github.com/users/crazy-max/gists{/gist_id}",
"gravatar_id": "",
"html_url": "https://github.com/crazy-max",
"id": 1951866,
"login": "crazy-max",
"node_id": "MDQ6VXNlcjE5NTE4NjY=",
"organizations_url": "https://api.github.com/users/crazy-max/orgs",
"received_events_url": "https://api.github.com/users/crazy-max/received_events",
"repos_url": "https://api.github.com/users/crazy-max/repos",
"site_admin": false,
"starred_url": "https://api.github.com/users/crazy-max/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/crazy-max/subscriptions",
"type": "User",
"url": "https://api.github.com/users/crazy-max"
}
},
"repository": {
"archive_url": "https://api.github.com/repos/crazy-max/test-docker-action/{archive_format}{/ref}",
"archived": false,
"assignees_url": "https://api.github.com/repos/crazy-max/test-docker-action/assignees{/user}",
"blobs_url": "https://api.github.com/repos/crazy-max/test-docker-action/git/blobs{/sha}",
"branches_url": "https://api.github.com/repos/crazy-max/test-docker-action/branches{/branch}",
"clone_url": "https://github.com/crazy-max/test-docker-action.git",
"collaborators_url": "https://api.github.com/repos/crazy-max/test-docker-action/collaborators{/collaborator}",
"comments_url": "https://api.github.com/repos/crazy-max/test-docker-action/comments{/number}",
"commits_url": "https://api.github.com/repos/crazy-max/test-docker-action/commits{/sha}",
"compare_url": "https://api.github.com/repos/crazy-max/test-docker-action/compare/{base}...{head}",
"contents_url": "https://api.github.com/repos/crazy-max/test-docker-action/contents/{+path}",
"contributors_url": "https://api.github.com/repos/crazy-max/test-docker-action/contributors",
"created_at": "2020-08-07T09:23:00Z",
"default_branch": "master",
"deployments_url": "https://api.github.com/repos/crazy-max/test-docker-action/deployments",
"description": "Test \"Docker\" Actions",
"disabled": false,
"downloads_url": "https://api.github.com/repos/crazy-max/test-docker-action/downloads",
"events_url": "https://api.github.com/repos/crazy-max/test-docker-action/events",
"fork": false,
"forks": 4,
"forks_count": 4,
"forks_url": "https://api.github.com/repos/crazy-max/test-docker-action/forks",
"full_name": "crazy-max/test-docker-action",
"git_commits_url": "https://api.github.com/repos/crazy-max/test-docker-action/git/commits{/sha}",
"git_refs_url": "https://api.github.com/repos/crazy-max/test-docker-action/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/crazy-max/test-docker-action/git/tags{/sha}",
"git_url": "git://github.com/crazy-max/test-docker-action.git",
"has_downloads": true,
"has_issues": false,
"has_pages": false,
"has_projects": false,
"has_wiki": false,
"homepage": "",
"hooks_url": "https://api.github.com/repos/crazy-max/test-docker-action/hooks",
"html_url": "https://github.com/crazy-max/test-docker-action",
"id": 285789493,
"issue_comment_url": "https://api.github.com/repos/crazy-max/test-docker-action/issues/comments{/number}",
"issue_events_url": "https://api.github.com/repos/crazy-max/test-docker-action/issues/events{/number}",
"issues_url": "https://api.github.com/repos/crazy-max/test-docker-action/issues{/number}",
"keys_url": "https://api.github.com/repos/crazy-max/test-docker-action/keys{/key_id}",
"labels_url": "https://api.github.com/repos/crazy-max/test-docker-action/labels{/name}",
"language": "Dockerfile",
"languages_url": "https://api.github.com/repos/crazy-max/test-docker-action/languages",
"license": {
"key": "mit",
"name": "MIT License",
"node_id": "MDc6TGljZW5zZTEz",
"spdx_id": "MIT",
"url": "https://api.github.com/licenses/mit"
},
"merges_url": "https://api.github.com/repos/crazy-max/test-docker-action/merges",
"milestones_url": "https://api.github.com/repos/crazy-max/test-docker-action/milestones{/number}",
"mirror_url": null,
"name": "test-docker-action",
"node_id": "MDEwOlJlcG9zaXRvcnkyODU3ODk0OTM=",
"notifications_url": "https://api.github.com/repos/crazy-max/test-docker-action/notifications{?since,all,participating}",
"open_issues": 4,
"open_issues_count": 4,
"owner": {
"avatar_url": "https://avatars.githubusercontent.com/u/1951866?v=4",
"events_url": "https://api.github.com/users/crazy-max/events{/privacy}",
"followers_url": "https://api.github.com/users/crazy-max/followers",
"following_url": "https://api.github.com/users/crazy-max/following{/other_user}",
"gists_url": "https://api.github.com/users/crazy-max/gists{/gist_id}",
"gravatar_id": "",
"html_url": "https://github.com/crazy-max",
"id": 1951866,
"login": "crazy-max",
"node_id": "MDQ6VXNlcjE5NTE4NjY=",
"organizations_url": "https://api.github.com/users/crazy-max/orgs",
"received_events_url": "https://api.github.com/users/crazy-max/received_events",
"repos_url": "https://api.github.com/users/crazy-max/repos",
"site_admin": false,
"starred_url": "https://api.github.com/users/crazy-max/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/crazy-max/subscriptions",
"type": "User",
"url": "https://api.github.com/users/crazy-max"
},
"private": false,
"pulls_url": "https://api.github.com/repos/crazy-max/test-docker-action/pulls{/number}",
"pushed_at": "2021-05-23T01:38:41Z",
"releases_url": "https://api.github.com/repos/crazy-max/test-docker-action/releases{/id}",
"size": 137,
"ssh_url": "git@github.com:crazy-max/test-docker-action.git",
"stargazers_count": 3,
"stargazers_url": "https://api.github.com/repos/crazy-max/test-docker-action/stargazers",
"statuses_url": "https://api.github.com/repos/crazy-max/test-docker-action/statuses/{sha}",
"subscribers_url": "https://api.github.com/repos/crazy-max/test-docker-action/subscribers",
"subscription_url": "https://api.github.com/repos/crazy-max/test-docker-action/subscription",
"svn_url": "https://github.com/crazy-max/test-docker-action",
"tags_url": "https://api.github.com/repos/crazy-max/test-docker-action/tags",
"teams_url": "https://api.github.com/repos/crazy-max/test-docker-action/teams",
"trees_url": "https://api.github.com/repos/crazy-max/test-docker-action/git/trees{/sha}",
"updated_at": "2021-05-23T01:37:33Z",
"url": "https://api.github.com/repos/crazy-max/test-docker-action",
"watchers": 3,
"watchers_count": 3
},
"sender": {
"avatar_url": "https://avatars.githubusercontent.com/u/1951866?v=4",
"events_url": "https://api.github.com/users/crazy-max/events{/privacy}",
"followers_url": "https://api.github.com/users/crazy-max/followers",
"following_url": "https://api.github.com/users/crazy-max/following{/other_user}",
"gists_url": "https://api.github.com/users/crazy-max/gists{/gist_id}",
"gravatar_id": "",
"html_url": "https://github.com/crazy-max",
"id": 1951866,
"login": "crazy-max",
"node_id": "MDQ6VXNlcjE5NTE4NjY=",
"organizations_url": "https://api.github.com/users/crazy-max/orgs",
"received_events_url": "https://api.github.com/users/crazy-max/received_events",
"repos_url": "https://api.github.com/users/crazy-max/repos",
"site_admin": false,
"starred_url": "https://api.github.com/users/crazy-max/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/crazy-max/subscriptions",
"type": "User",
"url": "https://api.github.com/users/crazy-max"
}
}

View File

@@ -1,10 +1,9 @@
import * as path from 'path'; import * as path from 'path';
import * as github from '../src/github'; import * as github from '../src/github';
import {ReposGetResponseData} from '@octokit/types';
jest.spyOn(github, 'repo').mockImplementation( jest.spyOn(github, 'repo').mockImplementation(
(): Promise<ReposGetResponseData> => { (): Promise<github.ReposGetResponseData> => {
return <Promise<ReposGetResponseData>>require(path.join(__dirname, 'fixtures', 'repo.json')); return <Promise<github.ReposGetResponseData>>require(path.join(__dirname, 'fixtures', 'repo.json'));
} }
); );

View File

@@ -6,11 +6,10 @@ import {getInputs, Inputs} from '../src/context';
import * as github from '../src/github'; import * as github from '../src/github';
import {Meta, Version} from '../src/meta'; import {Meta, Version} from '../src/meta';
import {Context} from '@actions/github/lib/context'; import {Context} from '@actions/github/lib/context';
import {ReposGetResponseData} from '@octokit/types';
jest.spyOn(github, 'repo').mockImplementation( jest.spyOn(github, 'repo').mockImplementation(
(): Promise<ReposGetResponseData> => { (): Promise<github.ReposGetResponseData> => {
return <Promise<ReposGetResponseData>>require(path.join(__dirname, 'fixtures', 'repo.json')); return <Promise<github.ReposGetResponseData>>require(path.join(__dirname, 'fixtures', 'repo.json'));
} }
); );
@@ -617,6 +616,38 @@ describe('push', () => {
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071", "org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
"org.opencontainers.image.licenses=MIT" "org.opencontainers.image.licenses=MIT"
] ]
],
[
'push18',
'event_push.env',
{
images: ['org/app', 'ghcr.io/user/app'],
tags: [
`type=ref,event=branch`,
`type=sha,format=long`
],
} as Inputs,
{
main: 'dev',
partial: ['sha-90dd6032fac8bda1b6c4436a2e65de27961ed071'],
latest: false
} as Version,
[
'org/app:dev',
'org/app:sha-90dd6032fac8bda1b6c4436a2e65de27961ed071',
'ghcr.io/user/app:dev',
'ghcr.io/user/app:sha-90dd6032fac8bda1b6c4436a2e65de27961ed071'
],
[
"org.opencontainers.image.title=Hello-World",
"org.opencontainers.image.description=This your first repo!",
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
"org.opencontainers.image.version=dev",
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
"org.opencontainers.image.licenses=MIT"
]
] ]
])('given %p with %p event', tagsLabelsTest); ])('given %p with %p event', tagsLabelsTest);
}); });
@@ -1744,6 +1775,108 @@ describe('pr', () => {
"org.opencontainers.image.revision=1e9249f05bfc090e0688b8fb9c1b347586add504", "org.opencontainers.image.revision=1e9249f05bfc090e0688b8fb9c1b347586add504",
"org.opencontainers.image.licenses=MIT" "org.opencontainers.image.licenses=MIT"
] ]
],
[
'pr07',
'event_pull_request_target.env',
{
images: ['org/app', 'ghcr.io/user/app'],
tags: [
`type=sha,priority=2000`,
`type=ref,event=pr`
]
} as Inputs,
{
main: 'sha-f24900b',
partial: ['pr-8'],
latest: false
} as Version,
[
'org/app:sha-f24900b',
'org/app:pr-8',
'ghcr.io/user/app:sha-f24900b',
'ghcr.io/user/app:pr-8'
],
[
"org.opencontainers.image.title=Hello-World",
"org.opencontainers.image.description=This your first repo!",
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
"org.opencontainers.image.version=sha-f24900b",
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
"org.opencontainers.image.revision=f24900bfcfee76d8055c8421a164c7e57ad20e68",
"org.opencontainers.image.licenses=MIT"
]
],
[
'pr08',
'event_pull_request_target.env',
{
images: ['org/app', 'ghcr.io/user/app'],
tags: [
`type=ref,event=pr,prefix=`
],
flavor: [
`prefix=glo-`,
`suffix=-bal`
]
} as Inputs,
{
main: '8-bal',
partial: [],
latest: false
} as Version,
[
'org/app:8-bal',
'ghcr.io/user/app:8-bal'
],
[
"org.opencontainers.image.title=Hello-World",
"org.opencontainers.image.description=This your first repo!",
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
"org.opencontainers.image.version=8-bal",
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
"org.opencontainers.image.revision=f24900bfcfee76d8055c8421a164c7e57ad20e68",
"org.opencontainers.image.licenses=MIT"
]
],
[
'pr09',
'event_pull_request_target.env',
{
images: ['org/app'],
tags: [
`type=ref,event=tag`,
`type=ref,event=pr`,
`type=ref,event=branch`,
`type=sha`,
`type=sha,format=long`
]
} as Inputs,
{
main: 'pr-8',
partial: [
'sha-f24900b',
'sha-f24900bfcfee76d8055c8421a164c7e57ad20e68'
],
latest: false
} as Version,
[
'org/app:pr-8',
'org/app:sha-f24900b',
'org/app:sha-f24900bfcfee76d8055c8421a164c7e57ad20e68'
],
[
"org.opencontainers.image.title=Hello-World",
"org.opencontainers.image.description=This your first repo!",
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
"org.opencontainers.image.version=pr-8",
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
"org.opencontainers.image.revision=f24900bfcfee76d8055c8421a164c7e57ad20e68",
"org.opencontainers.image.licenses=MIT"
]
] ]
])('given %p with %p event', tagsLabelsTest); ])('given %p with %p event', tagsLabelsTest);
}); });
@@ -2362,6 +2495,258 @@ describe('raw', () => {
])('given %p wth %p event', tagsLabelsTest); ])('given %p wth %p event', tagsLabelsTest);
}); });
describe('json', () => {
// prettier-ignore
test.each([
[
'json01',
'event_push.env',
{
images: ['user/app'],
tags: [
`type=ref,event=branch`,
`type=raw,my`,
`type=raw,custom`,
`type=raw,tags`
],
labels: [
"invalid"
]
} as Inputs,
{
"tags": [
"user/app:dev",
"user/app:my",
"user/app:custom",
"user/app:tags"
],
"labels": {
"org.opencontainers.image.title": "Hello-World",
"org.opencontainers.image.description": "This your first repo!",
"org.opencontainers.image.url": "https://github.com/octocat/Hello-World",
"org.opencontainers.image.source": "https://github.com/octocat/Hello-World",
"org.opencontainers.image.version": "dev",
"org.opencontainers.image.created": "2020-01-10T00:30:00.000Z",
"org.opencontainers.image.revision": "90dd6032fac8bda1b6c4436a2e65de27961ed071",
"org.opencontainers.image.licenses": "MIT"
}
}
],
[
'json02',
'event_push.env',
{
images: ['user/app'],
tags: [
`type=ref,event=branch`,
`type=raw,my`
]
} as Inputs,
{
"tags": [
"user/app:dev",
"user/app:my",
],
"labels": {
"org.opencontainers.image.title": "Hello-World",
"org.opencontainers.image.description": "This your first repo!",
"org.opencontainers.image.url": "https://github.com/octocat/Hello-World",
"org.opencontainers.image.source": "https://github.com/octocat/Hello-World",
"org.opencontainers.image.version": "dev",
"org.opencontainers.image.created": "2020-01-10T00:30:00.000Z",
"org.opencontainers.image.revision": "90dd6032fac8bda1b6c4436a2e65de27961ed071",
"org.opencontainers.image.licenses": "MIT"
}
}
],
[
'json03',
'event_tag_release1.env',
{
images: ['user/app'],
tags: [
`type=ref,event=tag`,
`type=raw,my`,
`type=raw,custom`,
`type=raw,tags`
],
bakeTarget: "meta"
} as Inputs,
{
"tags": [
"user/app:release1",
"user/app:my",
"user/app:custom",
"user/app:tags",
"user/app:latest"
],
"labels": {
"org.opencontainers.image.title": "Hello-World",
"org.opencontainers.image.description": "This your first repo!",
"org.opencontainers.image.url": "https://github.com/octocat/Hello-World",
"org.opencontainers.image.source": "https://github.com/octocat/Hello-World",
"org.opencontainers.image.version": "release1",
"org.opencontainers.image.created": "2020-01-10T00:30:00.000Z",
"org.opencontainers.image.revision": "90dd6032fac8bda1b6c4436a2e65de27961ed071",
"org.opencontainers.image.licenses": "MIT"
}
}
],
[
'json04',
'event_tag_20200110-RC2.env',
{
images: ['user/app'],
tags: [
`type=match,pattern=\\d{8}`,
`type=raw,my`,
`type=raw,custom`,
`type=raw,tags`
],
flavor: [
`latest=false`
]
} as Inputs,
{
"tags": [
"user/app:20200110",
"user/app:my",
"user/app:custom",
"user/app:tags"
],
"labels": {
"org.opencontainers.image.title": "Hello-World",
"org.opencontainers.image.description": "This your first repo!",
"org.opencontainers.image.url": "https://github.com/octocat/Hello-World",
"org.opencontainers.image.source": "https://github.com/octocat/Hello-World",
"org.opencontainers.image.version": "20200110",
"org.opencontainers.image.created": "2020-01-10T00:30:00.000Z",
"org.opencontainers.image.revision": "90dd6032fac8bda1b6c4436a2e65de27961ed071",
"org.opencontainers.image.licenses": "MIT"
}
}
],
[
'json05',
'event_tag_v1.1.1.env',
{
images: ['org/app', 'ghcr.io/user/app'],
tags: [
`type=semver,pattern={{version}}`,
`type=semver,pattern={{major}}.{{minor}}`,
`type=semver,pattern={{major}}`,
`type=raw,my`,
`type=raw,custom`,
`type=raw,tags`
]
} as Inputs,
{
"tags": [
"org/app:1.1.1",
"org/app:1.1",
"org/app:1",
"org/app:my",
"org/app:custom",
"org/app:tags",
"org/app:latest",
"ghcr.io/user/app:1.1.1",
"ghcr.io/user/app:1.1",
"ghcr.io/user/app:1",
"ghcr.io/user/app:my",
"ghcr.io/user/app:custom",
"ghcr.io/user/app:tags",
"ghcr.io/user/app:latest"
],
"labels": {
"org.opencontainers.image.title": "Hello-World",
"org.opencontainers.image.description": "This your first repo!",
"org.opencontainers.image.url": "https://github.com/octocat/Hello-World",
"org.opencontainers.image.source": "https://github.com/octocat/Hello-World",
"org.opencontainers.image.version": "1.1.1",
"org.opencontainers.image.created": "2020-01-10T00:30:00.000Z",
"org.opencontainers.image.revision": "90dd6032fac8bda1b6c4436a2e65de27961ed071",
"org.opencontainers.image.licenses": "MIT"
}
}
],
[
'json06',
'event_tag_v1.1.1.env',
{
images: ['org/app', 'ghcr.io/user/app'],
tags: [
`type=raw,my`,
`type=raw,custom`,
`type=raw,tags`
]
} as Inputs,
{
"tags": [
"org/app:my",
"org/app:custom",
"org/app:tags",
"ghcr.io/user/app:my",
"ghcr.io/user/app:custom",
"ghcr.io/user/app:tags"
],
"labels": {
"org.opencontainers.image.title": "Hello-World",
"org.opencontainers.image.description": "This your first repo!",
"org.opencontainers.image.url": "https://github.com/octocat/Hello-World",
"org.opencontainers.image.source": "https://github.com/octocat/Hello-World",
"org.opencontainers.image.version": "my",
"org.opencontainers.image.created": "2020-01-10T00:30:00.000Z",
"org.opencontainers.image.revision": "90dd6032fac8bda1b6c4436a2e65de27961ed071",
"org.opencontainers.image.licenses": "MIT"
}
}
],
[
'json07',
'event_tag_v1.1.1.env',
{
images: ['org/app'],
labels: [
"foo",
"maintainer=CrazyMax",
"org.opencontainers.image.title=MyCustom=Title",
"org.opencontainers.image.description=Another description",
"org.opencontainers.image.vendor=MyCompany",
],
} as Inputs,
{
"tags": [
"org/app:v1.1.1",
"org/app:latest"
],
"labels": {
"maintainer": "CrazyMax",
"org.opencontainers.image.title": "MyCustom=Title",
"org.opencontainers.image.description": "Another description",
"org.opencontainers.image.url": "https://github.com/octocat/Hello-World",
"org.opencontainers.image.source": "https://github.com/octocat/Hello-World",
"org.opencontainers.image.vendor": "MyCompany",
"org.opencontainers.image.version": "v1.1.1",
"org.opencontainers.image.created": "2020-01-10T00:30:00.000Z",
"org.opencontainers.image.revision": "90dd6032fac8bda1b6c4436a2e65de27961ed071",
"org.opencontainers.image.licenses": "MIT"
}
}
]
])('given %p with %p event', async (name: string, envFile: string, inputs: Inputs, exJSON: {}) => {
process.env = dotenv.parse(fs.readFileSync(path.join(__dirname, 'fixtures', envFile)));
const context = github.context();
console.log(process.env, context);
const repo = await github.repo(process.env.GITHUB_TOKEN || '');
const meta = new Meta({...getInputs(), ...inputs}, context, repo);
const jsonOutput = meta.getJSON();
console.log('json', jsonOutput);
expect(jsonOutput).toEqual(exJSON);
});
});
describe('bake', () => { describe('bake', () => {
// prettier-ignore // prettier-ignore
test.each([ test.each([

View File

@@ -1,4 +1,4 @@
import {Transform, Parse, Tag, Type, RefEvent, DefaultPriorities} from '../src/tag'; import {Transform, Parse, Tag, Type, RefEvent, ShaFormat, DefaultPriorities} from '../src/tag';
describe('transform', () => { describe('transform', () => {
// prettier-ignore // prettier-ignore
@@ -89,7 +89,8 @@ describe('transform', () => {
attrs: { attrs: {
"priority": DefaultPriorities[Type.Sha], "priority": DefaultPriorities[Type.Sha],
"enable": "true", "enable": "true",
"prefix": "sha-" "prefix": "sha-",
"format": ShaFormat.Short
} }
} }
] as Tag[], ] as Tag[],
@@ -355,7 +356,21 @@ describe('parse', () => {
attrs: { attrs: {
"priority": DefaultPriorities[Type.Sha], "priority": DefaultPriorities[Type.Sha],
"enable": "true", "enable": "true",
"prefix": "sha-" "prefix": "sha-",
"format": ShaFormat.Short
}
} as Tag,
false
],
[
`type=sha,format=long`,
{
type: Type.Sha,
attrs: {
"priority": DefaultPriorities[Type.Sha],
"enable": "true",
"prefix": "sha-",
"format": ShaFormat.Long
} }
} as Tag, } as Tag,
false false
@@ -367,7 +382,8 @@ describe('parse', () => {
attrs: { attrs: {
"priority": DefaultPriorities[Type.Sha], "priority": DefaultPriorities[Type.Sha],
"enable": "true", "enable": "true",
"prefix": "" "prefix": "",
"format": ShaFormat.Short
} }
} as Tag, } as Tag,
false false
@@ -379,7 +395,8 @@ describe('parse', () => {
attrs: { attrs: {
"priority": DefaultPriorities[Type.Sha], "priority": DefaultPriorities[Type.Sha],
"enable": "false", "enable": "false",
"prefix": "sha-" "prefix": "sha-",
"format": ShaFormat.Short
} }
} as Tag, } as Tag,
false false
@@ -403,6 +420,11 @@ describe('parse', () => {
`type=sha,enable=foo`, `type=sha,enable=foo`,
{} as Tag, {} as Tag,
true true
],
[
`type=sha,format=foo`,
{} as Tag,
true
] ]
])('given %p event ', async (s: string, expected: Tag, invalid: boolean) => { ])('given %p event ', async (s: string, expected: Tag, invalid: boolean) => {
try { try {

984
dist/index.js generated vendored

File diff suppressed because one or more lines are too long

View File

@@ -29,8 +29,8 @@
], ],
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"@actions/core": "^1.2.7", "@actions/core": "^1.3.0",
"@actions/github": "^4.0.0", "@actions/github": "^5.0.0",
"csv-parse": "^4.15.4", "csv-parse": "^4.15.4",
"handlebars": "^4.7.7", "handlebars": "^4.7.7",
"moment": "^2.29.1", "moment": "^2.29.1",

View File

@@ -1,18 +1,18 @@
import * as github from '@actions/github'; import * as github from '@actions/github';
import {Context} from '@actions/github/lib/context'; import {Context} from '@actions/github/lib/context';
import {ReposGetResponseData} from '@octokit/types'; import {components as OctoOpenApiTypes} from '@octokit/openapi-types';
export type ReposGetResponseData = OctoOpenApiTypes['schemas']['repository'];
export function context(): Context { export function context(): Context {
return github.context; return github.context;
} }
export async function repo(token: string): Promise<ReposGetResponseData> { export async function repo(token: string): Promise<ReposGetResponseData> {
const octokit = github.getOctokit(token); return github
const repo = await octokit.repos.get({ .getOctokit(token)
.rest.repos.get({
...github.context.repo ...github.context.repo
}); })
if (!repo?.data) { .then(response => response.data as ReposGetResponseData);
throw new Error('Cannot get GitHub repository');
}
return repo.data;
} }

View File

@@ -4,7 +4,6 @@ import * as github from './github';
import {Meta, Version} from './meta'; import {Meta, Version} from './meta';
import * as core from '@actions/core'; import * as core from '@actions/core';
import {Context} from '@actions/github/lib/context'; import {Context} from '@actions/github/lib/context';
import {ReposGetResponseData} from '@octokit/types';
async function run() { async function run() {
try { try {
@@ -14,7 +13,7 @@ async function run() {
} }
const context: Context = github.context(); const context: Context = github.context();
const repo: ReposGetResponseData = await github.repo(inputs.githubToken); const repo: github.ReposGetResponseData = await github.repo(inputs.githubToken);
core.startGroup(`Context info`); core.startGroup(`Context info`);
core.info(`eventName: ${context.eventName}`); core.info(`eventName: ${context.eventName}`);
core.info(`sha: ${context.sha}`); core.info(`sha: ${context.sha}`);
@@ -60,6 +59,13 @@ async function run() {
core.endGroup(); core.endGroup();
setOutput('labels', labels.join(inputs.sepLabels)); setOutput('labels', labels.join(inputs.sepLabels));
// JSON
const jsonOutput = meta.getJSON();
core.startGroup(`JSON output`);
core.info(JSON.stringify(jsonOutput, null, 2));
core.endGroup();
setOutput('json', jsonOutput);
// Bake definition file // Bake definition file
const bakeFile: string = meta.getBakeFile(); const bakeFile: string = meta.getBakeFile();
core.startGroup(`Bake definition file`); core.startGroup(`Bake definition file`);

View File

@@ -4,11 +4,11 @@ import * as path from 'path';
import moment from 'moment'; import moment from 'moment';
import * as semver from 'semver'; import * as semver from 'semver';
import {Inputs, tmpDir} from './context'; import {Inputs, tmpDir} from './context';
import {ReposGetResponseData} from './github';
import * as tcl from './tag'; import * as tcl from './tag';
import * as fcl from './flavor'; import * as fcl from './flavor';
import * as core from '@actions/core'; import * as core from '@actions/core';
import {Context} from '@actions/github/lib/context'; import {Context} from '@actions/github/lib/context';
import {ReposGetResponseData} from '@octokit/types';
export interface Version { export interface Version {
main: string | undefined; main: string | undefined;
@@ -27,6 +27,12 @@ export class Meta {
private readonly date: Date; private readonly date: Date;
constructor(inputs: Inputs, context: Context, repo: ReposGetResponseData) { constructor(inputs: Inputs, context: Context, repo: ReposGetResponseData) {
// Needs to override Git reference with pr ref instead of upstream branch ref
// for pull_request_target event
if (/pull_request_target/.test(context.eventName)) {
context.ref = `refs/pull/${context.payload.number}/merge`;
}
this.inputs = inputs; this.inputs = inputs;
this.context = context; this.context = context;
this.repo = repo; this.repo = repo;
@@ -194,6 +200,7 @@ export class Meta {
if (!/^refs\/pull\//.test(this.context.ref)) { if (!/^refs\/pull\//.test(this.context.ref)) {
return version; return version;
} }
const vraw = this.setValue(this.context.ref.replace(/^refs\/pull\//g, '').replace(/\/merge$/g, ''), tag); const vraw = this.setValue(this.context.ref.replace(/^refs\/pull\//g, '').replace(/\/merge$/g, ''), tag);
return Meta.setVersion(version, vraw, this.flavor.latest == 'auto' ? false : this.flavor.latest == 'true'); return Meta.setVersion(version, vraw, this.flavor.latest == 'auto' ? false : this.flavor.latest == 'true');
} }
@@ -224,7 +231,13 @@ export class Meta {
if (!this.context.sha) { if (!this.context.sha) {
return version; return version;
} }
const vraw = this.setValue(this.context.sha.substr(0, 7), tag);
let val = this.context.sha;
if (tag.attrs['format'] === tcl.ShaFormat.Short) {
val = this.context.sha.substr(0, 7);
}
const vraw = this.setValue(val, tag);
return Meta.setVersion(version, vraw, this.flavor.latest == 'auto' ? false : this.flavor.latest == 'true'); return Meta.setVersion(version, vraw, this.flavor.latest == 'auto' ? false : this.flavor.latest == 'true');
} }
@@ -312,16 +325,21 @@ export class Meta {
return labels; return labels;
} }
public getBakeFile(): string { public getJSON(): {} {
let jsonLabels = {}; return {
for (let label of this.getLabels()) { tags: this.getTags(),
labels: this.getLabels().reduce((res, label) => {
const matches = label.match(/([^=]*)=(.*)/); const matches = label.match(/([^=]*)=(.*)/);
if (!matches) { if (!matches) {
continue; return res;
} }
jsonLabels[matches[1]] = matches[2]; res[matches[1]] = matches[2];
return res;
}, {})
};
} }
public getBakeFile(): string {
const bakeFile = path.join(tmpDir(), 'docker-metadata-action-bake.json').split(path.sep).join(path.posix.sep); const bakeFile = path.join(tmpDir(), 'docker-metadata-action-bake.json').split(path.sep).join(path.posix.sep);
fs.writeFileSync( fs.writeFileSync(
bakeFile, bakeFile,
@@ -330,7 +348,14 @@ export class Meta {
target: { target: {
[this.inputs.bakeTarget]: { [this.inputs.bakeTarget]: {
tags: this.getTags(), tags: this.getTags(),
labels: jsonLabels, labels: this.getLabels().reduce((res, label) => {
const matches = label.match(/([^=]*)=(.*)/);
if (!matches) {
return res;
}
res[matches[1]] = matches[2];
return res;
}, {}),
args: { args: {
DOCKER_META_IMAGES: this.inputs.images.join(','), DOCKER_META_IMAGES: this.inputs.images.join(','),
DOCKER_META_VERSION: this.version.main DOCKER_META_VERSION: this.version.main

View File

@@ -17,6 +17,11 @@ export enum RefEvent {
PR = 'pr' PR = 'pr'
} }
export enum ShaFormat {
Short = 'short',
Long = 'long'
}
export class Tag { export class Tag {
public type?: Type; public type?: Type;
public attrs: Record<string, string>; public attrs: Record<string, string>;
@@ -175,6 +180,16 @@ export function Parse(s: string): Tag {
if (!tag.attrs.hasOwnProperty('prefix')) { if (!tag.attrs.hasOwnProperty('prefix')) {
tag.attrs['prefix'] = 'sha-'; tag.attrs['prefix'] = 'sha-';
} }
if (!tag.attrs.hasOwnProperty('format')) {
tag.attrs['format'] = ShaFormat.Short;
}
if (
!Object.keys(ShaFormat)
.map(k => ShaFormat[k])
.includes(tag.attrs['format'])
) {
throw new Error(`Invalid format for ${s}`);
}
break; break;
} }
} }

138
yarn.lock
View File

@@ -2,25 +2,25 @@
# yarn lockfile v1 # yarn lockfile v1
"@actions/core@^1.2.7": "@actions/core@^1.3.0":
version "1.2.7" version "1.3.0"
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.2.7.tgz#594f8c45b213f0146e4be7eda8ae5cf4e198e5ab" resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.3.0.tgz#f5e4b24c889e7f2e58b466cc8c7481292284eba0"
integrity sha512-kzLFD5BgEvq6ubcxdgPbRKGD2Qrgya/5j+wh4LZzqT915I0V3rED+MvjH6NXghbvk1MXknpNNQ3uKjXSEN00Ig== integrity sha512-xxtX0Cwdhb8LcgatfJkokqT8KzPvcIbwL9xpLU09nOwBzaStbfm0dNncsP0M4us+EpoPdWy7vbzU5vSOH7K6pg==
"@actions/github@^4.0.0": "@actions/github@^5.0.0":
version "4.0.0" version "5.0.0"
resolved "https://registry.yarnpkg.com/@actions/github/-/github-4.0.0.tgz#d520483151a2bf5d2dc9cd0f20f9ac3a2e458816" resolved "https://registry.yarnpkg.com/@actions/github/-/github-5.0.0.tgz#1754127976c50bd88b2e905f10d204d76d1472f8"
integrity sha512-Ej/Y2E+VV6sR9X7pWL5F3VgEWrABaT292DRqRU6R4hnQjPtC/zD3nagxVdXWiRQvYDh8kHXo7IDmG42eJ/dOMA== integrity sha512-QvE9eAAfEsS+yOOk0cylLBIO/d6WyWIOvsxxzdrPFaud39G6BOkUwScXZn1iBzQzHyu9SBkkLSWlohDWdsasAQ==
dependencies: dependencies:
"@actions/http-client" "^1.0.8" "@actions/http-client" "^1.0.11"
"@octokit/core" "^3.0.0" "@octokit/core" "^3.4.0"
"@octokit/plugin-paginate-rest" "^2.2.3" "@octokit/plugin-paginate-rest" "^2.13.3"
"@octokit/plugin-rest-endpoint-methods" "^4.0.0" "@octokit/plugin-rest-endpoint-methods" "^5.1.1"
"@actions/http-client@^1.0.8": "@actions/http-client@^1.0.11":
version "1.0.9" version "1.0.11"
resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-1.0.9.tgz#af1947d020043dbc6a3b4c5918892095c30ffb52" resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-1.0.11.tgz#c58b12e9aa8b159ee39e7dd6cbd0e91d905633c0"
integrity sha512-0O4SsJ7q+MK0ycvXPl2e6bMXV7dxAXOGjrXS1eTF9s2S401Tp6c/P3c3Joz04QefC1J6Gt942Wl2jbm3f4mLcg== integrity sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==
dependencies: dependencies:
tunnel "0.0.6" tunnel "0.0.6"
@@ -486,23 +486,24 @@
"@types/yargs" "^15.0.0" "@types/yargs" "^15.0.0"
chalk "^4.0.0" chalk "^4.0.0"
"@octokit/auth-token@^2.4.0": "@octokit/auth-token@^2.4.4":
version "2.4.2" version "2.4.5"
resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.2.tgz#10d0ae979b100fa6b72fa0e8e63e27e6d0dbff8a" resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.5.tgz#568ccfb8cb46f36441fac094ce34f7a875b197f3"
integrity sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ== integrity sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==
dependencies: dependencies:
"@octokit/types" "^5.0.0" "@octokit/types" "^6.0.3"
"@octokit/core@^3.0.0": "@octokit/core@^3.4.0":
version "3.1.4" version "3.4.0"
resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.1.4.tgz#9c51a3d77bad7d8aa5ec0e997ee90da224206b5e" resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.4.0.tgz#b48aa27d755b339fe7550548b340dcc2b513b742"
integrity sha512-eNDwFpKbGbLzPXiFE5PCoeq3nHlKTmWcCtZfQNCwJmW21XqrWr6c2uUhgLCzDeDkQVvKqUWaIgeCDB6i6mvFoA== integrity sha512-6/vlKPP8NF17cgYXqucdshWqmMZGXkuvtcrWCgU5NOI0Pl2GjlmZyWgBMrU8zJ3v2MJlM6++CiB45VKYmhiWWg==
dependencies: dependencies:
"@octokit/auth-token" "^2.4.0" "@octokit/auth-token" "^2.4.4"
"@octokit/graphql" "^4.3.1" "@octokit/graphql" "^4.5.8"
"@octokit/request" "^5.4.0" "@octokit/request" "^5.4.12"
"@octokit/types" "^5.0.0" "@octokit/request-error" "^2.0.5"
before-after-hook "^2.1.0" "@octokit/types" "^6.0.3"
before-after-hook "^2.2.0"
universal-user-agent "^6.0.0" universal-user-agent "^6.0.0"
"@octokit/endpoint@^6.0.1": "@octokit/endpoint@^6.0.1":
@@ -514,28 +515,33 @@
is-plain-object "^5.0.0" is-plain-object "^5.0.0"
universal-user-agent "^6.0.0" universal-user-agent "^6.0.0"
"@octokit/graphql@^4.3.1": "@octokit/graphql@^4.5.8":
version "4.5.6" version "4.6.2"
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.5.6.tgz#708143ba15cf7c1879ed6188266e7f270be805d4" resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.6.2.tgz#ec44abdfa87f2b9233282136ae33e4ba446a04e7"
integrity sha512-Rry+unqKTa3svswT2ZAuqenpLrzJd+JTv89LTeVa5UM/5OX8o4KTkPL7/1ABq4f/ZkELb0XEK/2IEoYwykcLXg== integrity sha512-WmsIR1OzOr/3IqfG9JIczI8gMJUMzzyx5j0XXQ4YihHtKlQc+u35VpVoOXhlKAlaBntvry1WpAzPl/a+s3n89Q==
dependencies: dependencies:
"@octokit/request" "^5.3.0" "@octokit/request" "^5.3.0"
"@octokit/types" "^5.0.0" "@octokit/types" "^6.0.3"
universal-user-agent "^6.0.0" universal-user-agent "^6.0.0"
"@octokit/plugin-paginate-rest@^2.2.3": "@octokit/openapi-types@^7.2.0":
version "2.4.0" version "7.2.1"
resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.4.0.tgz#92f951ddc8a1cd505353fa07650752ca25ed7e93" resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-7.2.1.tgz#3ba1abe8906863edd403e185bc12e2bf79b3e240"
integrity sha512-YT6Klz3LLH6/nNgi0pheJnUmTFW4kVnxGft+v8Itc41IIcjl7y1C8TatmKQBbCSuTSNFXO5pCENnqg6sjwpJhg== integrity sha512-IHQJpLciwzwDvciLxiFj3IEV5VYn7lSVcj5cu0jbTwMfK4IG6/g8SPrVp3Le1VRzIiYSRcBzm1dA7vgWelYP3Q==
dependencies:
"@octokit/types" "^5.5.0"
"@octokit/plugin-rest-endpoint-methods@^4.0.0": "@octokit/plugin-paginate-rest@^2.13.3":
version "4.2.0" version "2.13.3"
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.2.0.tgz#c5a0691b3aba5d8b4ef5dffd6af3649608f167ba" resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.13.3.tgz#f0f1792230805108762d87906fb02d573b9e070a"
integrity sha512-1/qn1q1C1hGz6W/iEDm9DoyNoG/xdFDt78E3eZ5hHeUfJTLJgyAMdj9chL/cNBHjcjd+FH5aO1x0VCqR2RE0mw== integrity sha512-46lptzM9lTeSmIBt/sVP/FLSTPGx6DCzAdSX3PfeJ3mTf4h9sGC26WpaQzMEq/Z44cOcmx8VsOhO+uEgE3cjYg==
dependencies: dependencies:
"@octokit/types" "^5.5.0" "@octokit/types" "^6.11.0"
"@octokit/plugin-rest-endpoint-methods@^5.1.1":
version "5.3.0"
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.3.0.tgz#bcc8b4432ee24b30d6a4934c9e2baacda46a5aaf"
integrity sha512-+4NAJ9WzPN5gW6W1H1tblw/DesTD6PaWuU5+/x3Pa7nyK6qjR6cn4jwkJtzxVPTgtzryOFLX+5vs7MROFswp5Q==
dependencies:
"@octokit/types" "^6.16.0"
deprecation "^2.3.1" deprecation "^2.3.1"
"@octokit/request-error@^2.0.0": "@octokit/request-error@^2.0.0":
@@ -547,7 +553,16 @@
deprecation "^2.0.0" deprecation "^2.0.0"
once "^1.4.0" once "^1.4.0"
"@octokit/request@^5.3.0", "@octokit/request@^5.4.0": "@octokit/request-error@^2.0.5":
version "2.0.5"
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.5.tgz#72cc91edc870281ad583a42619256b380c600143"
integrity sha512-T/2wcCFyM7SkXzNoyVNWjyVlUwBvW3igM3Btr/eKYiPmucXTtkxt2RBsf6gn3LTzaLSLTQtNmvg+dGsOxQrjZg==
dependencies:
"@octokit/types" "^6.0.3"
deprecation "^2.0.0"
once "^1.4.0"
"@octokit/request@^5.3.0":
version "5.4.9" version "5.4.9"
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.9.tgz#0a46f11b82351b3416d3157261ad9b1558c43365" resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.9.tgz#0a46f11b82351b3416d3157261ad9b1558c43365"
integrity sha512-CzwVvRyimIM1h2n9pLVYfTDmX9m+KHSgCpqPsY8F1NdEK8IaWqXhSBXsdjOBFZSpEcxNEeg4p0UO9cQ8EnOCLA== integrity sha512-CzwVvRyimIM1h2n9pLVYfTDmX9m+KHSgCpqPsY8F1NdEK8IaWqXhSBXsdjOBFZSpEcxNEeg4p0UO9cQ8EnOCLA==
@@ -561,13 +576,32 @@
once "^1.4.0" once "^1.4.0"
universal-user-agent "^6.0.0" universal-user-agent "^6.0.0"
"@octokit/types@^5.0.0", "@octokit/types@^5.0.1", "@octokit/types@^5.5.0": "@octokit/request@^5.4.12":
version "5.4.15"
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.15.tgz#829da413dc7dd3aa5e2cdbb1c7d0ebe1f146a128"
integrity sha512-6UnZfZzLwNhdLRreOtTkT9n57ZwulCve8q3IT/Z477vThu6snfdkBuhxnChpOKNGxcQ71ow561Qoa6uqLdPtag==
dependencies:
"@octokit/endpoint" "^6.0.1"
"@octokit/request-error" "^2.0.0"
"@octokit/types" "^6.7.1"
is-plain-object "^5.0.0"
node-fetch "^2.6.1"
universal-user-agent "^6.0.0"
"@octokit/types@^5.0.0", "@octokit/types@^5.0.1":
version "5.5.0" version "5.5.0"
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-5.5.0.tgz#e5f06e8db21246ca102aa28444cdb13ae17a139b" resolved "https://registry.yarnpkg.com/@octokit/types/-/types-5.5.0.tgz#e5f06e8db21246ca102aa28444cdb13ae17a139b"
integrity sha512-UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ== integrity sha512-UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ==
dependencies: dependencies:
"@types/node" ">= 8" "@types/node" ">= 8"
"@octokit/types@^6.0.3", "@octokit/types@^6.11.0", "@octokit/types@^6.16.0", "@octokit/types@^6.7.1":
version "6.16.0"
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.16.0.tgz#15f71e391ca74e91a21b70e3a1b033c89625dca4"
integrity sha512-EktqSNq8EKXE82a7Vw33ozOEhFXIRik+rZHJTHAgVZRm/p2K5r5ecn5fVpRkLCm3CAVFwchRvt3yvtmfbt2LCQ==
dependencies:
"@octokit/openapi-types" "^7.2.0"
"@sinonjs/commons@^1.7.0": "@sinonjs/commons@^1.7.0":
version "1.8.1" version "1.8.1"
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217"
@@ -910,10 +944,10 @@ bcrypt-pbkdf@^1.0.0:
dependencies: dependencies:
tweetnacl "^0.14.3" tweetnacl "^0.14.3"
before-after-hook@^2.1.0: before-after-hook@^2.2.0:
version "2.1.0" version "2.2.1"
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.1.tgz#73540563558687586b52ed217dad6a802ab1549c"
integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== integrity sha512-/6FKxSTWoJdbsLDF8tdIjaRiFXiE6UHsEHE3OPI/cwPURCVi1ukP0gmLn7XWEiFk5TcwQjjY5PWsU+j+tgXgmw==
brace-expansion@^1.1.7: brace-expansion@^1.1.7:
version "1.1.11" version "1.1.11"