mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	Chore: close unsupported FRs (#5804)
This commit is contained in:
		
							
								
								
									
										78
									
								
								.github/workflows/repo-maintenance.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										78
									
								
								.github/workflows/repo-maintenance.yml
									
									
									
									
										vendored
									
									
								
							| @@ -195,6 +195,84 @@ jobs: | ||||
|                 } | ||||
|                 await github.graphql(closeDiscussionMutation, closeVariables); | ||||
|  | ||||
|                 await sleep(1000); | ||||
|               } | ||||
|             } | ||||
|   close-unsupported-feature-requests: | ||||
|     name: 'Close Unsupported Feature Requests' | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/github-script@v7 | ||||
|         with: | ||||
|           script: | | ||||
|             function sleep(ms) { | ||||
|               return new Promise(resolve => setTimeout(resolve, ms)); | ||||
|             } | ||||
|  | ||||
|             const CUTOFF_1_DAYS = 180; | ||||
|             const CUTOFF_1_COUNT = 5; | ||||
|             const CUTOFF_2_DAYS = 365; | ||||
|             const CUTOFF_2_COUNT = 10; | ||||
|  | ||||
|             const cutoff1Date = new Date(); | ||||
|             cutoff1Date.setDate(cutoff1Date.getDate() - CUTOFF_1_DAYS); | ||||
|             const cutoff2Date = new Date(); | ||||
|             cutoff2Date.setDate(cutoff2Date.getDate() - CUTOFF_2_DAYS); | ||||
|  | ||||
|             const query = `query( | ||||
|                 $owner:String!, | ||||
|                 $name:String!, | ||||
|                 $featureRequestsCategory:ID!, | ||||
|               ) { | ||||
|               repository(owner:$owner, name:$name){ | ||||
|                 discussions( | ||||
|                   categoryId:$featureRequestsCategory, | ||||
|                   last:100, | ||||
|                   states:[OPEN], | ||||
|                 ) { | ||||
|                   nodes { | ||||
|                     id, | ||||
|                     number, | ||||
|                     updatedAt, | ||||
|                     upvoteCount, | ||||
|                   } | ||||
|                 }, | ||||
|               } | ||||
|             }`; | ||||
|             const variables = { | ||||
|               owner: context.repo.owner, | ||||
|               name: context.repo.repo, | ||||
|               featureRequestsCategory: "DIC_kwDOG1Zs184CBNr4" | ||||
|             } | ||||
|             const result = await github.graphql(query, variables); | ||||
|  | ||||
|             for (const discussion of result.repository.discussions.nodes) { | ||||
|               const discussionDate = new Date(discussion.updatedAt); | ||||
|               if ((discussionDate < cutoff1Date && discussion.upvoteCount < CUTOFF_1_COUNT) || | ||||
|                   (discussionDate < cutoff2Date && discussion.upvoteCount < CUTOFF_2_COUNT)) { | ||||
|                 console.log(`Closing discussion #${discussion.number} (${discussion.id}), last updated at ${discussion.updatedAt} with votes ${discussion.upvoteCount}`); | ||||
|                 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 due to lack of community interest.', | ||||
|                 } | ||||
|                 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: "OUTDATED", | ||||
|                 } | ||||
|                 await github.graphql(closeDiscussionMutation, closeVariables); | ||||
|  | ||||
|                 await sleep(1000); | ||||
|               } | ||||
|             } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 shamoon
					shamoon