mirror of
https://github.com/immich-app/immich.git
synced 2025-12-10 17:23:12 +03:00
97 lines
3.2 KiB
YAML
97 lines
3.2 KiB
YAML
on:
|
|
issues:
|
|
types: [opened]
|
|
discussion:
|
|
types: [created]
|
|
|
|
name: Close likely duplicates
|
|
permissions: {}
|
|
|
|
jobs:
|
|
get_body:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
EVENT: ${{ toJSON(github.event) }}
|
|
outputs:
|
|
body: ${{ steps.get_body.outputs.body }}
|
|
steps:
|
|
- id: get_body
|
|
run: |
|
|
BODY=$(echo """$EVENT""" | jq -r '.issue // .discussion | .body' | base64 -w 0)
|
|
echo "body=$BODY" >> $GITHUB_OUTPUT
|
|
|
|
get_checkbox_json:
|
|
runs-on: ubuntu-latest
|
|
needs: get_body
|
|
container:
|
|
image: yshavit/mdq:0.7.2
|
|
outputs:
|
|
json: ${{ steps.get_checkbox.outputs.json }}
|
|
steps:
|
|
- id: get_checkbox
|
|
env:
|
|
BODY: ${{ needs.get_body.outputs.body }}
|
|
run: |
|
|
JSON=$(echo "$BODY" | base64 -d | /mdq --output json '# I have searched | - [?] Yes')
|
|
echo "json=$JSON" >> $GITHUB_OUTPUT
|
|
|
|
close_and_comment:
|
|
runs-on: ubuntu-latest
|
|
needs: get_checkbox_json
|
|
if: ${{ !fromJSON(needs.get_checkbox_json.outputs.json).items[0].list[0].checked }}
|
|
permissions:
|
|
issues: write
|
|
discussions: write
|
|
steps:
|
|
- name: Close issue
|
|
if: ${{ github.event_name == 'issues' }}
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
NODE_ID: ${{ github.event.issue.node_id }}
|
|
run: |
|
|
gh api graphql \
|
|
-f issueId="$NODE_ID" \
|
|
-f body="This issue has automatically been closed as it is likely a duplicate. We get a lot of duplicate threads each day, which is why we ask you in the template to confirm that you searched for duplicates before opening one." \
|
|
-f query='
|
|
mutation CommentAndCloseIssue($issueId: ID!, $body: String!) {
|
|
addComment(input: {
|
|
subjectId: $issueId,
|
|
body: $body
|
|
}) {
|
|
__typename
|
|
}
|
|
|
|
closeIssue(input: {
|
|
issueId: $issueId,
|
|
stateReason: DUPLICATE
|
|
}) {
|
|
__typename
|
|
}
|
|
}'
|
|
|
|
- name: Close discussion
|
|
if: ${{ github.event_name == 'discussion' && github.event.discussion.category.name == 'Feature Request' }}
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
NODE_ID: ${{ github.event.discussion.node_id }}
|
|
run: |
|
|
gh api graphql \
|
|
-f discussionId="$NODE_ID" \
|
|
-f body="This discussion has automatically been closed as it is likely a duplicate. We get a lot of duplicate threads each day, which is why we ask you in the template to confirm that you searched for duplicates before opening one." \
|
|
-f query='
|
|
mutation CommentAndCloseDiscussion($discussionId: ID!, $body: String!) {
|
|
addDiscussionComment(input: {
|
|
discussionId: $discussionId,
|
|
body: $body
|
|
}) {
|
|
__typename
|
|
}
|
|
|
|
closeDiscussion(input: {
|
|
discussionId: $discussionId,
|
|
reason: DUPLICATE
|
|
}) {
|
|
__typename
|
|
}
|
|
}'
|