diff options
author | 2020-10-08 23:45:11 +0100 | |
---|---|---|
committer | 2020-10-08 23:45:11 +0100 | |
commit | 345a276b053de69694b35088f2edc7114440fc4c (patch) | |
tree | 27e1bf1bb4f8890bc62668b668cc8fcbe50bd59d | |
parent | Merge pull request #20 from python-discord/discord/improve-oauth2-flow (diff) | |
parent | Create Sentry release on push (diff) |
Merge pull request #21 from python-discord/sentry/add-sentry
Add Sentry
-rw-r--r-- | .github/workflows/create_sentry_release.yml | 34 | ||||
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | src/index.tsx | 24 | ||||
-rw-r--r-- | yarn.lock | 82 |
4 files changed, 140 insertions, 2 deletions
diff --git a/.github/workflows/create_sentry_release.yml b/.github/workflows/create_sentry_release.yml new file mode 100644 index 0000000..6daf552 --- /dev/null +++ b/.github/workflows/create_sentry_release.yml @@ -0,0 +1,34 @@ +name: Create Sentry release + +on: + push: + branches: [ main ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - uses: EgorDm/gha-yarn-node-cache@v1 + + - name: Install dependencies + run: yarn install + + - name: Install dependencies + run: yarn build + env: + REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN }} + REACT_APP_SHA: ${{ github.sha }} + REACT_APP_BRANCH: main + REACT_APP_OAUTH2_CLIENT_ID: ${{ secrets.CLIENT_ID }} + + - name: Create Sentry release + uses: getsentry/[email protected] + env: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + SENTRY_ORG: python-discord + SENTRY_PROJECT: forms-frontend + with: + environment: production + sourcemaps: ./build/static/js/ diff --git a/package.json b/package.json index ff7968a..f9d54f3 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,8 @@ "@fortawesome/free-brands-svg-icons": "^5.14.0", "@fortawesome/free-solid-svg-icons": "^5.14.0", "@fortawesome/react-fontawesome": "^0.1.11", + "@sentry/react": "^5.25.0", + "@sentry/tracing": "^5.25.0", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^7.1.2", diff --git a/src/index.tsx b/src/index.tsx index 634fd81..783d34f 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -3,8 +3,22 @@ import ReactDOM from 'react-dom'; import App from './App'; import * as serviceWorker from './serviceWorker'; +import * as Sentry from "@sentry/react"; +import { Integrations } from "@sentry/tracing"; + import colors from "./colors"; +if (process.env.NODE_ENV === "production") { + Sentry.init({ + dsn: process.env.REACT_APP_SENTRY_DSN, + integrations: [ + new Integrations.BrowserTracing(), + ], + tracesSampleRate: 0.25, + release: `forms-frontend@${process.env.REACT_APP_SHA}` + }); +} + console.log("%c Python Discord Forms ", `font-size: 6em; font-family: "Hind", "Arial"; font-weight: 900; background-color: ${colors.blurple}; border-radius: 10px;`) console.log("%cWelcome to Python Discord Forms", `font-size: 3em; font-family: "Hind", "Arial";`) @@ -18,7 +32,15 @@ console.log("%cCome join us on Discord! https://discord.gg/python", `font-size: ReactDOM.render( <React.StrictMode> - <App /> + <Sentry.ErrorBoundary + fallback={<p>An error has occurred with Python Discord Forms. Please let us know in the Discord server at <a href="https://discord.gg/python">discord.gg/python</a></p>} + showDialog={true} + dialogOptions={{ + title: "You've found a bug in PyDis forms!" + }} + > + <App /> + </Sentry.ErrorBoundary> </React.StrictMode>, document.getElementById('root') ); @@ -1490,6 +1490,81 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== +"@sentry/[email protected]": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.25.0.tgz#4e3d2132ba1f2e2b26f73c49cbb6977ee9c9fea9" + integrity sha512-QDVUbUuTu58xCdId0eUO4YzpvrPdoUw1ryVy/Yep9Es/HD0fiSyO1Js0eQVkV/EdXtyo2pomc1Bpy7dbn2EJ2w== + dependencies: + "@sentry/core" "5.25.0" + "@sentry/types" "5.25.0" + "@sentry/utils" "5.25.0" + tslib "^1.9.3" + +"@sentry/[email protected]": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.25.0.tgz#525ad37f9e8a95603768e3b74b437d5235a51578" + integrity sha512-hY6Zmo7t/RV+oZuvXHP6nyAj/QnZr2jW0e7EbL5YKMV8q0vlnjcE0LgqFXme726OJemoLk67z+sQOJic/Ztehg== + dependencies: + "@sentry/hub" "5.25.0" + "@sentry/minimal" "5.25.0" + "@sentry/types" "5.25.0" + "@sentry/utils" "5.25.0" + tslib "^1.9.3" + +"@sentry/[email protected]": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.25.0.tgz#6932535604cafaee1ac7f361b0e7c2ce8f7e7bc3" + integrity sha512-kOlOiJV8wMX50lYpzMlOXBoH7MNG0Ho4RTusdZnXZBaASq5/ljngDJkLr6uylNjceZQP21wzipCQajsJMYB7EQ== + dependencies: + "@sentry/types" "5.25.0" + "@sentry/utils" "5.25.0" + tslib "^1.9.3" + +"@sentry/[email protected]": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.25.0.tgz#447b5406b45c8c436c461abea4474d6a849ed975" + integrity sha512-9JFKuW7U+1vPO86k3+XRtJyooiVZsVOsFFO4GulBzepi3a0ckNyPgyjUY1saLH+cEHx18hu8fGgajvI8ANUF2g== + dependencies: + "@sentry/hub" "5.25.0" + "@sentry/types" "5.25.0" + tslib "^1.9.3" + +"@sentry/react@^5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/react/-/react-5.25.0.tgz#269f54db9d6f92410bee07117f8d8e03b219e068" + integrity sha512-lZwiFj+BQtmaj+Do9hcRSJcdrTisSGq2521/Xm9qGPbhsRW8uTHMJjkDgMHriYxxqXYOQrY9FisJwvkPpkroow== + dependencies: + "@sentry/browser" "5.25.0" + "@sentry/minimal" "5.25.0" + "@sentry/types" "5.25.0" + "@sentry/utils" "5.25.0" + hoist-non-react-statics "^3.3.2" + tslib "^1.9.3" + +"@sentry/tracing@^5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.25.0.tgz#1cfbcf085a7a3b679f417058d09590298ddaa255" + integrity sha512-KcyHEGFpqSDubHrdWT/vF2hKkjw/ts6NpJ6tPDjBXUNz98BHdAyMKtLOFTCeJFply7/s5fyiAYu44M+M6IG3Bw== + dependencies: + "@sentry/hub" "5.25.0" + "@sentry/minimal" "5.25.0" + "@sentry/types" "5.25.0" + "@sentry/utils" "5.25.0" + tslib "^1.9.3" + +"@sentry/[email protected]": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.25.0.tgz#3bcf95e118d655d3f4e8bfa5f0be2e1fe4ea5307" + integrity sha512-8M4PREbcar+15wrtEqcwfcU33SS+2wBSIOd/NrJPXJPTYxi49VypCN1mZBDyWkaK+I+AuQwI3XlRPCfsId3D1A== + +"@sentry/[email protected]": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.25.0.tgz#b132034be66d7381d30879d2a9e09216fed28342" + integrity sha512-Hz5spdIkMSRH5NR1YFOp5qbsY5Ud2lKhEQWlqxcVThMG5YNUc10aYv5ijL19v0YkrC2rqPjCRm7GrVtzOc7bXQ== + dependencies: + "@sentry/types" "5.25.0" + tslib "^1.9.3" + "@sheerun/mutationobserver-shim@^0.3.2": version "0.3.3" resolved "https://registry.yarnpkg.com/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz#5405ee8e444ed212db44e79351f0c70a582aae25" @@ -5351,7 +5426,7 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.1.0: +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -10467,6 +10542,11 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== +tslib@^1.9.3: + version "1.14.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.0.tgz#d624983f3e2c5e0b55307c3dd6c86acd737622c6" + integrity sha512-+Zw5lu0D9tvBMjGP8LpvMb0u2WW2QV3y+D8mO6J+cNzCYIN4sVy43Bf9vl92nqFahutN0I8zHa7cc4vihIshnw== + tsutils@^3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" |