mirror of
https://github.com/searxng/searxng.git
synced 2026-07-26 18:01:33 +00:00
91 lines
3.6 KiB
YAML
91 lines
3.6 KiB
YAML
---
|
|
name: AI Policy
|
|
|
|
# yamllint disable-line rule:truthy
|
|
on:
|
|
issues:
|
|
types: [opened]
|
|
pull_request_target:
|
|
types: [opened]
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.issue.number || github.event.pull_request.number }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
issue:
|
|
name: Check issue
|
|
if: >-
|
|
github.event_name == 'issues' &&
|
|
github.event.sender.type != 'Bot' &&
|
|
contains(fromJSON('["NONE","FIRST_TIMER","FIRST_TIME_CONTRIBUTOR"]'),
|
|
github.event.issue.author_association)
|
|
runs-on: ubuntu-26.04
|
|
permissions:
|
|
issues: write
|
|
steps:
|
|
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
with:
|
|
script: |
|
|
const body = context.payload.issue.body || '';
|
|
const lines = body.split(/\r?\n/).map((l) => l.trim().replace('[X]', '[x]'));
|
|
const ref = '[AI Policy]: https://github.com/searxng/searxng/blob/master/AI_POLICY.rst';
|
|
const box = '- [x] I read the [AI Policy] and hereby confirm that this issue'
|
|
+ ' conforms with the policy.';
|
|
if (lines.includes(ref) && lines.includes(box)) return;
|
|
|
|
const n = context.payload.issue.number;
|
|
const msg = 'This issue was closed because the AI Policy box has not been ticked.\n\n'
|
|
+ 'Please open a new issue with the checkbox ticked.';
|
|
await github.rest.issues.createComment({
|
|
owner: context.repo.owner, repo: context.repo.repo, issue_number: n,
|
|
body: msg,
|
|
});
|
|
await github.rest.issues.addLabels({
|
|
owner: context.repo.owner, repo: context.repo.repo, issue_number: n,
|
|
labels: ['invalid:slop'],
|
|
});
|
|
await github.rest.issues.update({
|
|
owner: context.repo.owner, repo: context.repo.repo, issue_number: n,
|
|
state: 'closed', state_reason: 'not_planned',
|
|
});
|
|
|
|
pull_request:
|
|
name: Check pull request
|
|
if: >-
|
|
github.event_name == 'pull_request_target' &&
|
|
github.event.sender.type != 'Bot' &&
|
|
contains(fromJSON('["NONE","FIRST_TIMER","FIRST_TIME_CONTRIBUTOR"]'),
|
|
github.event.pull_request.author_association)
|
|
runs-on: ubuntu-26.04
|
|
permissions:
|
|
pull-requests: write
|
|
steps:
|
|
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
with:
|
|
script: |
|
|
const body = context.payload.pull_request.body || '';
|
|
const lines = body.split(/\r?\n/).map((l) => l.trim().replace('[X]', '[x]'));
|
|
const ref = '[AI Policy]: https://github.com/searxng/searxng/blob/master/AI_POLICY.rst';
|
|
const box = '- [x] **I hereby confirm that this PR conforms with the [AI Policy].**';
|
|
if (lines.includes(ref) && lines.includes(box)) return;
|
|
|
|
const n = context.payload.pull_request.number;
|
|
const msg = 'This pull request was closed because the AI Policy box has not been'
|
|
+ ' ticked.\n\nPlease open a new pull request with the checkbox ticked.';
|
|
await github.rest.issues.createComment({
|
|
owner: context.repo.owner, repo: context.repo.repo, issue_number: n,
|
|
body: msg,
|
|
});
|
|
await github.rest.issues.addLabels({
|
|
owner: context.repo.owner, repo: context.repo.repo, issue_number: n,
|
|
labels: ['invalid:slop'],
|
|
});
|
|
await github.rest.issues.update({
|
|
owner: context.repo.owner, repo: context.repo.repo, issue_number: n,
|
|
state: 'closed', state_reason: 'not_planned',
|
|
});
|