mirror of
https://github.com/aquasecurity/trivy.git
synced 2025-12-12 15:50:15 -08:00
46 lines
1.8 KiB
YAML
46 lines
1.8 KiB
YAML
name: Auto-close issues
|
|
|
|
on:
|
|
issues:
|
|
types: [opened]
|
|
|
|
jobs:
|
|
close_issue:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Close issue if user does not have write or admin permissions
|
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
|
with:
|
|
script: |
|
|
// Get the issue creator's username
|
|
const issueCreator = context.payload.issue.user.login;
|
|
|
|
// Check the user's permissions for the repository
|
|
const repoPermissions = await github.rest.repos.getCollaboratorPermissionLevel({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
username: issueCreator
|
|
});
|
|
|
|
const permission = repoPermissions.data.permission;
|
|
|
|
// If the user does not have write or admin permissions, leave a comment and close the issue
|
|
if (permission !== 'write' && permission !== 'admin') {
|
|
const commentBody = "Please see https://trivy.dev/latest/community/contribute/issue/";
|
|
await github.rest.issues.createComment({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
issue_number: context.payload.issue.number,
|
|
body: commentBody
|
|
});
|
|
|
|
await github.rest.issues.update({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
issue_number: context.payload.issue.number,
|
|
state: 'closed',
|
|
state_reason: 'not_planned'
|
|
});
|
|
|
|
console.log(`Issue #${context.payload.issue.number} closed because ${issueCreator} does not have sufficient permissions.`);
|
|
} |