123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- name: Labels
- # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
- permissions:
- actions: none
- checks: none
- contents: none
- deployments: none
- id-token: none
- # This action can update/close issues
- issues: write
- discussions: none
- packages: none
- pages: none
- # This action can update/close pull requests
- pull-requests: write
- repository-projects: none
- security-events: none
- statuses: none
- on:
- pull_request_target:
- types: [labeled]
- issues:
- types: [labeled]
- jobs:
- handle-labels:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/github-script@v6
- with:
- github-token: ${{secrets.GITHUB_TOKEN}}
- script: |
- // NOTE: The following section is JavaScript. Note that backticks will need to be escaped within
- // the multiline comment strings in the following config. When editing this file, using JavaScript
- // syntax highlighting might be easier.
- //
- // This script has intentionally been inlined instead of using third-party Github actions for both
- // security and performance reasons.
- const allConfig = {
- pullRequests: {
- attic: {
- close: true,
- comment: `
- Thanks for your contribution to Metasploit Framework! We've looked at this pull request, and we agree that it seems like a good addition to Metasploit, but it looks like it is not quite ready to land. We've labeled it \`attic\` and closed it for now.
- What does this generally mean? It could be one or more of several things:
- - It doesn't look like there has been any activity on this pull request in a while
- - We may not have the proper access or equipment to test this pull request, or the contributor doesn't have time to work on it right now.
- - Sometimes the implementation isn't quite right and a different approach is necessary.
- We would love to land this pull request when it's ready. If you have a chance to address all comments, we would be happy to reopen and discuss how to merge this!
- `
- },
- 'needs-docs': {
- close: false,
- comment: `
- Thanks for your pull request! Before this can be merged, we need the following documentation for your module:
- - [Writing Module Documentation](https://docs.metasploit.com/docs/development/quality/writing-module-documentation.html)
- - [Template](https://github.com/rapid7/metasploit-framework/blob/master/documentation/modules/module_doc_template.md)
- - [Examples](https://github.com/rapid7/metasploit-framework/tree/master/documentation/modules)
- `
- },
- 'needs-linting': {
- close: false,
- comment: `
- Thanks for your pull request! Before this pull request can be merged, it must pass the checks of our automated linting tools.
- We use Rubocop and msftidy to ensure the quality of our code. This can be ran from the root directory of Metasploit:
- \`\`\`
- rubocop <directory or file>
- tools/dev/msftidy.rb <directory or file>
- \`\`\`
- You can automate most of these changes with the \`-a\` flag:
- \`\`\`
- rubocop -a <directory or file>
- \`\`\`
- Please update your branch after these have been made, and reach out if you have any problems.
- `
- },
- 'needs-unique-branch': {
- close: true,
- comment: `
- Thanks for your pull request! We require for all contributed code to come from a **from a unique branch** in your repository before it can be merged.
- Please create a new branch in your fork of framework and resubmit this from that branch.
- If you are using Git on the command line that may look like:
- \`\`\`
- # Checkout the master branch
- git checkout master
- # Create a new branch for your feature
- git checkout -b <BRANCH_NAME>
- # Add your new files
- git add modules/my-cool-new-module
- # Commit your changes with a relevant message
- git commit
- # Push your changes to GitHub
- git push origin <BRANCH_NAME>
- # Now browse to the following URL and create your pull request!
- # - https://github.com/rapid7/metasploit-framework/pulls
- \`\`\`
- This helps protect the process, ensure users are aware of commits on the branch being considered for merge, allows for a location for more commits to be offered without mingling with other contributor changes and allows contributors to make progress while a PR is still being reviewed.
- Please do resubmit from a unique branch, we greatly value your contribution! :tada:
- `
- },
- 'needs-testing-environment': {
- close: false,
- comment: `
- Thanks for your pull request! As part of our landing process, we manually verify that all modules work as expected.
- We have been unable to test this module successfully. This may be due to software or hardware requirements we cannot replicate.
- To help unblock this pull request, please:
- - Comment with links to documentation on how to set up an environment, and provide exact software version numbers to use
- - Or comment guided steps on how to set up our environment for testing this module
- - Or send pcaps/screenshots/recordings of it working - you can email us msfdev[at]rapid7.com
- Once there's a clear path for testing and evaluating this module, we can progress with this further.
- `
- },
- 'needs-pull-request-template': {
- close: false,
- comment: `
- When creating a pull request, please ensure that the default pull request template has been updated with the required details.
- `
- },
- },
- issues: {
- termux: {
- close: true,
- comment: `
- Metasploit installation on Termux is not supported. Refer to the following for more information:
- * https://github.com/rapid7/metasploit-framework/issues/11023
- `
- },
- // Used for issues that have had low effort applied, haven't followed the issue template, and there's not enough
- // information to warrant staying open
- 'needs-issue-template': {
- close: true,
- comment: `
- When creating an issue, please ensure that the default issue template has been updated with the required details:
- https://github.com/rapid7/metasploit-framework/issues/new/choose
- Closing this issue. If you believe this issue has been closed in error, please provide any relevant output and logs which may be useful in diagnosing the issue.
- `
- },
- // Used for issues that have attempted to provide some details, but more information is required. This can be
- // useful for older issues, or issues that have been raised without following the issue template fully and have
- // useful comments present that stop it from being closed outright.
- 'needs-more-information': {
- close: false,
- comment: `
- It looks like there's not enough information to replicate this issue. Please provide any relevant output and logs which may be useful in diagnosing the issue.
- This includes:
- - All of the item points within this [template](https://github.com/rapid7/metasploit-framework/blob/master/.github/ISSUE_TEMPLATE/bug_report.md)
- - The result of the \`debug\` command in your Metasploit console
- - Screenshots showing the issues you're having
- - Exact replication steps
- The easier it is for us to replicate and debug an issue means there's a higher chance of this issue being resolved.
- `
- },
- // Used for issues that have zero effort applied, potentially bot related
- // https://github.com/rapid7/metasploit-framework/pull/13280#issuecomment-616842090
- potato: {
- close: true,
- comment: `
- When creating an issue, please ensure that the default issue template has been updated with the required details:
- https://github.com/rapid7/metasploit-framework/issues/new/choose
- Closing this issue. If you believe this issue has been closed in error, please provide any relevant output and logs which may be useful in diagnosing the issue.
- `
- },
- attic: {
- close: true,
- comment: `
- Thanks for your contribution to Metasploit Framework! We've looked at this issue, and unfortunately we do not currently have the bandwidth to prioritize this issue.
-
- We've labeled this as \`attic\` and closed it for now. If you believe this issue has been closed in error, or that it should be prioritized, please comment with additional information.
- `
- }
- }
- };
- const issueType = context.eventName === 'issues' ? 'issues' : 'pullRequests';
- const config = allConfig[issueType][context.payload.label.name];
- if (!config) {
- return;
- }
- if (config.comment) {
- const precedingWhitespaceLength = config.comment.split("\n")[1].search(/\S/);
- const commentWithoutPrecedingWhitespace = config.comment.split("\n").map(line => line.substring(precedingWhitespaceLength)).join("\n").trim();
- await github.rest.issues.createComment({
- issue_number: context.issue.number,
- owner: context.repo.owner,
- repo: context.repo.repo,
- body: commentWithoutPrecedingWhitespace
- });
- }
- if (config.close) {
- await github.rest.issues.update({
- issue_number: context.issue.number,
- owner: context.repo.owner,
- repo: context.repo.repo,
- state: 'closed'
- });
- }
|