diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 90f09cc9f0d3..4efdb336bd66 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,7 +1,7 @@ name: Bug report 🐞 description: >- Something is broken and you have a reliable reproduction? Let us know here. - For questions, please use "Question" below. + For questions, please post in GitHub Discussion. title: '[Bug]: ' labels: - needs triage @@ -21,7 +21,7 @@ body: description: >- Due to the high volume of reports we receive, we can only prioritize bug reports that include a clear reproduction of the problem. Please use [storybook.new](https://storybook.new) to create one, and consult our [documentation](https://storybook.js.org/docs/react/contribute/how-to-reproduce) for guidance. Thank you for your understanding! placeholder: >- - Please provide a link to your reproduction here. If creating a reproduction really isn't feasible, let us know and be sure to include as much detail as you can to help us understand the issue. + Please provide a link to your reproduction. Accepted hosts are GitHub, CodeSandbox, and StackBlitz. Note, if the URL is invalid (eg.: 404, or a private repository), we may close the issue. validations: required: true - type: textarea diff --git a/.github/comments/good-first-issue.md b/.github/comments/good-first-issue.md new file mode 100644 index 000000000000..ff2aa8c0873f --- /dev/null +++ b/.github/comments/good-first-issue.md @@ -0,0 +1,12 @@ +The issue was marked with the `good first issue` label by a maintainer. + +This means that it is a good candidate for someone interested in contributing to the project, but does not know where to start. + +To get started, read the [Contributing Guide](https://storybook.js.org/docs/contribute/how-to-contribute). When you are ready, open a PR and link back to this issue in the form of adding `Fixes #1234` to the PR description, where `1234` is the issue number. This will automatically close the issue when the PR gets merged, making it easier for us to keep track of what has been fixed. + +Please remember to add tests to confirm your code changes will fix the issue and we do not regress in the future. + +If you have any questions, feel free to ask below or hop onto the [Storybook Discord](https://discord.gg/storybook) and ask in the #contributing channel. We're looking forward to your contribution! ✨ + +> [!NOTE] +> There is no need to ask to be assigned or for permission (e.g. "can I work on this?"). Please, go ahead if there is no linked PR. :slightly_smiling_face: diff --git a/.github/comments/invalid-link.md b/.github/comments/invalid-link.md new file mode 100644 index 000000000000..51b084dfe35d --- /dev/null +++ b/.github/comments/invalid-link.md @@ -0,0 +1,50 @@ +We could not detect a valid reproduction link. **Make sure to follow the bug report template carefully.** + +### Why was this issue closed? + +To be able to investigate, we need access to a reproduction to identify what triggered the issue. We need a link to a **public** GitHub repository, Stackblitz or CodeSandbox. The easiest way to create a reproduction is with [storybook.new](https://storybook.new). + +The bug template that you filled out has a section called "To reproduce", which is where you should provide the link to the reproduction. + +- If you did not provide a link or the link you provided is not valid, we will close the issue. +- If you provide a link to a private repository, we will close the issue. +- If you provide a link to a repository but not in the correct section, we will close the issue. + +### What should I do? + +Depending on the reason the issue was closed, you can do the following: + +- If you did not provide a link, please open a new issue with a link to a reproduction. +- If you provided a link to a private repository, please open a new issue with a link to a public repository. +- If you provided a link to a repository but not in the correct section, please open a new issue with a link to a reproduction in the correct section. + +**In general, assume that we should not go through a lengthy onboarding process at your company code only to be able to verify an issue.** + +### My repository is private and cannot be public + +In most cases, a private repo will not be a sufficient **minimal reproduction**, as this codebase might contain a lot of unrelated parts that would make our investigation take longer. Please do **not** make it public. Instead, create a new repository using the templates above, adding the relevant code to reproduce the issue. Common things to look out for: + +- Remove any code that is not related to the issue. (pages, API routes, irrelevant components, etc.) +- Remove any dependencies that are not related to the issue. +- Remove any third-party service that would require us to sign up for an account to reproduce the issue. +- Remove any environment variables that are not related to the issue. +- Remove private packages that we do not have access to. +- If the issue is not related to a monorepo specifically, try to reproduce the issue without a complex monorepo setup + +### I did not open this issue, but it is relevant to me, what can I do to help? + +Anyone experiencing the same issue is welcome to provide a minimal reproduction following the above steps by opening a new issue. + +### I think my reproduction is good enough, why aren't you looking into it quickly? + +We look into every Storybook issue and constantly monitor open issues for new comments. + +However, sometimes we might miss one or two due to the popularity/high traffic of the repository. We apologize, and kindly ask you to refrain from tagging core maintainers, as that will usually not result in increased priority. + +Upvoting issues to show your interest will help us prioritize and address them as quickly as possible. That said, every issue is important to us, and if an issue gets closed by accident, we encourage you to open a new one linking to the old issue and we will look into it. + +### Useful Resources + +- [Create a Storybook reproduction](https://storybook.js.org/docs/react/contribute/how-to-reproduce) +- [How to create a Minimal, Complete, and Verifiable example](https://stackoverflow.com/help/mcve) +- [Contributing to Storybook](https://storybook.js.org/docs/contribute/how-to-contribute) diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml new file mode 100644 index 000000000000..a4a75e69efdb --- /dev/null +++ b/.github/workflows/triage.yml @@ -0,0 +1,30 @@ +name: Triage issues + +on: + issues: + types: [opened, labeled] + issue_comment: + types: [created] + +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + +permissions: + issues: write + +jobs: + triage: + name: Nissuer + runs-on: ubuntu-latest + steps: + - uses: balazsorban44/nissuer@1.10.0 + with: + label-comments: | + { + "good first issue": ".github/comments/good-first-issue.md" + } + reproduction-comment: ".github/comments/invalid-link.md" + reproduction-hosts: "github.com,codesandbox.io,stackblitz.com" + reproduction-link-section: "### To Reproduce(.*)### System" + reproduction-invalid-label: "needs reproduction" + reproduction-issue-labels: "bug,needs triage"