@docker/actions-toolkit 0.75.0 → 0.77.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/buildkit/buildkit.d.ts +3 -3
- package/lib/buildkit/buildkit.js +67 -117
- package/lib/buildkit/buildkit.js.map +1 -1
- package/lib/buildkit/config.js +7 -14
- package/lib/buildkit/config.js.map +1 -1
- package/lib/buildkit/git.d.ts +1 -1
- package/lib/buildkit/git.js +8 -12
- package/lib/buildkit/git.js.map +1 -1
- package/lib/buildx/bake.d.ts +4 -4
- package/lib/buildx/bake.js +76 -93
- package/lib/buildx/bake.js.map +1 -1
- package/lib/buildx/build.d.ts +5 -5
- package/lib/buildx/build.js +44 -78
- package/lib/buildx/build.js.map +1 -1
- package/lib/buildx/builder.d.ts +2 -2
- package/lib/buildx/builder.js +42 -91
- package/lib/buildx/builder.js.map +1 -1
- package/lib/buildx/buildx.d.ts +3 -3
- package/lib/buildx/buildx.js +212 -274
- package/lib/buildx/buildx.js.map +1 -1
- package/lib/buildx/history.d.ts +2 -2
- package/lib/buildx/history.js +226 -284
- package/lib/buildx/history.js.map +1 -1
- package/lib/buildx/imagetools.d.ts +5 -5
- package/lib/buildx/imagetools.js +67 -92
- package/lib/buildx/imagetools.js.map +1 -1
- package/lib/buildx/install.d.ts +14 -3
- package/lib/buildx/install.js +239 -276
- package/lib/buildx/install.js.map +1 -1
- package/lib/cache.js +88 -138
- package/lib/cache.js.map +1 -1
- package/lib/compose/compose.js +53 -107
- package/lib/compose/compose.js.map +1 -1
- package/lib/compose/install.d.ts +2 -2
- package/lib/compose/install.js +129 -191
- package/lib/compose/install.js.map +1 -1
- package/lib/context.js +10 -50
- package/lib/context.js.map +1 -1
- package/lib/cosign/cosign.js +55 -106
- package/lib/cosign/cosign.js.map +1 -1
- package/lib/cosign/dockerfile.js +1 -4
- package/lib/cosign/dockerfile.js.map +1 -1
- package/lib/cosign/install.d.ts +6 -3
- package/lib/cosign/install.js +183 -261
- package/lib/cosign/install.js.map +1 -1
- package/lib/docker/assets.js +15 -24
- package/lib/docker/assets.js.map +1 -1
- package/lib/docker/docker.d.ts +1 -1
- package/lib/docker/docker.js +112 -182
- package/lib/docker/docker.js.map +1 -1
- package/lib/docker/install.d.ts +3 -3
- package/lib/docker/install.js +543 -617
- package/lib/docker/install.js.map +1 -1
- package/lib/dockerhub.d.ts +1 -1
- package/lib/dockerhub.js +67 -125
- package/lib/dockerhub.js.map +1 -1
- package/lib/exec.js +9 -59
- package/lib/exec.js.map +1 -1
- package/lib/git.d.ts +2 -1
- package/lib/git.js +144 -220
- package/lib/git.js.map +1 -1
- package/lib/github/artifact.d.ts +19 -0
- package/lib/github/artifact.js +49 -0
- package/lib/github/artifact.js.map +1 -0
- package/lib/{github.d.ts → github/github.d.ts} +4 -8
- package/lib/github/github.js +135 -0
- package/lib/github/github.js.map +1 -0
- package/lib/github/summary.d.ts +20 -0
- package/lib/github/summary.js +166 -0
- package/lib/github/summary.js.map +1 -0
- package/lib/index.js +17 -64
- package/lib/index.js.map +1 -1
- package/lib/oci/oci.d.ts +2 -2
- package/lib/oci/oci.js +52 -104
- package/lib/oci/oci.js.map +1 -1
- package/lib/regclient/install.d.ts +2 -2
- package/lib/regclient/install.js +83 -141
- package/lib/regclient/install.js.map +1 -1
- package/lib/regclient/regctl.d.ts +1 -1
- package/lib/regclient/regctl.js +67 -123
- package/lib/regclient/regctl.js.map +1 -1
- package/lib/sigstore/sigstore.d.ts +5 -3
- package/lib/sigstore/sigstore.js +361 -344
- package/lib/sigstore/sigstore.js.map +1 -1
- package/lib/toolkit.d.ts +16 -16
- package/lib/toolkit.js +49 -37
- package/lib/toolkit.js.map +1 -1
- package/lib/types/buildkit/buildkit.js +1 -4
- package/lib/types/buildkit/buildkit.js.map +1 -1
- package/lib/types/buildkit/client.d.ts +2 -2
- package/lib/types/buildkit/client.js +1 -2
- package/lib/types/buildkit/client.js.map +1 -1
- package/lib/types/buildkit/control.d.ts +4 -4
- package/lib/types/buildkit/control.js +1 -2
- package/lib/types/buildkit/control.js.map +1 -1
- package/lib/types/buildkit/git.js +1 -2
- package/lib/types/buildkit/git.js.map +1 -1
- package/lib/types/buildkit/ops.js +1 -2
- package/lib/types/buildkit/ops.js.map +1 -1
- package/lib/types/buildkit/rpc.js +1 -2
- package/lib/types/buildkit/rpc.js.map +1 -1
- package/lib/types/buildx/bake.js +1 -2
- package/lib/types/buildx/bake.js.map +1 -1
- package/lib/types/buildx/build.js +1 -2
- package/lib/types/buildx/build.js.map +1 -1
- package/lib/types/buildx/builder.js +1 -2
- package/lib/types/buildx/builder.js.map +1 -1
- package/lib/types/buildx/buildx.d.ts +1 -1
- package/lib/types/buildx/buildx.js +1 -2
- package/lib/types/buildx/buildx.js.map +1 -1
- package/lib/types/buildx/history.js +1 -2
- package/lib/types/buildx/history.js.map +1 -1
- package/lib/types/buildx/imagetools.d.ts +3 -3
- package/lib/types/buildx/imagetools.js +1 -2
- package/lib/types/buildx/imagetools.js.map +1 -1
- package/lib/types/compose/compose.d.ts +1 -1
- package/lib/types/compose/compose.js +1 -2
- package/lib/types/compose/compose.js.map +1 -1
- package/lib/types/cosign/cosign.d.ts +1 -1
- package/lib/types/cosign/cosign.js +1 -2
- package/lib/types/cosign/cosign.js.map +1 -1
- package/lib/types/docker/docker.js +1 -2
- package/lib/types/docker/docker.js.map +1 -1
- package/lib/types/docker/mediatype.js +3 -6
- package/lib/types/docker/mediatype.js.map +1 -1
- package/lib/types/dockerhub.js +1 -2
- package/lib/types/dockerhub.js.map +1 -1
- package/lib/types/github/artifact.d.ts +26 -0
- package/lib/types/{git.d.ts → github/artifact.js} +3 -3
- package/lib/types/github/artifact.js.map +1 -0
- package/lib/types/{github.d.ts → github/github.d.ts} +4 -23
- package/lib/types/{git.js → github/github.js} +2 -3
- package/lib/types/github/github.js.map +1 -0
- package/lib/types/github/summary.d.ts +29 -0
- package/lib/types/{github.js → github/summary.js} +3 -4
- package/lib/types/github/summary.js.map +1 -0
- package/lib/types/intoto/intoto.js +2 -5
- package/lib/types/intoto/intoto.js.map +1 -1
- package/lib/types/intoto/slsa_provenance/v0.2/provenance.js +1 -4
- package/lib/types/intoto/slsa_provenance/v0.2/provenance.js.map +1 -1
- package/lib/types/oci/config.d.ts +2 -2
- package/lib/types/oci/config.js +1 -2
- package/lib/types/oci/config.js.map +1 -1
- package/lib/types/oci/descriptor.d.ts +1 -1
- package/lib/types/oci/descriptor.js +3 -6
- package/lib/types/oci/descriptor.js.map +1 -1
- package/lib/types/oci/digest.js +1 -2
- package/lib/types/oci/digest.js.map +1 -1
- package/lib/types/oci/index.d.ts +2 -2
- package/lib/types/oci/index.js +1 -2
- package/lib/types/oci/index.js.map +1 -1
- package/lib/types/oci/layout.js +4 -7
- package/lib/types/oci/layout.js.map +1 -1
- package/lib/types/oci/manifest.d.ts +2 -2
- package/lib/types/oci/manifest.js +1 -2
- package/lib/types/oci/manifest.js.map +1 -1
- package/lib/types/oci/mediatype.js +6 -9
- package/lib/types/oci/mediatype.js.map +1 -1
- package/lib/types/oci/oci.d.ts +4 -4
- package/lib/types/oci/oci.js +1 -2
- package/lib/types/oci/oci.js.map +1 -1
- package/lib/types/oci/versioned.js +1 -2
- package/lib/types/oci/versioned.js.map +1 -1
- package/lib/types/regclient/regclient.d.ts +1 -1
- package/lib/types/regclient/regclient.js +1 -2
- package/lib/types/regclient/regclient.js.map +1 -1
- package/lib/types/sigstore/sigstore.d.ts +11 -2
- package/lib/types/sigstore/sigstore.js +4 -7
- package/lib/types/sigstore/sigstore.js.map +1 -1
- package/lib/types/undock/undock.d.ts +1 -1
- package/lib/types/undock/undock.js +1 -2
- package/lib/types/undock/undock.js.map +1 -1
- package/lib/undock/install.d.ts +2 -2
- package/lib/undock/install.js +93 -151
- package/lib/undock/install.js.map +1 -1
- package/lib/undock/undock.js +88 -141
- package/lib/undock/undock.js.map +1 -1
- package/lib/util.js +36 -89
- package/lib/util.js.map +1 -1
- package/package.json +31 -42
- package/lib/github.js +0 -421
- package/lib/github.js.map +0 -1
- package/lib/types/git.js.map +0 -1
- package/lib/types/github.js.map +0 -1
package/lib/git.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Copyright 2023 actions-toolkit authors
|
|
4
3
|
*
|
|
@@ -14,248 +13,173 @@
|
|
|
14
13
|
* See the License for the specific language governing permissions and
|
|
15
14
|
* limitations under the License.
|
|
16
15
|
*/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
import * as core from '@actions/core';
|
|
17
|
+
import * as github from '@actions/github';
|
|
18
|
+
import { Exec } from './exec.js';
|
|
19
|
+
import { GitHub } from './github/github.js';
|
|
20
|
+
export class Git {
|
|
21
|
+
static async context() {
|
|
22
|
+
const ctx = { ...github.context };
|
|
23
|
+
ctx.ref = await Git.ref();
|
|
24
|
+
ctx.sha = await Git.fullCommit();
|
|
25
|
+
return ctx;
|
|
22
26
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
})
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}) : function(o, v) {
|
|
31
|
-
o["default"] = v;
|
|
32
|
-
});
|
|
33
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
34
|
-
var ownKeys = function(o) {
|
|
35
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
36
|
-
var ar = [];
|
|
37
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
38
|
-
return ar;
|
|
39
|
-
};
|
|
40
|
-
return ownKeys(o);
|
|
41
|
-
};
|
|
42
|
-
return function (mod) {
|
|
43
|
-
if (mod && mod.__esModule) return mod;
|
|
44
|
-
var result = {};
|
|
45
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
46
|
-
__setModuleDefault(result, mod);
|
|
47
|
-
return result;
|
|
48
|
-
};
|
|
49
|
-
})();
|
|
50
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
51
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
52
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
53
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
54
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
55
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
56
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
57
|
-
});
|
|
58
|
-
};
|
|
59
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
60
|
-
exports.Git = void 0;
|
|
61
|
-
const core = __importStar(require("@actions/core"));
|
|
62
|
-
const core_1 = require("@octokit/core");
|
|
63
|
-
const plugin_rest_endpoint_methods_1 = require("@octokit/plugin-rest-endpoint-methods");
|
|
64
|
-
const exec_1 = require("./exec");
|
|
65
|
-
const github_1 = require("./github");
|
|
66
|
-
const context_1 = require("@actions/github/lib/context");
|
|
67
|
-
class Git {
|
|
68
|
-
static context() {
|
|
69
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
-
const ctx = new context_1.Context();
|
|
71
|
-
ctx.ref = yield Git.ref();
|
|
72
|
-
ctx.sha = yield Git.fullCommit();
|
|
73
|
-
return ctx;
|
|
27
|
+
static async isInsideWorkTree() {
|
|
28
|
+
return await Git.exec(['rev-parse', '--is-inside-work-tree'])
|
|
29
|
+
.then(out => {
|
|
30
|
+
return out === 'true';
|
|
31
|
+
})
|
|
32
|
+
.catch(() => {
|
|
33
|
+
return false;
|
|
74
34
|
});
|
|
75
35
|
}
|
|
76
|
-
static
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
.
|
|
83
|
-
return false;
|
|
36
|
+
static async remoteSha(repo, ref, token) {
|
|
37
|
+
const repoMatch = repo.match(/github.com\/([^/]+)\/([^/]+?)(?:\.git)?(\/|$)/);
|
|
38
|
+
// if we have a token and this is a GitHub repo we can use the GitHub API
|
|
39
|
+
if (token && repoMatch) {
|
|
40
|
+
core.setSecret(token);
|
|
41
|
+
const octokit = github.getOctokit(token, {
|
|
42
|
+
baseUrl: GitHub.apiURL
|
|
84
43
|
});
|
|
44
|
+
const [owner, repoName] = repoMatch.slice(1, 3);
|
|
45
|
+
try {
|
|
46
|
+
return (await octokit.rest.repos.listCommits({
|
|
47
|
+
owner: owner,
|
|
48
|
+
repo: repoName,
|
|
49
|
+
sha: ref,
|
|
50
|
+
per_page: 1
|
|
51
|
+
})).data[0].sha;
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
throw new Error(`Cannot find remote ref for ${repo}#${ref}: ${e.message}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// otherwise we fall back to git ls-remote
|
|
58
|
+
return await Git.exec(['ls-remote', repo, ref]).then(out => {
|
|
59
|
+
const [rsha] = out.split(/[\s\t]/);
|
|
60
|
+
if (rsha.length == 0) {
|
|
61
|
+
throw new Error(`Cannot find remote ref for ${repo}#${ref}`);
|
|
62
|
+
}
|
|
63
|
+
return rsha;
|
|
85
64
|
});
|
|
86
65
|
}
|
|
87
|
-
static
|
|
88
|
-
return
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
})
|
|
96
|
-
const [owner, repoName] = repoMatch.slice(1, 3);
|
|
97
|
-
try {
|
|
98
|
-
return (yield octokit.rest.repos.listCommits({
|
|
99
|
-
owner: owner,
|
|
100
|
-
repo: repoName,
|
|
101
|
-
sha: ref,
|
|
102
|
-
per_page: 1
|
|
103
|
-
})).data[0].sha;
|
|
104
|
-
}
|
|
105
|
-
catch (e) {
|
|
106
|
-
throw new Error(`Cannot find remote ref for ${repo}#${ref}: ${e.message}`);
|
|
107
|
-
}
|
|
66
|
+
static async remoteURL() {
|
|
67
|
+
return await Git.exec(['remote', 'get-url', 'origin']).then(rurl => {
|
|
68
|
+
if (rurl.length == 0) {
|
|
69
|
+
return Git.exec(['remote', 'get-url', 'upstream']).then(rurl => {
|
|
70
|
+
if (rurl.length == 0) {
|
|
71
|
+
throw new Error(`Cannot find remote URL for origin or upstream`);
|
|
72
|
+
}
|
|
73
|
+
return rurl;
|
|
74
|
+
});
|
|
108
75
|
}
|
|
109
|
-
|
|
110
|
-
return yield Git.exec(['ls-remote', repo, ref]).then(out => {
|
|
111
|
-
const [rsha] = out.split(/[\s\t]/);
|
|
112
|
-
if (rsha.length == 0) {
|
|
113
|
-
throw new Error(`Cannot find remote ref for ${repo}#${ref}`);
|
|
114
|
-
}
|
|
115
|
-
return rsha;
|
|
116
|
-
});
|
|
76
|
+
return rurl;
|
|
117
77
|
});
|
|
118
78
|
}
|
|
119
|
-
static
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
throw new Error(`Cannot find remote URL for origin or upstream`);
|
|
126
|
-
}
|
|
127
|
-
return rurl;
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
return rurl;
|
|
131
|
-
});
|
|
132
|
-
});
|
|
79
|
+
static async ref() {
|
|
80
|
+
const isHeadDetached = await Git.isHeadDetached();
|
|
81
|
+
if (isHeadDetached) {
|
|
82
|
+
return await Git.getDetachedRef();
|
|
83
|
+
}
|
|
84
|
+
return await Git.exec(['symbolic-ref', 'HEAD']);
|
|
133
85
|
}
|
|
134
|
-
static
|
|
135
|
-
return
|
|
136
|
-
const isHeadDetached = yield Git.isHeadDetached();
|
|
137
|
-
if (isHeadDetached) {
|
|
138
|
-
return yield Git.getDetachedRef();
|
|
139
|
-
}
|
|
140
|
-
return yield Git.exec(['symbolic-ref', 'HEAD']);
|
|
141
|
-
});
|
|
86
|
+
static async fullCommit() {
|
|
87
|
+
return await Git.exec(['show', '--format=%H', 'HEAD', '--quiet', '--']);
|
|
142
88
|
}
|
|
143
|
-
static
|
|
144
|
-
return
|
|
145
|
-
return yield Git.exec(['show', '--format=%H', 'HEAD', '--quiet', '--']);
|
|
146
|
-
});
|
|
89
|
+
static async shortCommit() {
|
|
90
|
+
return await Git.exec(['show', '--format=%h', 'HEAD', '--quiet', '--']);
|
|
147
91
|
}
|
|
148
|
-
static
|
|
149
|
-
return
|
|
150
|
-
|
|
92
|
+
static async tag() {
|
|
93
|
+
return await Git.exec(['tag', '--points-at', 'HEAD', '--sort', '-version:creatordate']).then(tags => {
|
|
94
|
+
if (tags.length == 0) {
|
|
95
|
+
return Git.exec(['describe', '--tags', '--abbrev=0']);
|
|
96
|
+
}
|
|
97
|
+
return tags.split('\n')[0];
|
|
151
98
|
});
|
|
152
99
|
}
|
|
153
|
-
static
|
|
154
|
-
return
|
|
155
|
-
return
|
|
156
|
-
if (tags.length == 0) {
|
|
157
|
-
return Git.exec(['describe', '--tags', '--abbrev=0']);
|
|
158
|
-
}
|
|
159
|
-
return tags.split('\n')[0];
|
|
160
|
-
});
|
|
100
|
+
static async isHeadDetached() {
|
|
101
|
+
return await Git.exec(['branch', '--show-current']).then(res => {
|
|
102
|
+
return res.length == 0;
|
|
161
103
|
});
|
|
162
104
|
}
|
|
163
|
-
static
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
105
|
+
static async getDetachedRef() {
|
|
106
|
+
const res = await Git.exec(['show', '-s', '--pretty=%D']);
|
|
107
|
+
core.debug(`detached HEAD ref: ${res}`);
|
|
108
|
+
const normalizedRef = res.replace(/^grafted, /, '').trim();
|
|
109
|
+
if (normalizedRef === 'HEAD') {
|
|
110
|
+
return await Git.inferRefFromHead();
|
|
111
|
+
}
|
|
112
|
+
// Can be "HEAD, <tagname>" or "grafted, HEAD, <tagname>"
|
|
113
|
+
const refMatch = normalizedRef.match(/^HEAD, (.*)$/);
|
|
114
|
+
if (!refMatch || !refMatch[1]) {
|
|
115
|
+
throw new Error(`Cannot find detached HEAD ref in "${res}"`);
|
|
116
|
+
}
|
|
117
|
+
const ref = refMatch[1].trim();
|
|
118
|
+
// Tag refs are formatted as "tag: <tagname>"
|
|
119
|
+
if (ref.startsWith('tag: ')) {
|
|
120
|
+
return `refs/tags/${ref.split(':')[1].trim()}`;
|
|
121
|
+
}
|
|
122
|
+
// Pull request merge refs are formatted as "pull/<number>/<state>"
|
|
123
|
+
const prMatch = ref.match(/^pull\/\d+\/(head|merge)$/);
|
|
124
|
+
if (prMatch) {
|
|
125
|
+
return `refs/${ref}`;
|
|
126
|
+
}
|
|
127
|
+
// Branch refs can be formatted as "<origin>/<branch-name>, <branch-name>"
|
|
128
|
+
const branchMatch = ref.match(/^[^/]+\/[^/]+, (.+)$/);
|
|
129
|
+
if (branchMatch) {
|
|
130
|
+
return `refs/heads/${branchMatch[1].trim()}`;
|
|
131
|
+
}
|
|
132
|
+
// Branch refs checked out by its latest SHA can be formatted as "<origin>/<branch-name>"
|
|
133
|
+
const shaBranchMatch = ref.match(/^[^/]+\/(.+)$/);
|
|
134
|
+
if (shaBranchMatch) {
|
|
135
|
+
return `refs/heads/${shaBranchMatch[1].trim()}`;
|
|
136
|
+
}
|
|
137
|
+
throw new Error(`Unsupported detached HEAD ref in "${res}"`);
|
|
169
138
|
}
|
|
170
|
-
static
|
|
171
|
-
return
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
if (
|
|
176
|
-
|
|
139
|
+
static async exec(args = []) {
|
|
140
|
+
return await Exec.getExecOutput(`git`, args, {
|
|
141
|
+
ignoreReturnCode: true,
|
|
142
|
+
silent: true
|
|
143
|
+
}).then(res => {
|
|
144
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
145
|
+
throw new Error(res.stderr);
|
|
177
146
|
}
|
|
178
|
-
|
|
179
|
-
const refMatch = normalizedRef.match(/^HEAD, (.*)$/);
|
|
180
|
-
if (!refMatch || !refMatch[1]) {
|
|
181
|
-
throw new Error(`Cannot find detached HEAD ref in "${res}"`);
|
|
182
|
-
}
|
|
183
|
-
const ref = refMatch[1].trim();
|
|
184
|
-
// Tag refs are formatted as "tag: <tagname>"
|
|
185
|
-
if (ref.startsWith('tag: ')) {
|
|
186
|
-
return `refs/tags/${ref.split(':')[1].trim()}`;
|
|
187
|
-
}
|
|
188
|
-
// Pull request merge refs are formatted as "pull/<number>/<state>"
|
|
189
|
-
const prMatch = ref.match(/^pull\/\d+\/(head|merge)$/);
|
|
190
|
-
if (prMatch) {
|
|
191
|
-
return `refs/${ref}`;
|
|
192
|
-
}
|
|
193
|
-
// Branch refs can be formatted as "<origin>/<branch-name>, <branch-name>"
|
|
194
|
-
const branchMatch = ref.match(/^[^/]+\/[^/]+, (.+)$/);
|
|
195
|
-
if (branchMatch) {
|
|
196
|
-
return `refs/heads/${branchMatch[1].trim()}`;
|
|
197
|
-
}
|
|
198
|
-
// Branch refs checked out by its latest SHA can be formatted as "<origin>/<branch-name>"
|
|
199
|
-
const shaBranchMatch = ref.match(/^[^/]+\/(.+)$/);
|
|
200
|
-
if (shaBranchMatch) {
|
|
201
|
-
return `refs/heads/${shaBranchMatch[1].trim()}`;
|
|
202
|
-
}
|
|
203
|
-
throw new Error(`Unsupported detached HEAD ref in "${res}"`);
|
|
147
|
+
return res.stdout.trim();
|
|
204
148
|
});
|
|
205
149
|
}
|
|
206
|
-
static
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
return
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
static inferRefFromHead() {
|
|
220
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
221
|
-
const localRef = yield Git.findContainingRef('refs/heads/');
|
|
222
|
-
if (localRef) {
|
|
223
|
-
return localRef;
|
|
224
|
-
}
|
|
225
|
-
const remoteRef = yield Git.findContainingRef('refs/remotes/');
|
|
226
|
-
if (remoteRef) {
|
|
227
|
-
const remoteMatch = remoteRef.match(/^refs\/remotes\/[^/]+\/(.+)$/);
|
|
228
|
-
if (remoteMatch) {
|
|
229
|
-
return `refs/heads/${remoteMatch[1]}`;
|
|
230
|
-
}
|
|
231
|
-
return remoteRef;
|
|
232
|
-
}
|
|
233
|
-
const tagRef = yield Git.exec(['tag', '--contains', 'HEAD']);
|
|
234
|
-
const [firstTag] = tagRef
|
|
235
|
-
.split('\n')
|
|
236
|
-
.map(tag => tag.trim())
|
|
237
|
-
.filter(tag => tag.length > 0);
|
|
238
|
-
if (firstTag) {
|
|
239
|
-
return `refs/tags/${firstTag}`;
|
|
150
|
+
static async inferRefFromHead() {
|
|
151
|
+
const localRef = await Git.findContainingRef('refs/heads/');
|
|
152
|
+
if (localRef) {
|
|
153
|
+
return localRef;
|
|
154
|
+
}
|
|
155
|
+
const remoteRef = await Git.findContainingRef('refs/remotes/');
|
|
156
|
+
if (remoteRef) {
|
|
157
|
+
const remoteMatch = remoteRef.match(/^refs\/remotes\/[^/]+\/(.+)$/);
|
|
158
|
+
if (remoteMatch) {
|
|
159
|
+
return `refs/heads/${remoteMatch[1]}`;
|
|
240
160
|
}
|
|
241
|
-
|
|
242
|
-
}
|
|
161
|
+
return remoteRef;
|
|
162
|
+
}
|
|
163
|
+
const tagRef = await Git.exec(['tag', '--contains', 'HEAD']);
|
|
164
|
+
const [firstTag] = tagRef
|
|
165
|
+
.split('\n')
|
|
166
|
+
.map(tag => tag.trim())
|
|
167
|
+
.filter(tag => tag.length > 0);
|
|
168
|
+
if (firstTag) {
|
|
169
|
+
return `refs/tags/${firstTag}`;
|
|
170
|
+
}
|
|
171
|
+
throw new Error(`Cannot infer ref from detached HEAD`);
|
|
243
172
|
}
|
|
244
|
-
static findContainingRef(scope) {
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
return first;
|
|
252
|
-
});
|
|
173
|
+
static async findContainingRef(scope) {
|
|
174
|
+
const refs = await Git.exec(['for-each-ref', '--format=%(refname)', '--contains', 'HEAD', '--sort=-committerdate', scope]);
|
|
175
|
+
const [first] = refs
|
|
176
|
+
.split('\n')
|
|
177
|
+
.map(r => r.trim())
|
|
178
|
+
.filter(r => r.length > 0);
|
|
179
|
+
return first;
|
|
253
180
|
}
|
|
254
|
-
static commitDate(ref) {
|
|
255
|
-
return
|
|
256
|
-
return new Date(yield Git.exec(['show', '-s', '--format="%ci"', ref]));
|
|
257
|
-
});
|
|
181
|
+
static async commitDate(ref) {
|
|
182
|
+
return new Date(await Git.exec(['show', '-s', '--format="%ci"', ref]));
|
|
258
183
|
}
|
|
259
184
|
}
|
|
260
|
-
exports.Git = Git;
|
|
261
185
|
//# sourceMappingURL=git.js.map
|
package/lib/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026 actions-toolkit authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { UploadOpts, UploadResponse } from '../types/github/artifact.js';
|
|
17
|
+
export declare class GitHubArtifact {
|
|
18
|
+
static upload(opts: UploadOpts): Promise<UploadResponse>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026 actions-toolkit authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import fs from 'fs';
|
|
17
|
+
import path from 'path';
|
|
18
|
+
import { DefaultArtifactClient, InvalidResponseError } from '@actions/artifact';
|
|
19
|
+
import * as core from '@actions/core';
|
|
20
|
+
import { GitHub } from './github.js';
|
|
21
|
+
export class GitHubArtifact {
|
|
22
|
+
static async upload(opts) {
|
|
23
|
+
if (GitHub.isGHES) {
|
|
24
|
+
throw new Error('@actions/artifact v2.0.0+ is currently not supported on GHES.');
|
|
25
|
+
}
|
|
26
|
+
const artifactName = path.basename(opts.filename);
|
|
27
|
+
const artifactClient = new DefaultArtifactClient();
|
|
28
|
+
core.info(`Uploading ${artifactName} as an artifact`);
|
|
29
|
+
const rootDirectory = path.dirname(opts.filename);
|
|
30
|
+
const response = await artifactClient.uploadArtifact(artifactName, [opts.filename], rootDirectory, {
|
|
31
|
+
retentionDays: opts.retentionDays,
|
|
32
|
+
skipArchive: true
|
|
33
|
+
});
|
|
34
|
+
if (!response.id) {
|
|
35
|
+
throw new InvalidResponseError('Cannot upload artifact');
|
|
36
|
+
}
|
|
37
|
+
const size = response.size ?? fs.statSync(opts.filename).size;
|
|
38
|
+
const artifactURL = `${GitHub.workflowRunURL()}/artifacts/${response.id}`;
|
|
39
|
+
core.info(`Artifact download URL: ${artifactURL}`);
|
|
40
|
+
return {
|
|
41
|
+
id: response.id,
|
|
42
|
+
filename: artifactName,
|
|
43
|
+
digest: response.digest || '',
|
|
44
|
+
size,
|
|
45
|
+
url: artifactURL
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=artifact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/github/artifact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,qBAAqB,EAAE,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAC9E,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAEnC,MAAM,OAAO,cAAc;IAClB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAgB;QACzC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,aAAa,YAAY,iBAAiB,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE;YACjG,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;QAC9D,MAAM,WAAW,GAAG,GAAG,MAAM,CAAC,cAAc,EAAE,cAAc,QAAQ,CAAC,EAAE,EAAE,CAAC;QAC1E,IAAI,CAAC,IAAI,CAAC,0BAA0B,WAAW,EAAE,CAAC,CAAC;QAEnD,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,QAAQ,EAAE,YAAY;YACtB,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE;YAC7B,IAAI;YACJ,GAAG,EAAE,WAAW;SACjB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -13,20 +13,19 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import
|
|
17
|
-
import {
|
|
18
|
-
import { BuildSummaryOpts, GitHubActionsRuntimeToken, GitHubContentOpts, GitHubRelease, GitHubRepo, UploadArtifactOpts, UploadArtifactResponse } from './types/github';
|
|
16
|
+
import * as github from '@actions/github';
|
|
17
|
+
import { GitHubActionsRuntimeToken, GitHubContentOpts, GitHubRelease, GitHubRepo } from '../types/github/github.js';
|
|
19
18
|
export interface GitHubOpts {
|
|
20
19
|
token?: string;
|
|
21
20
|
}
|
|
22
21
|
export declare class GitHub {
|
|
23
22
|
private readonly githubToken?;
|
|
24
|
-
readonly octokit:
|
|
23
|
+
readonly octokit: ReturnType<typeof github.getOctokit>;
|
|
25
24
|
constructor(opts?: GitHubOpts);
|
|
26
25
|
repoData(): Promise<GitHubRepo>;
|
|
27
26
|
releases(name: string, opts: GitHubContentOpts): Promise<Record<string, GitHubRelease>>;
|
|
28
27
|
releasesRaw(name: string, opts: GitHubContentOpts, token?: string): Promise<Record<string, GitHubRelease>>;
|
|
29
|
-
static get context():
|
|
28
|
+
static get context(): typeof github.context;
|
|
30
29
|
static get serverURL(): string;
|
|
31
30
|
static get apiURL(): string;
|
|
32
31
|
static get isGHES(): boolean;
|
|
@@ -37,7 +36,4 @@ export declare class GitHub {
|
|
|
37
36
|
static workflowRunURL(setAttempts?: boolean): string;
|
|
38
37
|
static get actionsRuntimeToken(): GitHubActionsRuntimeToken | undefined;
|
|
39
38
|
static printActionsRuntimeTokenACs(): Promise<void>;
|
|
40
|
-
static uploadArtifact(opts: UploadArtifactOpts): Promise<UploadArtifactResponse>;
|
|
41
|
-
static writeBuildSummary(opts: BuildSummaryOpts): Promise<void>;
|
|
42
|
-
private static formatDBCBuildURL;
|
|
43
39
|
}
|