mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 03:16:10 -06:00 
			
		
		
		
	Chore: Close answered discussions (#4565)
This commit is contained in:
		
							
								
								
									
										52
									
								
								.github/workflows/repo-maintenance.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										52
									
								
								.github/workflows/repo-maintenance.yml
									
									
									
									
										vendored
									
									
								
							@@ -8,6 +8,7 @@ on:
 | 
			
		||||
permissions:
 | 
			
		||||
  issues: write
 | 
			
		||||
  pull-requests: write
 | 
			
		||||
  discussions: write
 | 
			
		||||
 | 
			
		||||
concurrency:
 | 
			
		||||
  group: lock
 | 
			
		||||
@@ -45,3 +46,54 @@ jobs:
 | 
			
		||||
            This pull request has been automatically locked since there
 | 
			
		||||
            has not been any recent activity after it was closed.
 | 
			
		||||
            Please open a new discussion or issue for related concerns.
 | 
			
		||||
  close-answered-discussions:
 | 
			
		||||
    name: 'Close Answered Discussions'
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/github-script@v6
 | 
			
		||||
        with:
 | 
			
		||||
          script: |
 | 
			
		||||
            const query = `query($owner:String!, $name:String!) {
 | 
			
		||||
              repository(owner:$owner, name:$name){
 | 
			
		||||
                discussions(first:100, answered:true, states:[OPEN]) {
 | 
			
		||||
                  nodes {
 | 
			
		||||
                    id,
 | 
			
		||||
                    number
 | 
			
		||||
                  }
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
            }`;
 | 
			
		||||
            const variables = {
 | 
			
		||||
              owner: context.repo.owner,
 | 
			
		||||
              name: context.repo.repo,
 | 
			
		||||
            }
 | 
			
		||||
            const result = await github.graphql(query, variables)
 | 
			
		||||
 | 
			
		||||
            console.log(`Found ${result.repository.discussions.nodes.length} open answered discussions`)
 | 
			
		||||
 | 
			
		||||
            for (const discussion of result.repository.discussions.nodes) {
 | 
			
		||||
              console.log(`Closing dicussion #${discussion.number} (${discussion.id})`)
 | 
			
		||||
 | 
			
		||||
              const addCommentMutation = `mutation($discussion:ID!, $body:String!) {
 | 
			
		||||
                addDiscussionComment(input:{discussionId:$discussion, body:$body}) {
 | 
			
		||||
                  clientMutationId
 | 
			
		||||
                }
 | 
			
		||||
              }`;
 | 
			
		||||
              const commentVariables = {
 | 
			
		||||
                discussion: discussion.id,
 | 
			
		||||
                body: 'This discussion has been automatically closed because it was marked as answered.',
 | 
			
		||||
              }
 | 
			
		||||
              await github.graphql(addCommentMutation, commentVariables)
 | 
			
		||||
 | 
			
		||||
              const closeDiscussionMutation = `mutation($discussion:ID!, $reason:DiscussionCloseReason!) {
 | 
			
		||||
                closeDiscussion(input:{discussionId:$discussion, reason:$reason}) {
 | 
			
		||||
                  clientMutationId
 | 
			
		||||
                }
 | 
			
		||||
              }`;
 | 
			
		||||
              const closeVariables = {
 | 
			
		||||
                discussion: discussion.id,
 | 
			
		||||
                reason: "RESOLVED",
 | 
			
		||||
              }
 | 
			
		||||
              await github.graphql(closeDiscussionMutation, closeVariables)
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user