diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000..3995c19 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,46 @@ +name: 🐞 Bug Report +description: Tell us about something that's not working the way we (probably) intend. +body: + - type: input + id: version + attributes: + label: Version + placeholder: 21.7.0 ← should look like this (check the footer) + description: What version of self-hosted Sentry are you running? + validations: + required: false + - type: textarea + id: repro + attributes: + label: Steps to Reproduce + description: How can we see what you're seeing? Specific is terrific. + value: |- + 1. foo + 2. bar + 3. baz + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected Result + validations: + required: true + - type: textarea + id: actual + attributes: + label: Actual Result + description: Logs? Screenshots? Yes, please. + value: |- + e.g.: + - latest install logs: `ls -1 sentry_install_log-*.txt | tail -1 | xargs cat` + - `docker-compose logs` output + validations: + required: true + - type: markdown + attributes: + value: |- + ## Thanks 🙏 + Check our [triage docs](https://open.sentry.io/triage/) for what to expect next. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 359d812..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -name: 🐞 Bug Report -about: Report a bug in Self-Hosted Sentry ---- - -### Version Information - -Version: *VERSION HERE* - -### Steps to Reproduce - -1. What -2. you -3. did. - -### Expected Result - -What you thought would happen. - -### Actual Result - -What actually happened. Maybe a screenshot/recording? - -### Logs - -What you saw along the way, e.g.: - -- latest install logs: `ls -1 sentry_install_log-*.txt | tail -1 | xargs cat` -- `docker-compose logs` output diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml new file mode 100644 index 0000000..49cfa3e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.yml @@ -0,0 +1,28 @@ +name: 💡 Feature Request +description: Tell us about a problem our software could solve but doesn't. +body: + - type: textarea + id: problem + attributes: + label: Problem Statement + description: What problem could `onpremise` solve that it doesn't? + placeholder: |- + I want to make whirled peas, but `onpremise` doesn't blend. + validations: + required: true + - type: textarea + id: expected + attributes: + label: Solution Brainstorm + description: We know you have bright ideas to share ... share away, friend. + placeholder: |- + Add a blender to `onpremise`. + validations: + required: false + - type: markdown + attributes: + value: |- + ## Thanks 🙏 + Check our [triage docs](https://open.sentry.io/triage/) for what to expect next. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 32e32f2..0000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -name: 🧠 Feature Request -about: Suggest an idea for improving Self-Hosted Sentry ---- - -### Summary - -One paragraph description of the feature. - -### Motivation - -Why should this be worked on? What problems or use cases does it solve or -improve? - -### Additional Context - -Any other context or screenshots or API request payload/responses that -pertain to the feature. diff --git a/.github/workflows/validate-new-issue.yml b/.github/workflows/validate-new-issue.yml deleted file mode 100644 index 328e2e2..0000000 --- a/.github/workflows/validate-new-issue.yml +++ /dev/null @@ -1,100 +0,0 @@ -name: Validate new issue -on: - issues: - types: ["opened"] -jobs: - validate-new-issue: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: "Validate new issue" - shell: bash - env: - GITHUB_TOKEN: ${{ github.token }} - run: | - issue_number=${{ github.event.issue.number }} - echo "Validating issue #${issue_number}." - - # Trust users who belong to the getsentry org. - if gh api "https://api.github.com/orgs/getsentry/members/${{ github.actor }}" >/dev/null 2>&1; then - echo "Skipping validation, because ${{ github.actor }} is a member of the getsentry org." - exit 0 - else - echo "${{ github.actor }} is not a member of the getsentry org. 🧐" - fi - - # Helper - function gh-issue-label() { - gh api "/repos/:owner/:repo/issues/${1}/labels" \ - -X POST \ - --input <(echo "{\"labels\":[\"$2\"]}") - } - - # Prep reasons for error message comment. - REASON="your issue does not properly use one of this repo's available issue templates" - REASON_EXACT_MATCH="you created an issue from a template without filling in anything" - REASON_EMPTY="you created an empty issue" - - BASE_CASE_TITLE="validation bot is confused" - - # Definition of valid: - # - is a report about buggy validation 😅 or ... - # - not empty (ignoring whitespace) - # - matches a template - # - at least one of the headings are also in this issue - # - extra headings in the issue are fine - # - order doesn't matter - # - case-sensitive tho - # - not an *exact* match for a template (ignoring whitespace) - - jq -r .issue.title "$GITHUB_EVENT_PATH" > issue-title - if diff issue-title <(echo "$BASE_CASE_TITLE") > /dev/null; then - echo "Infinite recursion avoided." - exit 0 - fi - - function extract-headings { { sed 's/\r$//' "$1" | grep '^#' || echo -n ''; } | sort; } - jq -r .issue.body "$GITHUB_EVENT_PATH" > issue - if ! grep -q '[^[:space:]]' issue; then - REASON="${REASON_EMPTY}" - else - extract-headings <(cat issue) > headings-in-issue - for template in $(ls .github/ISSUE_TEMPLATE/*.md 2> /dev/null); do - # Strip front matter. https://stackoverflow.com/a/29292490/14946704 - sed -i'' '1{/^---$/!q;};1,/^---$/d' "$template" - extract-headings "$template" > headings-in-template - echo -n "$(basename $template)? " - if [ ! -s headings-in-template ]; then - echo "No headers in template. 🤷" - elif [ "$(comm -12 headings-in-template headings-in-issue)" ]; then - echo "Match! 👍 💃" - if diff -Bw "$template" issue > /dev/null; then - echo "... like, an /exact/ match. 😖" - REASON="${REASON_EXACT_MATCH}" - break - else - gh-issue-label "${issue_number}" "Status: Unrouted" - exit 0 - fi - else - echo "No match. 👎" - fi - done - fi - - # Failed validation! Close the issue with a comment and a label. - cat << EOF > comment - Sorry, friend. As far as this ol' bot can tell, ${REASON}. Please [try again](https://github.com/${{ github.repository }}/issues/new/choose), if you like. (And if I'm confused, please [let us know](https://github.com/getsentry/.github/issues/new?title=$(echo "$BASE_CASE_TITLE" | tr ' ' '+')&body=${{ github.event.issue.html_url }}). 😬) - - ---- - - [![Did you see the memo about this?](https://user-images.githubusercontent.com/134455/104515469-e04a9c80-55c0-11eb-8e15-ffe9c0b8dd7f.gif)](https://www.youtube.com/watch?v=Fy3rjQGc6lA) - - ([log](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})) - EOF - - echo -n "Commented: " - gh issue comment "${issue_number}" --body "$(cat comment)" - gh-issue-label "${issue_number}" "Status: Invalid" - gh issue close "${issue_number}" - echo "Closed with: \"${REASON}.\""