summaryrefslogtreecommitdiff
path: root/.github/scripts/ai_policy.cjs
diff options
context:
space:
mode:
Diffstat (limited to '.github/scripts/ai_policy.cjs')
-rw-r--r--.github/scripts/ai_policy.cjs39
1 files changed, 39 insertions, 0 deletions
diff --git a/.github/scripts/ai_policy.cjs b/.github/scripts/ai_policy.cjs
new file mode 100644
index 000000000..626deb1ce
--- /dev/null
+++ b/.github/scripts/ai_policy.cjs
@@ -0,0 +1,39 @@
+// Closes issues and prs whose authors/agents don't accept the ai policy
+// https://github.com/searxng/searxng/blob/master/AI_POLICY.rst
+
+module.exports = async ({ github, context }) => {
+ const item = context.payload.pull_request || context.payload.issue;
+ const body = item.body || '';
+ const kind = context.payload.pull_request ? 'pull request' : 'issue';
+
+ // https://github.com/searxng/searxng/pull/6476#discussion_r3683782481
+ const hasBox = /\[[Xx]\].*AI Policy/.test(body);
+ const hasRef = /\[AI Policy\]:\s*https:\/\/github\.com\/searxng\/searxng\/.*AI_POLICY/.test(body);
+ if (hasBox && hasRef) {
+ return;
+ }
+
+ const { owner, repo } = context.repo;
+ await github.rest.issues.createComment({
+ owner,
+ repo,
+ issue_number: item.number,
+ body:
+ 'Hello! Thank you for your contribution.\n\n' +
+ `Unfortunately your ${kind} was closed as the AI Policy has not been accepted.\n\n` +
+ `Please open a new ${kind} after confirming your contribution aligns with our AI Policy.`,
+ });
+ await github.rest.issues.addLabels({
+ owner,
+ repo,
+ issue_number: item.number,
+ labels: ['invalid:slop'],
+ });
+ await github.rest.issues.update({
+ owner,
+ repo,
+ issue_number: item.number,
+ state: 'closed',
+ state_reason: 'not_planned',
+ });
+};