Skip to content
This repository has been archived by the owner on Jan 18, 2025. It is now read-only.

Commit

Permalink
Create issue-checker
Browse files Browse the repository at this point in the history
  • Loading branch information
d3ward authored Mar 22, 2024
1 parent 8091f19 commit 69bbcc7
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions .github/workflows/issue-checker
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Issue Template Checks

on:
issues:
types: [opened, labeled, edited]

jobs:
check-required-fields:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Comment on Issues Missing Required Fields
uses: actions/github-script@v6
with:
script: |
const issue = context.payload.issue;
const issueLabels = issue.labels.map(label => label.name);
const hasRelevantLabel = issueLabels.includes('failed-test') || issueLabels.includes('verified-test');

// Proceed only if the issue has a relevant label
if (!hasRelevantLabel) {
console.log("Issue does not have relevant labels. Skipping.");
return;
}

const requiredFields = [
"Browser:",
"OS:",
"Adblock Solution",
"Description of Issue:",
"Test Result:",
];

// Helper function to check if a required field is missing
const isFieldMissing = (field) => {
return !issue.body.includes(field) || issue.body.includes(field + " ");
};

// Find all missing fields
const missingFields = requiredFields.filter(isFieldMissing);

// If there are missing fields, post a comment
if (missingFields.length > 0) {
const commentBody = `Hello @${issue.user.login}, it looks like your issue is missing some required information: \n- ${missingFields.join("\n- ")}\nPlease update your issue to include this information.`;
await github.rest.issues.createComment({
issue_number: issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: commentBody
});
} else {
console.log("Issue contains all required fields.");
}

0 comments on commit 69bbcc7

Please sign in to comment.