mirror of
https://github.com/farcasclaudiu/openclaw.git
synced 2026-06-28 19:01:47 +03:00
CI: add contributor tier labels
This commit is contained in:
@@ -36,7 +36,7 @@ jobs:
|
|||||||
}
|
}
|
||||||
|
|
||||||
const sizeLabels = ["size: XS", "size: S", "size: M", "size: L", "size: XL"];
|
const sizeLabels = ["size: XS", "size: S", "size: M", "size: L", "size: XL"];
|
||||||
const labelColor = "fbca04";
|
const labelColor = "b76e79";
|
||||||
|
|
||||||
for (const label of sizeLabels) {
|
for (const label of sizeLabels) {
|
||||||
try {
|
try {
|
||||||
@@ -114,7 +114,7 @@ jobs:
|
|||||||
issue_number: pullRequest.number,
|
issue_number: pullRequest.number,
|
||||||
labels: [targetSizeLabel],
|
labels: [targetSizeLabel],
|
||||||
});
|
});
|
||||||
- name: Apply maintainer label for org members
|
- name: Apply maintainer or trusted-contributor label
|
||||||
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7
|
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7
|
||||||
with:
|
with:
|
||||||
github-token: ${{ steps.app-token.outputs.token }}
|
github-token: ${{ steps.app-token.outputs.token }}
|
||||||
@@ -124,6 +124,12 @@ jobs:
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const repo = `${context.repo.owner}/${context.repo.repo}`;
|
||||||
|
const trustedLabel = "trusted-contributor";
|
||||||
|
const experiencedLabel = "experienced-contributor";
|
||||||
|
const trustedThreshold = 4;
|
||||||
|
const experiencedThreshold = 10;
|
||||||
|
|
||||||
let isMaintainer = false;
|
let isMaintainer = false;
|
||||||
try {
|
try {
|
||||||
const membership = await github.rest.teams.getMembershipForUserInOrg({
|
const membership = await github.rest.teams.getMembershipForUserInOrg({
|
||||||
@@ -138,15 +144,38 @@ jobs:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isMaintainer) {
|
if (isMaintainer) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
await github.rest.issues.addLabels({
|
await github.rest.issues.addLabels({
|
||||||
...context.repo,
|
...context.repo,
|
||||||
issue_number: context.payload.pull_request.number,
|
issue_number: context.payload.pull_request.number,
|
||||||
labels: ["maintainer"],
|
labels: ["maintainer"],
|
||||||
});
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const mergedQuery = `repo:${repo} is:pr is:merged author:${login}`;
|
||||||
|
const merged = await github.rest.search.issuesAndPullRequests({
|
||||||
|
q: mergedQuery,
|
||||||
|
per_page: 1,
|
||||||
|
});
|
||||||
|
const mergedCount = merged?.data?.total_count ?? 0;
|
||||||
|
|
||||||
|
if (mergedCount >= experiencedThreshold) {
|
||||||
|
await github.rest.issues.addLabels({
|
||||||
|
...context.repo,
|
||||||
|
issue_number: context.payload.pull_request.number,
|
||||||
|
labels: [experiencedLabel],
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mergedCount >= trustedThreshold) {
|
||||||
|
await github.rest.issues.addLabels({
|
||||||
|
...context.repo,
|
||||||
|
issue_number: context.payload.pull_request.number,
|
||||||
|
labels: [trustedLabel],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
label-issues:
|
label-issues:
|
||||||
permissions:
|
permissions:
|
||||||
@@ -158,7 +187,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
app-id: "2729701"
|
app-id: "2729701"
|
||||||
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
|
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
|
||||||
- name: Apply maintainer label for org members
|
- name: Apply maintainer or trusted-contributor label
|
||||||
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7
|
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7
|
||||||
with:
|
with:
|
||||||
github-token: ${{ steps.app-token.outputs.token }}
|
github-token: ${{ steps.app-token.outputs.token }}
|
||||||
@@ -168,6 +197,12 @@ jobs:
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const repo = `${context.repo.owner}/${context.repo.repo}`;
|
||||||
|
const trustedLabel = "trusted-contributor";
|
||||||
|
const experiencedLabel = "experienced-contributor";
|
||||||
|
const trustedThreshold = 4;
|
||||||
|
const experiencedThreshold = 10;
|
||||||
|
|
||||||
let isMaintainer = false;
|
let isMaintainer = false;
|
||||||
try {
|
try {
|
||||||
const membership = await github.rest.teams.getMembershipForUserInOrg({
|
const membership = await github.rest.teams.getMembershipForUserInOrg({
|
||||||
@@ -182,12 +217,35 @@ jobs:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isMaintainer) {
|
if (isMaintainer) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
await github.rest.issues.addLabels({
|
await github.rest.issues.addLabels({
|
||||||
...context.repo,
|
...context.repo,
|
||||||
issue_number: context.payload.issue.number,
|
issue_number: context.payload.issue.number,
|
||||||
labels: ["maintainer"],
|
labels: ["maintainer"],
|
||||||
});
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const mergedQuery = `repo:${repo} is:pr is:merged author:${login}`;
|
||||||
|
const merged = await github.rest.search.issuesAndPullRequests({
|
||||||
|
q: mergedQuery,
|
||||||
|
per_page: 1,
|
||||||
|
});
|
||||||
|
const mergedCount = merged?.data?.total_count ?? 0;
|
||||||
|
|
||||||
|
if (mergedCount >= experiencedThreshold) {
|
||||||
|
await github.rest.issues.addLabels({
|
||||||
|
...context.repo,
|
||||||
|
issue_number: context.payload.issue.number,
|
||||||
|
labels: [experiencedLabel],
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mergedCount >= trustedThreshold) {
|
||||||
|
await github.rest.issues.addLabels({
|
||||||
|
...context.repo,
|
||||||
|
issue_number: context.payload.issue.number,
|
||||||
|
labels: [trustedLabel],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user