Skip to content

Commit

Permalink
Actions: add Repo gardening action (#6244)
Browse files Browse the repository at this point in the history
* Actions: add Repo gardening action

More details about the action here:
https://github.com/Automattic/action-repo-gardening

The action is already used in the Calypso and Jetpack repos.

I've enabled 5 of the tasks the action offers so far:

1. Assign Issues (`assignIssues`): Adds assignee for issues which are being worked on, and adds the "In Progress" label.
2. Clean Labels (`cleanLabels`): Removes Status labels once a PR has been merged.
3. Flag OSS (`flagOss`): flags entries by external contributors, adds an "OSS Citizen" label to the PR, and sends a Slack message to the #themes channel.
4. Triage New Issues (`triageNewIssues`): Adds labels to new issues based on issue content.
5. Gather support references (`gatherSupportReferences`): Adds a new comment with a list of all support references on the issue. More details about this in pcLjiI-Rb-p2

* Add new Issue template for bug reports

* Enable newer tasks

- Prompt to reply to customers when an issue is finally closed after having gathered a lot of tickets. Reference: pcLjiI-Ro-p2
- Slack message when an opened issue starts gathering a lot of tickets. Reference: pciE2j-1iy-p2

* Remove unneeded tasks for now.
  • Loading branch information
jeherve authored Aug 19, 2022
1 parent f09b654 commit a2b3d02
Show file tree
Hide file tree
Showing 2 changed files with 178 additions and 0 deletions.
133 changes: 133 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
name: Bug Report
description: Helps us improve our product!
labels: "Needs triage, [Type] Bug"
title: "[Bug]: "
body:
- type: markdown
attributes:
value: |
### Thanks for contributing!
Please write a clear title, then fill in as much details as possible.
__Avoid using image hosting services such as Cloudup, Droplr, Imgur, etc., to link to media.__
Instead, attach screenshot(s) or recording(s) directly in any of the text areas below: click, then drag and drop.
- type: textarea
id: summary
attributes:
label: Quick summary
- type: textarea
id: steps
attributes:
label: Steps to reproduce
placeholder: |
1. Start at `site-domain.com/blog`.
2. Click on any blog post.
3. Click on the 'Like' button.
4. ...
Attach any media by drag and dropping or selecting upload.
validations:
required: true
- type: textarea
id: expected
attributes:
label: What you expected to happen
placeholder: |
e.g. The post should be liked.
validations:
required: true
- type: textarea
id: actual
attributes:
label: What actually happened
placeholder: |
e.g. Clicking the button does nothing visibly.
validations:
required: true
- type: dropdown
id: browser
attributes:
label: Browser
description: (You may select more than one)
options:
- Google Chrome/Chromium
- Mozilla Firefox
- Microsoft Edge
- Apple Safari
- iOS Safari
- Android Chrome
multiple: true
- type: input
id: issue_context
attributes:
label: Context
placeholder: |
e.g. Customer report, details of your exploratory testing, etc.
- type: markdown
attributes:
value: |
---
## Additional context
The following section is optional. If you're an Automattician, you should be able to fill it in. If not, please scroll to the bottom and submit the issue.
- type: dropdown
id: site-type
attributes:
label: Platform (Simple, Atomic, or both?)
description: (You may select more than one)
options:
- Simple
- Atomic
- Self-hosted
multiple: true
- type: textarea
id: other_notes
attributes:
label: Other notes
placeholder: |
e.g. Logs, CLI or console errors, notes, observations, etc.
- type: markdown
attributes:
value: |
---
## Issue severity
Please provide details around how often the issue is reproducible & how many users are affected.
- type: dropdown
id: reproducibility
attributes:
label: Reproducibility
options:
- Consistent
- Intermittent
- Once
validations:
required: true
- type: dropdown
id: users-affected
attributes:
label: Severity
description: How many users are impacted? A guess is fine.
options:
- One
- Some (< 50%)
- Most (> 50%)
- All
- type: dropdown
id: workarounds
attributes:
label: Available workarounds?
options:
- No and the platform is unusable
- No but the platform is still usable
- Yes, difficult to implement
- Yes, easy to implement
- There is no user impact
- type: textarea
id: workarounds-detail
attributes:
label: Workaround details
description: If you are aware of a workaround, please describe it below.
placeholder: |
e.g. There is an alternative way to access this setting in the sidebar, but it's not readily apparent.
45 changes: 45 additions & 0 deletions .github/workflows/gardening.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Repo gardening

on:
pull_request_target: # When a PR is opened or closed
types: [opened, closed]
issues: # For auto-triage of issues.
types: [opened, reopened, edited, closed]
issue_comment: # To gather support references in issue comments.
types: [created]
concurrency:
# For pull_request_target, cancel any concurrent jobs with the same type (e.g. "opened", "labeled") and branch.
# Don't cancel any for other events, accomplished by grouping on the unique run_id.
group: gardening-${{ github.event_name }}-${{ github.event.action }}-${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.ref || github.run_id }}
cancel-in-progress: true

jobs:
repo-gardening:
name: 'Perform automated triage tasks on PRs and issues'
runs-on: ubuntu-latest
if: github.event_name == 'pull_request_target' || github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name
timeout-minutes: 10

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16

- name: Wait for prior instances of the workflow to finish
uses: softprops/turnstyle@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: 'Run gardening action'
uses: automattic/action-repo-gardening@trunk
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
slack_token: ${{ secrets.SLACK_TOKEN }}
slack_team_channel: ${{ secrets.SLACK_TEAM_CHANNEL }}
slack_he_triage_channel: ${{ secrets.SLACK_HE_TRIAGE_CHANNEL }}
slack_quality_channel: ${{ secrets.SLACK_QUALITY_CHANNEL }}
tasks: 'cleanLabels,flagOss,triageNewIssues,gatherSupportReferences,replyToCustomersReminder'

0 comments on commit a2b3d02

Please sign in to comment.