mlclaw 0.3.1 → 0.3.4
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/Dockerfile +24 -12
- package/README.md +8 -6
- package/assets/hf-logo.png +0 -0
- package/dist/hf-tooling-seed.js +18 -0
- package/dist/mlclaw-space-runtime.js +479 -118
- package/dist/mlclaw.mjs +26 -15
- package/entrypoint.sh +13 -11
- package/package.json +7 -8
- package/hf-broker.scope.json +0 -38
package/dist/mlclaw.mjs
CHANGED
|
@@ -14836,18 +14836,15 @@ function sseDataToText(raw) {
|
|
|
14836
14836
|
import fs11 from "node:fs";
|
|
14837
14837
|
import path12 from "node:path";
|
|
14838
14838
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
14839
|
-
var DEFAULT_OPENCLAW_VERSION = "2026.7.1
|
|
14840
|
-
var DEFAULT_BROKERKIT_PLUGIN_VERSION = "0.1
|
|
14841
|
-
var DEFAULT_BROKERKIT_VERSION = "
|
|
14839
|
+
var DEFAULT_OPENCLAW_VERSION = "2026.7.1";
|
|
14840
|
+
var DEFAULT_BROKERKIT_PLUGIN_VERSION = "0.2.1";
|
|
14841
|
+
var DEFAULT_BROKERKIT_VERSION = "hf-broker/v0.1.0";
|
|
14842
14842
|
var DEFAULT_RUNTIME_IMAGE_REPOSITORY = "ghcr.io/osolmaz/mlclaw";
|
|
14843
14843
|
var PACKAGE_METADATA = readPackageMetadata();
|
|
14844
14844
|
var PACKAGE_VERSION = packageString("version", "unknown");
|
|
14845
14845
|
var OPENCLAW_VERSION = packageConfigString("openclawVersion", DEFAULT_OPENCLAW_VERSION);
|
|
14846
14846
|
var OPENCLAW_BASE_IMAGE = `ghcr.io/openclaw/openclaw:${OPENCLAW_VERSION}`;
|
|
14847
|
-
var BROKERKIT_PLUGIN_VERSION = packageConfigString(
|
|
14848
|
-
"brokerkitPluginVersion",
|
|
14849
|
-
DEFAULT_BROKERKIT_PLUGIN_VERSION
|
|
14850
|
-
);
|
|
14847
|
+
var BROKERKIT_PLUGIN_VERSION = packageConfigString("brokerkitPluginVersion", DEFAULT_BROKERKIT_PLUGIN_VERSION);
|
|
14851
14848
|
var BROKERKIT_VERSION = packageConfigString("brokerkitVersion", DEFAULT_BROKERKIT_VERSION);
|
|
14852
14849
|
var RUNTIME_IMAGE_REPOSITORY = packageConfigString("runtimeImageRepository", DEFAULT_RUNTIME_IMAGE_REPOSITORY);
|
|
14853
14850
|
var DEFAULT_RUNTIME_IMAGE_TAG = `${PACKAGE_VERSION}-openclaw-${OPENCLAW_VERSION}`;
|
|
@@ -14955,7 +14952,6 @@ async function generateSpaceRepo(sourceDir, outDir, options = {}) {
|
|
|
14955
14952
|
["dist/hf-tooling-seed.js", "runtime/hf-tooling-seed.js"],
|
|
14956
14953
|
["dist/mlclaw-space-runtime.js", "runtime/mlclaw-space-runtime.js"],
|
|
14957
14954
|
["entrypoint.sh", "runtime/entrypoint.sh"],
|
|
14958
|
-
["hf-broker.scope.json", "runtime/hf-broker.scope.json"],
|
|
14959
14955
|
["openclaw.default.json", "runtime/openclaw.default.json"],
|
|
14960
14956
|
["scripts/configure-huggingface-model.mjs", "runtime/scripts/configure-huggingface-model.mjs"],
|
|
14961
14957
|
["scripts/configure-telegram.mjs", "runtime/scripts/configure-telegram.mjs"],
|
|
@@ -14965,6 +14961,9 @@ async function generateSpaceRepo(sourceDir, outDir, options = {}) {
|
|
|
14965
14961
|
for (const [from, to] of copies) {
|
|
14966
14962
|
await copyExisting(path13.join(sourceDir, from), path13.join(outDir, to));
|
|
14967
14963
|
}
|
|
14964
|
+
const hfLogoPng = await fs12.readFile(path13.join(sourceDir, "assets/hf-logo.png"));
|
|
14965
|
+
await fs12.writeFile(path13.join(outDir, "assets/hf-logo.png.base64"), `${hfLogoPng.toString("base64")}
|
|
14966
|
+
`, "utf8");
|
|
14968
14967
|
await fs12.writeFile(
|
|
14969
14968
|
path13.join(outDir, "Dockerfile"),
|
|
14970
14969
|
options.runtimeImage ? imageDockerfile(options.runtimeImage) : bundledDockerfile(),
|
|
@@ -14982,15 +14981,25 @@ ARG BROKERKIT_VERSION=${BROKERKIT_VERSION}
|
|
|
14982
14981
|
FROM golang:1.26.5-bookworm AS hf-broker-build
|
|
14983
14982
|
ARG BROKERKIT_VERSION
|
|
14984
14983
|
RUN git init /src \\
|
|
14985
|
-
&& git -C /src fetch --depth=1 https://github.com/osolmaz/brokerkit.git "
|
|
14986
|
-
&& git -C /src checkout --detach
|
|
14987
|
-
&& test "$(git -C /src rev-parse
|
|
14984
|
+
&& git -C /src fetch --depth=1 https://github.com/osolmaz/brokerkit.git "refs/tags/$BROKERKIT_VERSION:refs/tags/$BROKERKIT_VERSION" \\
|
|
14985
|
+
&& git -C /src checkout --detach "$BROKERKIT_VERSION" \\
|
|
14986
|
+
&& test "$(git -C /src rev-parse "refs/tags/$BROKERKIT_VERSION^{commit}")" = "$(git -C /src rev-parse HEAD)" \\
|
|
14988
14987
|
&& cd /src \\
|
|
14989
|
-
&& GOWORK=off go build -trimpath -o /out/hf-broker ./brokers/huggingface/cmd/hf-broker
|
|
14988
|
+
&& GOWORK=off go build -trimpath -o /out/hf-broker ./brokers/huggingface/cmd/hf-broker \\
|
|
14989
|
+
&& /out/hf-broker policy render \\
|
|
14990
|
+
--preset request-all-agent-operations \\
|
|
14991
|
+
--client default \\
|
|
14992
|
+
--profile-out /out/hf-broker.policy-profile.json \\
|
|
14993
|
+
--output /out/hf-broker.scope.json \\
|
|
14994
|
+
--manifest-out /out/hf-broker.policy-manifest.json \\
|
|
14995
|
+
&& /out/hf-broker doctor policy \\
|
|
14996
|
+
--profile /out/hf-broker.policy-profile.json \\
|
|
14997
|
+
--scope /out/hf-broker.scope.json \\
|
|
14998
|
+
--manifest /out/hf-broker.policy-manifest.json
|
|
14990
14999
|
|
|
14991
15000
|
FROM node:24-bookworm-slim AS brokerkit-plugin-build
|
|
14992
15001
|
ARG BROKERKIT_VERSION
|
|
14993
|
-
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates git && rm -rf /var/lib/apt/lists/* && git init /src && git -C /src fetch --depth=1 https://github.com/osolmaz/brokerkit.git "
|
|
15002
|
+
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates git && rm -rf /var/lib/apt/lists/* && git init /src && git -C /src fetch --depth=1 https://github.com/osolmaz/brokerkit.git "refs/tags/$BROKERKIT_VERSION:refs/tags/$BROKERKIT_VERSION" && git -C /src checkout --detach "$BROKERKIT_VERSION" && test "$(git -C /src rev-parse "refs/tags/$BROKERKIT_VERSION^{commit}")" = "$(git -C /src rev-parse HEAD)"
|
|
14994
15003
|
WORKDIR /src
|
|
14995
15004
|
RUN corepack enable && pnpm install --frozen-lockfile && pnpm --filter openclaw-brokerkit build && pnpm --filter openclaw-brokerkit pack --pack-destination /out
|
|
14996
15005
|
|
|
@@ -15024,12 +15033,14 @@ COPY --chown=node:node runtime/hf-state-sync.js /app/hf-state-sync.js
|
|
|
15024
15033
|
COPY --chown=node:node runtime/hf-tooling-seed.js /app/hf-tooling-seed.js
|
|
15025
15034
|
COPY --chown=node:node runtime/mlclaw-space-runtime.js /app/mlclaw-space-runtime.js
|
|
15026
15035
|
COPY --from=hf-broker-build /out/hf-broker /usr/local/bin/hf-broker
|
|
15027
|
-
COPY
|
|
15036
|
+
COPY --from=hf-broker-build /out/hf-broker.scope.json /app/hf-broker.scope.json
|
|
15037
|
+
COPY --from=hf-broker-build /out/hf-broker.policy-profile.json /app/hf-broker.policy-profile.json
|
|
15038
|
+
COPY --from=hf-broker-build /out/hf-broker.policy-manifest.json /app/hf-broker.policy-manifest.json
|
|
15028
15039
|
COPY --chown=node:node runtime/openclaw.default.json /app/openclaw.default.json
|
|
15029
15040
|
COPY --chown=node:node runtime/entrypoint.sh /app/entrypoint.sh
|
|
15030
15041
|
COPY --chown=node:node runtime/scripts/ /app/scripts/
|
|
15031
15042
|
COPY --chown=node:node assets/ /app/assets/
|
|
15032
|
-
RUN chmod +x /app/entrypoint.sh
|
|
15043
|
+
RUN base64 -d /app/assets/hf-logo.png.base64 > /app/assets/hf-logo.png && rm /app/assets/hf-logo.png.base64 && chown node:node /app/assets/hf-logo.png && chmod +x /app/entrypoint.sh
|
|
15033
15044
|
|
|
15034
15045
|
ENV PORT=7860
|
|
15035
15046
|
ENV MLCLAW_OPENCLAW_PORT=7861
|
package/entrypoint.sh
CHANGED
|
@@ -29,7 +29,9 @@ prepare_hf_broker() {
|
|
|
29
29
|
local operator_brokers_file="$HF_BROKER_RUN_DIR/operator-brokers.json"
|
|
30
30
|
local agent_secret operator_secret
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
# OpenClaw may traverse this directory only to its own 0600 credential file.
|
|
33
|
+
# It cannot list the directory or read any broker-owned credential.
|
|
34
|
+
install -d -m 0711 -o root -g hf-broker "$HF_BROKER_RUN_DIR"
|
|
33
35
|
agent_secret="$(od -An -N48 -tx1 /dev/urandom | tr -d ' \n')"
|
|
34
36
|
operator_secret="$(od -An -N48 -tx1 /dev/urandom | tr -d ' \n')"
|
|
35
37
|
printf '%s\n' "$broker_token" > "$token_file"
|
|
@@ -39,6 +41,7 @@ prepare_hf_broker() {
|
|
|
39
41
|
printf 'mlclaw-control = %s\n' "$operator_secret" > "$broker_operator_secrets"
|
|
40
42
|
printf '{"version":1,"brokers":[{"id":"hf-broker","label":"Hugging Face","url":"http://127.0.0.1:7864","token_file":"%s"}]}\n' "$operator_secret_file" > "$operator_brokers_file"
|
|
41
43
|
chown hf-broker:hf-broker "$token_file" "$broker_agent_secrets" "$broker_operator_secrets"
|
|
44
|
+
chown "$OPENCLAW_IDENTITY" "$agent_secret_file"
|
|
42
45
|
chmod 0600 "$token_file" "$agent_secret_file" "$operator_secret_file" "$broker_agent_secrets" "$broker_operator_secrets" "$operator_brokers_file"
|
|
43
46
|
|
|
44
47
|
if [ -z "${MLCLAW_STATE_MOUNT_DIR:-}" ]; then
|
|
@@ -65,6 +68,13 @@ restore_protected_state() {
|
|
|
65
68
|
fi
|
|
66
69
|
install -d -m 0700 -o root -g root "$PROTECTED_STATE_DIR/control"
|
|
67
70
|
install -d -m 0700 -o hf-broker -g hf-broker "$HF_BROKER_STATE_DIR"
|
|
71
|
+
rm -rf -- \
|
|
72
|
+
"$HF_BROKER_STATE_DIR/grants" \
|
|
73
|
+
"$HF_BROKER_STATE_DIR/operations" \
|
|
74
|
+
"$HF_BROKER_STATE_DIR/plans"
|
|
75
|
+
rm -f -- \
|
|
76
|
+
"$HF_BROKER_STATE_DIR/grants.json" \
|
|
77
|
+
"$HF_BROKER_STATE_DIR/operations.json"
|
|
68
78
|
chown -R root:root "$PROTECTED_STATE_DIR/control"
|
|
69
79
|
chown -R hf-broker:hf-broker "$HF_BROKER_STATE_DIR"
|
|
70
80
|
chmod 0710 "$PROTECTED_STATE_DIR"
|
|
@@ -77,22 +87,14 @@ start_hf_broker() {
|
|
|
77
87
|
fi
|
|
78
88
|
|
|
79
89
|
install -d -m 0700 -o hf-broker -g hf-broker "$HF_BROKER_STATE_DIR"
|
|
80
|
-
install -d -m 0700 -o hf-broker -g hf-broker "$HF_BROKER_STATE_DIR/grants"
|
|
81
|
-
if [ ! -e "$HF_BROKER_STATE_DIR/grants/grants.json" ]; then
|
|
82
|
-
printf '{"grants":[]}\n' > "$HF_BROKER_STATE_DIR/grants/grants.json"
|
|
83
|
-
chown hf-broker:hf-broker "$HF_BROKER_STATE_DIR/grants/grants.json"
|
|
84
|
-
chmod 0600 "$HF_BROKER_STATE_DIR/grants/grants.json"
|
|
85
|
-
fi
|
|
86
90
|
chown -R hf-broker:hf-broker "$HF_BROKER_STATE_DIR"
|
|
87
91
|
chmod 0700 "$HF_BROKER_STATE_DIR"
|
|
88
92
|
|
|
89
93
|
HF_BROKER_HF_TOKEN_FILE="$HF_BROKER_RUN_DIR/hf-token" \
|
|
90
94
|
HF_BROKER_SECRETS_FILE="$HF_BROKER_RUN_DIR/agent-secrets.conf" \
|
|
91
95
|
HF_BROKER_OPERATOR_SECRETS_FILE="$HF_BROKER_RUN_DIR/operator-secrets.conf" \
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
HF_BROKER_OPERATOR_BIND_ADDR=127.0.0.1 \
|
|
95
|
-
HF_BROKER_OPERATOR_PORT=7864 \
|
|
96
|
+
HF_BROKER_AGENT_ENDPOINT=tcp://127.0.0.1:7863 \
|
|
97
|
+
HF_BROKER_OPERATOR_ENDPOINT=tcp://127.0.0.1:7864 \
|
|
96
98
|
HF_BROKER_SCOPE_FILE=/app/hf-broker.scope.json \
|
|
97
99
|
HF_BROKER_STATE_DIR="$HF_BROKER_STATE_DIR" \
|
|
98
100
|
gosu hf-broker:hf-broker /usr/local/bin/hf-broker &
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mlclaw",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"config": {
|
|
6
|
-
"openclawVersion": "2026.7.1
|
|
7
|
-
"brokerkitVersion": "
|
|
8
|
-
"brokerkitPluginVersion": "0.1
|
|
6
|
+
"openclawVersion": "2026.7.1",
|
|
7
|
+
"brokerkitVersion": "hf-broker/v0.1.0",
|
|
8
|
+
"brokerkitPluginVersion": "0.2.1",
|
|
9
9
|
"runtimeImageRepository": "ghcr.io/osolmaz/mlclaw"
|
|
10
10
|
},
|
|
11
11
|
"repository": {
|
|
@@ -30,7 +30,6 @@
|
|
|
30
30
|
"dist/mlclaw-space-runtime.js",
|
|
31
31
|
"Dockerfile",
|
|
32
32
|
"entrypoint.sh",
|
|
33
|
-
"hf-broker.scope.json",
|
|
34
33
|
"mlclaw.ps1",
|
|
35
34
|
"mlclaw.sh",
|
|
36
35
|
"LICENSE",
|
|
@@ -56,9 +55,9 @@
|
|
|
56
55
|
"pack:check": "node scripts/check-package.mjs",
|
|
57
56
|
"prepack": "npm run build",
|
|
58
57
|
"check:secrets": "node scripts/check-secrets.mjs",
|
|
59
|
-
"format": "prettier --check eslint.config.mjs vitest.config.ts vitest.stryker.config.ts package.json README.md src/hf-state-sync/archive.ts src/hf-state-sync/cli.ts src/hf-state-sync/paths.ts src/hf-state-sync/prepare.ts src/hf-state-sync/stage-worker.ts src/hf-state-sync/supervise.ts src/mlclaw-space-runtime/delegated-brokerkit.ts src/mlclaw-space-runtime/operator-brokers.ts src/mlclaw-space-runtime/openclaw-config.ts src/mlclaw-space-runtime/app.ts src/mlclaw-space-runtime/config.ts src/mlclaw-space-runtime/openai-credentials.ts src/mlclaw-space-runtime/server.ts src/mlclaw-space-runtime/shell.ts src/mlclaw-control-ui/src/main.tsx src/mlclaw-control-ui/src/styles.css src/mlclaw-control-ui/src/components/ui/utils.ts src/mlclaw/git.ts test/hf-state-sync.archive.test.ts test/hf-state-sync.roundtrip.test.ts test/hf-state-sync.supervise.test.ts test/mlclaw.bundle.test.ts test/mlclaw.delegated-brokerkit.test.ts test/mlclaw.generate-space.test.ts test/mlclaw.operator-brokers.test.ts test/mlclaw.runtime-image.test.ts test/mlclaw.space-runtime.test.ts docs/operator-brokers-config.md",
|
|
60
|
-
"format:write": "prettier --write eslint.config.mjs vitest.config.ts vitest.stryker.config.ts package.json README.md src/hf-state-sync/archive.ts src/hf-state-sync/cli.ts src/hf-state-sync/paths.ts src/hf-state-sync/prepare.ts src/hf-state-sync/stage-worker.ts src/hf-state-sync/supervise.ts src/mlclaw-space-runtime/delegated-brokerkit.ts src/mlclaw-space-runtime/operator-brokers.ts src/mlclaw-space-runtime/openclaw-config.ts src/mlclaw-space-runtime/app.ts src/mlclaw-space-runtime/config.ts src/mlclaw-space-runtime/openai-credentials.ts src/mlclaw-space-runtime/server.ts src/mlclaw-space-runtime/shell.ts src/mlclaw-control-ui/src/main.tsx src/mlclaw-control-ui/src/styles.css src/mlclaw-control-ui/src/components/ui/utils.ts src/mlclaw/git.ts test/hf-state-sync.archive.test.ts test/hf-state-sync.roundtrip.test.ts test/hf-state-sync.supervise.test.ts test/mlclaw.bundle.test.ts test/mlclaw.delegated-brokerkit.test.ts test/mlclaw.generate-space.test.ts test/mlclaw.operator-brokers.test.ts test/mlclaw.runtime-image.test.ts test/mlclaw.space-runtime.test.ts docs/operator-brokers-config.md",
|
|
61
|
-
"lint": "eslint --max-warnings 0 src/mlclaw-space-runtime/delegated-brokerkit.ts src/mlclaw-space-runtime/operator-brokers.ts src/mlclaw-space-runtime/openclaw-config.ts",
|
|
58
|
+
"format": "prettier --check eslint.config.mjs vitest.config.ts vitest.stryker.config.ts package.json README.md src/hf-state-sync/archive.ts src/hf-state-sync/cli.ts src/hf-state-sync/paths.ts src/hf-state-sync/prepare.ts src/hf-state-sync/stage-worker.ts src/hf-state-sync/supervise.ts src/mlclaw-space-runtime/delegated-brokerkit.ts src/mlclaw-space-runtime/delegated-revisions.ts src/mlclaw-space-runtime/operator-brokers.ts src/mlclaw-space-runtime/openclaw-config.ts src/mlclaw-space-runtime/app.ts src/mlclaw-space-runtime/config.ts src/mlclaw-space-runtime/openai-credentials.ts src/mlclaw-space-runtime/server.ts src/mlclaw-space-runtime/shell.ts src/mlclaw-control-ui/src/main.tsx src/mlclaw-control-ui/src/styles.css src/mlclaw-control-ui/src/components/ui/utils.ts src/mlclaw/git.ts test/hf-state-sync.archive.test.ts test/hf-state-sync.roundtrip.test.ts test/hf-state-sync.supervise.test.ts test/mlclaw.brokerkit-agent-tools.test.ts test/mlclaw.bundle.test.ts test/mlclaw.delegated-brokerkit.test.ts test/mlclaw.generate-space.test.ts test/mlclaw.operator-brokers.test.ts test/mlclaw.runtime-image.test.ts test/mlclaw.space-runtime.test.ts docs/operator-brokers-config.md",
|
|
59
|
+
"format:write": "prettier --write eslint.config.mjs vitest.config.ts vitest.stryker.config.ts package.json README.md src/hf-state-sync/archive.ts src/hf-state-sync/cli.ts src/hf-state-sync/paths.ts src/hf-state-sync/prepare.ts src/hf-state-sync/stage-worker.ts src/hf-state-sync/supervise.ts src/mlclaw-space-runtime/delegated-brokerkit.ts src/mlclaw-space-runtime/delegated-revisions.ts src/mlclaw-space-runtime/operator-brokers.ts src/mlclaw-space-runtime/openclaw-config.ts src/mlclaw-space-runtime/app.ts src/mlclaw-space-runtime/config.ts src/mlclaw-space-runtime/openai-credentials.ts src/mlclaw-space-runtime/server.ts src/mlclaw-space-runtime/shell.ts src/mlclaw-control-ui/src/main.tsx src/mlclaw-control-ui/src/styles.css src/mlclaw-control-ui/src/components/ui/utils.ts src/mlclaw/git.ts test/hf-state-sync.archive.test.ts test/hf-state-sync.roundtrip.test.ts test/hf-state-sync.supervise.test.ts test/mlclaw.brokerkit-agent-tools.test.ts test/mlclaw.bundle.test.ts test/mlclaw.delegated-brokerkit.test.ts test/mlclaw.generate-space.test.ts test/mlclaw.operator-brokers.test.ts test/mlclaw.runtime-image.test.ts test/mlclaw.space-runtime.test.ts docs/operator-brokers-config.md",
|
|
60
|
+
"lint": "eslint --max-warnings 0 src/mlclaw-space-runtime/delegated-brokerkit.ts src/mlclaw-space-runtime/delegated-revisions.ts src/mlclaw-space-runtime/operator-brokers.ts src/mlclaw-space-runtime/openclaw-config.ts",
|
|
62
61
|
"coverage": "vitest run --coverage",
|
|
63
62
|
"dry": "slophammer-ts dry .",
|
|
64
63
|
"mutate": "stryker run --dryRunOnly",
|
package/hf-broker.scope.json
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"rules": [
|
|
3
|
-
{
|
|
4
|
-
"id": "mlclaw-read-repositories",
|
|
5
|
-
"effect": "allow",
|
|
6
|
-
"clients": ["default"],
|
|
7
|
-
"operations": ["repo.list", "repo.metadata.read", "repo.contents.read", "git.fetch"],
|
|
8
|
-
"targets": [
|
|
9
|
-
{"kind": "repo", "type": "*", "owner": "*", "name": "*"}
|
|
10
|
-
]
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"id": "mlclaw-append-repositories",
|
|
14
|
-
"effect": "allow",
|
|
15
|
-
"clients": ["default"],
|
|
16
|
-
"operations": ["git.push.append"],
|
|
17
|
-
"targets": [
|
|
18
|
-
{"kind": "repo", "type": "*", "owner": "*", "name": "*"}
|
|
19
|
-
]
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"id": "mlclaw-request-protected-repository-writes",
|
|
23
|
-
"effect": "request",
|
|
24
|
-
"clients": ["default"],
|
|
25
|
-
"operations": ["git.push.force", "git.ref.delete", "git.tag.update"],
|
|
26
|
-
"targets": [
|
|
27
|
-
{"kind": "repo", "type": "*", "owner": "*", "name": "*"}
|
|
28
|
-
],
|
|
29
|
-
"grant_policy": {
|
|
30
|
-
"default_minutes": 5,
|
|
31
|
-
"max_minutes": 60,
|
|
32
|
-
"request_ttl_minutes": 15,
|
|
33
|
-
"default_max_uses": 1,
|
|
34
|
-
"max_uses": 3
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
]
|
|
38
|
-
}
|