How can the lazyconfig_train_net.py validation image be visualized #1256
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Check issue template | |
on: | |
issues: | |
types: [opened] | |
jobs: | |
check-template: | |
runs-on: ubuntu-latest | |
# comment this out when testing with https://github.com/nektos/act | |
if: ${{ github.repository_owner == 'facebookresearch' }} | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/github-script@v3 | |
with: | |
github-token: ${{secrets.GITHUB_TOKEN}} | |
script: | | |
// Arguments available: | |
// - github: A pre-authenticated octokit/rest.js client | |
// - context: An object containing the context of the workflow run | |
// - core: A reference to the @actions/core package | |
// - io: A reference to the @actions/io package | |
const fs = require('fs'); | |
const editDistance = require(`${process.env.GITHUB_WORKSPACE}/.github/workflows/levenshtein.js`).getEditDistance | |
issue = await github.issues.get({ | |
owner: context.issue.owner, | |
repo: context.issue.repo, | |
issue_number: context.issue.number, | |
}); | |
const hasLabel = issue.data.labels.length > 0; | |
if (hasLabel || issue.state === "closed") { | |
// don't require template on them | |
core.debug("Issue " + issue.data.title + " was skipped."); | |
return; | |
} | |
sameAsTemplate = function(filename, body) { | |
let tmpl = fs.readFileSync(`.github/ISSUE_TEMPLATE/${filename}`, 'utf8'); | |
tmpl = tmpl.toLowerCase().split("---").slice(2).join("").trim(); | |
tmpl = tmpl.replace(/(\r\n|\n|\r)/gm, ""); | |
let bodyr = body.replace(/(\r\n|\n|\r)/gm, ""); | |
let dist = editDistance(tmpl, bodyr); | |
return dist < 8; | |
}; | |
checkFail = async function(msg) { | |
core.info("Processing '" + issue.data.title + "' with message: " + msg); | |
await github.issues.addLabels({ | |
owner: context.issue.owner, | |
repo: context.issue.repo, | |
issue_number: context.issue.number, | |
labels: ["needs-more-info"], | |
}); | |
await github.issues.createComment({ | |
owner: context.issue.owner, | |
repo: context.issue.repo, | |
issue_number: context.issue.number, | |
body: msg, | |
}); | |
}; | |
const body = issue.data.body.toLowerCase().trim(); | |
if (sameAsTemplate("bugs.md", body) || sameAsTemplate("unexpected-problems-bugs.md", body)) { | |
await checkFail(` | |
We found that not enough information is provided about this issue. | |
Please provide details following the [issue template](https://github.com/facebookresearch/detectron2/issues/new/choose).`) | |
return; | |
} | |
const hasInstructions = body.indexOf("reproduce") != -1; | |
const hasEnvironment = (body.indexOf("environment") != -1) || (body.indexOf("colab") != -1) || (body.indexOf("docker") != -1); | |
if (hasInstructions && hasEnvironment) { | |
core.debug("Issue " + issue.data.title + " follows template."); | |
return; | |
} | |
let message = "You've chosen to report an unexpected problem or bug. Unless you already know the root cause of it, please include details about it by filling the [issue template](https://github.com/facebookresearch/detectron2/issues/new/choose).\n"; | |
message += "The following information is missing: "; | |
if (!hasInstructions) { | |
message += "\"Instructions To Reproduce the Issue and __Full__ Logs\"; "; | |
} | |
if (!hasEnvironment) { | |
message += "\"Your Environment\"; "; | |
} | |
await checkFail(message); |