diff --git a/.github/ISSUE_TEMPLATE/ask-for-help.yaml b/.github/ISSUE_TEMPLATE/ask-for-help.yaml
deleted file mode 100644
index a708dbf23..000000000
--- a/.github/ISSUE_TEMPLATE/ask-for-help.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-name: "β Ask for help"
-description: "Submit any question related to Uptime Kuma"
-#title: "[Help] "
-labels: [help]
-body:
- - type: checkboxes
- id: no-duplicate-issues
- attributes:
- label: "β οΈ Please verify that this question has NOT been raised before."
- description: "Search in the issues sections by clicking [HERE](https://github.com/louislam/uptime-kuma/issues?q=)"
- options:
- - label: "I checked and didn't find similar issue"
- required: true
- - type: checkboxes
- attributes:
- label: "π‘οΈ Security Policy"
- description: Please review the security policy before reporting security related issues/bugs.
- options:
- - label: I agree to have read this project [Security Policy](https://github.com/louislam/uptime-kuma/security/policy)
- required: true
- - type: textarea
- id: steps-to-reproduce
- validations:
- required: true
- attributes:
- label: "π Describe your problem"
- description: "Please walk us through it step by step. Include all important details and add screenshots where appropriate"
- placeholder: "Describe what are you asking for..."
- - type: textarea
- id: error-msg
- validations:
- required: false
- attributes:
- label: "π Error Message(s) or Log"
- - type: input
- id: uptime-kuma-version
- attributes:
- label: "π» Uptime-Kuma Version"
- description: "Which version of Uptime-Kuma are you running? Please do NOT provide the docker tag such as latest or 1"
- placeholder: "Ex. 1.10.0"
- validations:
- required: true
- - type: input
- id: operating-system
- attributes:
- label: "π» Operating System and Arch"
- description: "Which OS is your server/device running on? (For Replit, please do not report this bug)"
- placeholder: "Ex. Ubuntu 20.04 x86"
- validations:
- required: true
- - type: input
- id: browser-vendor
- attributes:
- label: "π Browser"
- description: "Which browser are you running on? (For Replit, please do not report this bug)"
- placeholder: "Ex. Google Chrome 95.0.4638.69"
- validations:
- required: true
- - type: textarea
- id: deployment-info
- attributes:
- label: "π₯οΈ Deployment Environment"
- description: |
- examples:
- - **Runtime**: Docker 20.10.9 / nodejs 14.18.0 / K8S via ... v1.3.3 / ..
- - **Database**: sqlite/embedded mariadb/external mariadb
- - **Filesystem used to store the database on**: Windows/ZFS/btrfs/NFSv3 on a SSD/HDD/eMMC
- - **number of monitors**: 42
- value: |
- - Runtime:
- - Database:
- - Filesystem used to store the database on:
- - number of monitors:
- validations:
- required: true
diff --git a/.github/ISSUE_TEMPLATE/ask_for_help.yml b/.github/ISSUE_TEMPLATE/ask_for_help.yml
new file mode 100644
index 000000000..45bd046e5
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/ask_for_help.yml
@@ -0,0 +1,120 @@
+---
+name: β Ask for help
+description: |
+ Submit any question related to Uptime Kuma
+#title: "[Help]"
+labels: ["help", "P3-low"]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ π« **We kindly ask you to refrain from pinging maintainers unless absolutely necessary. Pings are reserved for critical/urgent issues that require immediate attention.**
+
+ **Why**: Reserving pings for urgent matters ensures maintainers can prioritize critical tasks effectively
+
+ - type: checkboxes
+ id: no-duplicate-question
+ attributes:
+ label: β οΈ Please verify that your question has not already been reported
+ description: |
+ To avoid duplicate reports, please search for any existing issues before submitting a new one. You can find the list of existing issues **[HERE](https://github.com/louislam/uptime-kuma/issues?q=is%3Aissue%20sort%3Acreated-desc%20)**.
+ options:
+ - label: |
+ I have searched the [existing issues](https://github.com/louislam/uptime-kuma/issues?q=is%3Aissue%20sort%3Acreated-desc%20) and found no similar reports.
+ required: true
+
+ - type: checkboxes
+ id: security-policy
+ attributes:
+ label: π‘οΈ Security Policy
+ description: |
+ Please review and acknowledge the Security Policy before reporting any security-related issues or bugs. You can find the full Security Policy **[HERE](https://github.com/louislam/uptime-kuma/security/policy)**.
+ options:
+ - label: |
+ I have read and agree to Uptime Kuma's [Security Policy](https://github.com/louislam/uptime-kuma/security/policy).
+ required: true
+
+ - type: textarea
+ id: steps-to-reproduce
+ validations:
+ required: true
+ attributes:
+ label: π Describe your problem
+ description: |
+ Please walk us through it step by step. Include all important details and add screenshots where appropriate
+ placeholder: |
+ Describe what are you asking for ...
+
+ - type: textarea
+ id: error-msg
+ attributes:
+ label: π Error Message(s) or Log
+ description: |
+ Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
+ render: bash session
+ validations:
+ required: false
+
+ - type: input
+ id: uptime-kuma-version
+ attributes:
+ label: π» Uptime-Kuma Version
+ description: |
+ What version of Uptime-Kuma are you running? Please do not provide Docker tags like `latest` or `1`.
+ placeholder: |
+ e.g., 1.23.16 or 2.0.0-beta.2
+ validations:
+ required: true
+
+ - type: input
+ id: operating-system
+ attributes:
+ label: π» Operating System and Arch
+ description: |
+ Which OS is your server/device running on? (For Replit, please do not report this bug)
+ placeholder: |
+ e.g., Ubuntu Server 24.04.2 LTS (GNU/Linux 6.8.0-55-generic x86_64)
+ validations:
+ required: true
+
+ - type: input
+ id: browser-vendor
+ attributes:
+ label: π Browser
+ description: |
+ Which browser are you running on? (For Replit, please do not report this bug)
+ placeholder: |
+ e.g., Google Chrome 134.0.6998.183 (Official Build) (64-bit)
+ validations:
+ required: true
+
+ - type: textarea
+ id: deployment-info
+ attributes:
+ label: π₯οΈ Deployment Environment
+ description: |
+ Provide details about the deployment environment, including runtime components, databases, and storage configurations. This will
+ help assess the infrastructure and identify any potential compatibility requirements.
+
+ **Remove any fields that do not apply to your setup.**
+ value: |
+ - **Runtime Environment**:
+ - Docker: Version `X.X.X` (Build `Y.Y.Y`)
+ - Docker Compose: Version `X.X.X`
+ - Portainer (BE/CE): Version `X.X.X` (LTS: Yes/No)
+ - MariaDB: Version `X.X.X` (LTS: Yes/No)
+ - Node.js: Version `X.X.X` (LTS: Yes/No)
+ - Kubernetes (K3S/K8S): Version `X.X.X` (LTS: Yes/No, via `[method/tool]`)
+ - **Database**:
+ - SQLite: Embedded
+ - MariaDB: Embedded/External
+ - **Database Storage**:
+ - **Filesystem**:
+ - Linux: ext4/XFS/Btrfs/ZFS/F2FS
+ - macOS: APFS/ HFS+
+ - Windows: NTFS/ReFS
+ - **Storage Medium**: HDD/eMMC/SSD/NVMe
+ - **Uptime Kuma Setup**:
+ - Number of monitors: `X`
+ validations:
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml
deleted file mode 100644
index 9745a76a6..000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.yaml
+++ /dev/null
@@ -1,100 +0,0 @@
-name: "π Bug Report"
-description: "Submit a bug report to help us improve"
-#title: "[Bug] "
-labels: [bug]
-body:
- - type: textarea
- id: related-issues
- validations:
- required: true
- attributes:
- label: "π I have found these related issues/pull requests"
- description: "Search related issues by clicking [HERE](https://github.com/louislam/uptime-kuma/issues?q=) and explain what the difference between them or explain that you are unable to find any related issues"
- placeholder: "Related to #1 by also touching the ... system. They should not be merged because ..."
- - type: checkboxes
- attributes:
- label: "π‘οΈ Security Policy"
- description: Please review the security policy before reporting security related issues/bugs.
- options:
- - label: I agree to have read this project [Security Policy](https://github.com/louislam/uptime-kuma/security/policy)
- required: true
- - type: textarea
- id: description
- validations:
- required: false
- attributes:
- label: "Description"
- description: "You could also upload screenshots"
- - type: textarea
- id: steps-to-reproduce
- validations:
- required: true
- attributes:
- label: "π Reproduction steps"
- description: "How do you trigger this bug? Please walk us through it step by step. Include all important details and add screenshots where appropriate"
- placeholder: "..."
- - type: textarea
- id: expected-behavior
- validations:
- required: true
- attributes:
- label: "π Expected behavior"
- description: "What did you think would happen?"
- placeholder: "..."
- - type: textarea
- id: actual-behavior
- validations:
- required: true
- attributes:
- label: "π Actual Behavior"
- description: "What actually happen?"
- placeholder: "..."
- - type: input
- id: uptime-kuma-version
- attributes:
- label: "π» Uptime-Kuma Version"
- description: "Which version of Uptime-Kuma are you running? Please do NOT provide the docker tag such as latest or 1"
- placeholder: "Ex. 1.10.0"
- validations:
- required: true
- - type: input
- id: operating-system
- attributes:
- label: "π» Operating System and Arch"
- description: "Which OS is your server/device running on? (For Replit, please do not report this bug)"
- placeholder: "Ex. Ubuntu 20.04 x64 "
- validations:
- required: true
- - type: input
- id: browser-vendor
- attributes:
- label: "π Browser"
- description: "Which browser are you running on?"
- placeholder: "Ex. Google Chrome 95.0.4638.69"
- validations:
- required: true
- - type: textarea
- id: deployment-info
- attributes:
- label: "π₯οΈ Deployment Environment"
- description: |
- examples:
- - **Runtime**: Docker 20.10.9 / nodejs 18.17.1 / K8S via ... v1.3.3 / ..
- - **Database**: sqlite/embedded mariadb/external mariadb
- - **Filesystem used to store the database on**: Windows/ZFS/btrfs/NFSv3 on a SSD/HDD/eMMC
- - **number of monitors**: 42
- value: |
- - Runtime:
- - Database:
- - Filesystem used to store the database on:
- - number of monitors:
- validations:
- required: true
- - type: textarea
- id: logs
- attributes:
- label: "π Relevant log output"
- description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
- render: shell
- validations:
- required: false
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 000000000..31cd6faf6
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,154 @@
+---
+name: π Bug Report
+description: |
+ Submit a bug report to help us improve
+#title: "[Bug]"
+labels: ["bug", "P2-medium"]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ π« **We kindly ask you to refrain from pinging maintainers unless absolutely necessary. Pings are reserved for critical/urgent issues that require immediate attention.**
+
+ **Why**: Reserving pings for urgent matters ensures maintainers can prioritize critical tasks effectively
+
+ - type: textarea
+ id: related-issues
+ validations:
+ required: true
+ attributes:
+ label: π I have found these related issues/pull requests
+ description: |
+ Please search for related **[ISSUES](https://github.com/louislam/uptime-kuma/issues?q=is%3Aissue%20sort%3Acreated-desc)**
+ and **[PULL REQUESTS](https://github.com/louislam/uptime-kuma/pulls?q=is%3Apr+sort%3Acreated-desc+)**.
+ Explain the differences between them or clarify if you were unable to find any related issues/pull requests.
+ placeholder: |
+ Example: This relates to issue #1, which also affects the ... system. It should not be merged because ...
+
+ - type: checkboxes
+ id: security-policy
+ attributes:
+ label: π‘οΈ Security Policy
+ description: |
+ Please review and acknowledge the Security Policy before reporting any security-related issues or bugs. You can find the full Security Policy **[HERE](https://github.com/louislam/uptime-kuma/security/policy)**.
+ options:
+ - label: |
+ I have read and agree to Uptime Kuma's [Security Policy](https://github.com/louislam/uptime-kuma/security/policy).
+ required: true
+
+ - type: textarea
+ id: description
+ validations:
+ required: false
+ attributes:
+ label: π Description
+ description: |
+ You could also upload screenshots
+
+ - type: textarea
+ id: steps-to-reproduce
+ validations:
+ required: true
+ attributes:
+ label: π Reproduction steps
+ description: |
+ How do you trigger this bug? Please walk us through it step by step. Include all important details and add screenshots where appropriate
+ placeholder: |
+ ...
+
+ - type: textarea
+ id: expected-behavior
+ validations:
+ required: true
+ attributes:
+ label: π Expected behavior
+ description: |
+ What did you think would happen?
+ placeholder: |
+ ...
+
+ - type: textarea
+ id: actual-behavior
+ validations:
+ required: true
+ attributes:
+ label: π Actual Behavior
+ description: |
+ What actually happen?
+ placeholder: |
+ ...
+
+ - type: input
+ id: uptime-kuma-version
+ attributes:
+ label: π» Uptime-Kuma Version
+ description: |
+ What version of Uptime-Kuma are you running? Please do not provide Docker tags like `latest` or `1`.
+ placeholder: |
+ e.g., 1.23.16 or 2.0.0-beta.2
+ validations:
+ required: true
+
+ - type: input
+ id: operating-system
+ attributes:
+ label: π» Operating System and Arch
+ description: |
+ Which OS is your server/device running on? (For Replit, please do not
+ report this bug)
+ placeholder: |
+ e.g., Ubuntu Server 24.04.2 LTS (GNU/Linux 6.8.0-55-generic x86_64)
+ validations:
+ required: true
+
+ - type: input
+ id: browser-vendor
+ attributes:
+ label: π Browser
+ description: |
+ Which browser are you running on?
+ placeholder: |
+ e.g., Google Chrome 134.0.6998.183 (Official Build) (64-bit)
+ validations:
+ required: true
+
+ - type: textarea
+ id: deployment-info
+ attributes:
+ label: π₯οΈ Deployment Environment
+ description: |
+ Provide details about the deployment environment, including runtime components, databases, and storage configurations. This will
+ help assess the infrastructure and identify any potential compatibility requirements.
+
+ **Remove any fields that do not apply to your setup.**
+ value: |
+ - **Runtime Environment**:
+ - Docker: Version `X.X.X` (Build `Y.Y.Y`)
+ - Docker Compose: Version `X.X.X`
+ - Portainer (BE/CE): Version `X.X.X` (LTS: Yes/No)
+ - MariaDB: Version `X.X.X` (LTS: Yes/No)
+ - Node.js: Version `X.X.X` (LTS: Yes/No)
+ - Kubernetes (K3S/K8S): Version `X.X.X` (LTS: Yes/No, via `[method/tool]`)
+ - **Database**:
+ - SQLite: Embedded
+ - MariaDB: Embedded/External
+ - **Database Storage**:
+ - **Filesystem**:
+ - Linux: ext4/XFS/Btrfs/ZFS/F2FS
+ - macOS: APFS/ HFS+
+ - Windows: NTFS/ReFS
+ - **Storage Medium**: HDD/eMMC/SSD/NVMe
+ - **Uptime Kuma Setup**:
+ - Number of monitors: `X`
+ validations:
+ required: true
+
+ - type: textarea
+ id: logs
+ attributes:
+ label: π Relevant log output
+ description: |
+ Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
+ render: bash session
+ validations:
+ required: false
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml
deleted file mode 100644
index 531a2c25e..000000000
--- a/.github/ISSUE_TEMPLATE/feature_request.yaml
+++ /dev/null
@@ -1,66 +0,0 @@
-name: π Feature Request
-description: "Submit a proposal for a new feature"
-#title: "[Feature] "
-labels: [feature-request]
-body:
- - type: textarea
- id: related-issues
- validations:
- required: true
- attributes:
- label: "π I have found these related issues/pull requests"
- description: "Search related issues by clicking [HERE](https://github.com/louislam/uptime-kuma/issues?q=) and explain what the difference between them or explain that you are unable to find any related issues"
- placeholder: "Related to #1 by also touching the ... system. They should not be merged because ..."
- - type: dropdown
- id: feature-area
- attributes:
- label: "π·οΈ Feature Request Type"
- description: "What kind of feature request is this?"
- multiple: true
- options:
- - API / automation options
- - New notification-provider
- - Change to existing notification-provider
- - New monitor
- - Change to existing monitor
- - Dashboard
- - Status-page
- - Maintenance
- - Deployment
- - Certificate expiry
- - Settings
- - Other
- validations:
- required: true
- - type: textarea
- id: feature-description
- validations:
- required: true
- attributes:
- label: "π Feature description"
- description: "A clear and concise description of what the feature request is."
- placeholder: "You should add ..."
- - type: textarea
- id: solution
- validations:
- required: true
- attributes:
- label: "βοΈ Solution"
- description: "A clear and concise description of what you want to happen."
- placeholder: "In my use-case, ..."
- - type: textarea
- id: alternatives
- validations:
- required: false
- attributes:
- label: "β Alternatives"
- description: "A clear and concise description of any alternative solutions or features you've considered."
- placeholder: "I have considered ..."
- - type: textarea
- id: additional-context
- validations:
- required: false
- attributes:
- label: "π Additional Context"
- description: "Add any other context or screenshots about the feature request here."
- placeholder: "..."
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 000000000..e7a0c7479
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,106 @@
+---
+name: π Feature Request
+description: |
+ Submit a proposal for a new feature
+# title: "[Feature]"
+labels: ["feature-request", "P3-low"]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ ## βImportant Announcement
+
+ ### π§ Temporary Delay in Feature Requests and Pull Request Reviews
+
+ **At this time, we may be slower to respond to new feature requests and review pull requests. Existing requests and PRs will remain in the backlog but may not be prioritized immediately.**
+
+ - **Reason**: Our current focus is on addressing bugs, improving system performance, and implementing essential updates. This will help stabilize the project and ensure smoother management.
+ - **Impact**: While no new feature requests or pull requests are being outright rejected, there may be significant delays in reviews. We encourage the community to help by reviewing PRs or assisting other users in the meantime.
+ - **What You Can Do**: If you're interested in contributing, reviewing open PRs by following our [Review Guidelines](../REVIEW_GUIDELINES.md) or offering help to other users is greatly appreciated. All feature requests and PRs will be revisited once the suspension period is lifted.
+
+ We appreciate your patience and understanding as we continue to improve Uptime Kuma.
+
+ ### π« Please Avoid Unnecessary Pinging of Maintainers
+
+ **We kindly ask you to refrain from pinging maintainers unless absolutely necessary. Pings are reserved for critical/urgent pull requests that require immediate attention.**
+
+ **Why**: Reserving pings for urgent matters ensures maintainers can prioritize critical tasks effectively.
+ - type: textarea
+ id: related-issues
+ validations:
+ required: true
+ attributes:
+ label: π I have found these related issues/pull requests
+ description: |
+ Please search for related **[ISSUES](https://github.com/louislam/uptime-kuma/issues?q=is%3Aissue%20sort%3Acreated-desc)**
+ and **[PULL REQUESTS](https://github.com/louislam/uptime-kuma/pulls?q=is%3Apr+sort%3Acreated-desc+)**.
+ Explain the differences between them or clarify if you were unable to find any related issues/pull requests.
+ placeholder: |
+ Example: This relates to issue #1, which also affects the ... system. It should not be merged because ...
+
+ - type: dropdown
+ id: feature-area
+ attributes:
+ label: π·οΈ Feature Request Type
+ description: |
+ What kind of feature request is this?
+ multiple: true
+ options:
+ - API / automation options
+ - New notification-provider
+ - Change to existing notification-provider
+ - New monitor
+ - Change to existing monitor
+ - Dashboard
+ - Status-page
+ - Maintenance
+ - Deployment
+ - Certificate expiry
+ - Settings
+ - Other
+ validations:
+ required: true
+
+ - type: textarea
+ id: feature-description
+ validations:
+ required: true
+ attributes:
+ label: π Feature description
+ description: |
+ A clear and concise description of what the feature request is.
+ placeholder: |
+ You should add ...
+
+ - type: textarea
+ id: solution
+ validations:
+ required: true
+ attributes:
+ label: βοΈ Solution
+ description: |
+ A clear and concise description of what you want to happen.
+ placeholder: |
+ In my use-case, ...
+
+ - type: textarea
+ id: alternatives
+ validations:
+ required: false
+ attributes:
+ label: β Alternatives
+ description: |
+ A clear and concise description of any alternative solutions or features you've considered.
+ placeholder: |
+ I have considered ...
+
+ - type: textarea
+ id: additional-context
+ validations:
+ required: false
+ attributes:
+ label: π Additional Context
+ description: |
+ Add any other context or screenshots about the feature request here.
+ placeholder: |
+ ...
diff --git a/.github/ISSUE_TEMPLATE/security_issue.yml b/.github/ISSUE_TEMPLATE/security_issue.yml
index 0104f9c3c..d49c0aaf5 100644
--- a/.github/ISSUE_TEMPLATE/security_issue.yml
+++ b/.github/ISSUE_TEMPLATE/security_issue.yml
@@ -1,19 +1,19 @@
---
-name: "π‘οΈ Security Issue"
+name: π‘οΈ Security Issue
description: |
Notify Louis Lam about a security concern. Please do NOT include any sensitive details in this issue.
# title: "Security Issue"
-labels: [security]
+labels: ["security", "P1-high"]
assignees: [louislam]
body:
- - type: "markdown"
+ - type: markdown
attributes:
value: |
- ## **β οΈ Report a Security Vulnerability**
+ ## β IMPORTANT: DO NOT SHARE VULNERABILITY DETAILS HERE
- ### **IMPORTANT: DO NOT SHARE VULNERABILITY DETAILS HERE**
+ ### β οΈ Report a Security Vulnerability
- If you have discovered a security vulnerability, please report it securely using the GitHub Security Advisory.
+ **If you have discovered a security vulnerability, please report it securely using the GitHub Security Advisory.**
**Note**: This issue is only for notifying the maintainers of the repository, as the GitHub Security Advisory does not automatically send notifications.
@@ -34,12 +34,12 @@ body:
Once you've created your advisory, please share the URL below. This will notify Louis Lam and enable them to take the appropriate action.
- - type: "textarea"
+ - type: textarea
id: github-advisory-url
validations:
required: true
attributes:
- label: "GitHub Advisory URL for @louislam"
+ label: GitHub Advisory URL for @louislam
placeholder: |
Please paste the GitHub Advisory URL here. Only the URL is required.
Example: https://github.com/louislam/uptime-kuma/security/advisories/GHSA-8h5r-7t6l-q3kz
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 0dfb5faed..a78714263 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,33 +1,122 @@
-β οΈβ οΈβ οΈ Since we do not accept all types of pull requests and do not want to waste your time. Please be sure that you have read pull request rules:
-https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md#can-i-create-a-pull-request-for-uptime-kuma
+**β οΈ Please Note: We do not accept all types of pull requests, and we want to ensure we donβt waste your time. Before submitting, make sure you have read our pull request guidelines: [Pull Request Rules](../CONTRIBUTING.md#can-i-create-a-pull-request-for-uptime-kuma)**
-Tick the checkbox if you understand [x]:
-- [ ] I have read and understand the pull request rules.
+## β Important Announcement
-# Description
+Click here for more details:
+
+ +## Go/No-Go Decision + +### Go + +If the code has no issues and meets the project requirements, approve it (and +possibly merge it). + +### No-Go + +If there are significant issues, such as missing tests, security +vulnerabilities, or performance problems, request the necessary changes before +the PR can be approved. Some examples of **significant issues** include: + +- Missing tests for new functionality. +- Identified **security vulnerabilities**. +- Code changes that break **backward compatibility** without a proper migration + plan. +- Code that causes **major performance regressions** (e.g., high CPU/memory + usage). + +## After the Review + +### Reordering and merging + +Once the necessary changes have been made and the PR is approved, the code can +be merged into the main branch (e.g., `main` or `master`). + +### Testing after merging + +Ensure that the build passes after merging the PR, and re-test the functionality +in the production environment if necessary. + +## Follow-up + +### Communication with team members + +If the PR has long-term technical or functional implications, communicate the +changes to the team. + +### Monitoring + +Continue monitoring the production environment for any unexpected issues that +may arise after the code has been merged. + +
+- + Submitting security fixes is something that may put the community at risk. - Please read through our [security policy](SECURITY.md) and submit vulnerabilities via an [advisory](https://github.com/louislam/uptime-kuma/security/advisories/new) + [issue](https://github.com/louislam/uptime-kuma/issues/new?assignees=&labels=help&template=security.md) instead. - We encourage you to submit how to fix a vulnerability if you know how to, this is not required. - Following the security policy allows us to properly test, fix bugs. - This review allows us to notice, if there are any changes necessary to unrelated parts like the documentation. + Please read through our [security policy](SECURITY.md) and submit + vulnerabilities via an [advisory] + [issue] instead. We encourage you to + submit how to fix a vulnerability if you know how to, this is not required. + Following the security policy allows us to properly test, fix bugs. This + review allows us to notice, if there are any changes necessary to unrelated + parts like the documentation. [**PLEASE SEE OUR SECURITY POLICY.**](SECURITY.md) - + + [advisory]: https://github.com/louislam/uptime-kuma/security/advisories/new + [issue]: + https://github.com/louislam/uptime-kuma/issues/new?template=security_issue.yml +
- + If you come across a bug and think you can solve, we appreciate your work. Please make sure that you follow these rules: - - keep the PR as small as possible, fix only one thing at a time => keeping it reviewable - - test that your code does what you claim it does. - - Because maintainer time is precious, junior maintainers may merge uncontroversial PRs in this area. -
-- - We use weblate to localise this project into many languages. - If you are unhappy with a translation this is the best start. - On how to translate using weblate, please see [these instructions](https://github.com/louislam/uptime-kuma/blob/master/src/lang/README.md). - - There are two cases in which a change cannot be done in weblate and requires a PR: - - A text may not be currently localisable. In this case, **adding a new language key** via `$t("languageKey")` might be nessesary - - language keys need to be **added to `en.json`** to be visible in weblate. If this has not happened, a PR is appreciated. - - **Adding a new language** requires a new file see [these instructions](https://github.com/louislam/uptime-kuma/blob/master/src/lang/README.md) - - Because maintainer time is precious, junior maintainers may merge uncontroversial PRs in this area. -
-- - To set up a new notification provider these files need to be modified/created: - - `server/notification-providers/PROVIDER_NAME.js` is where the heart of the notification provider lives. - - Both `monitorJSON` and `heartbeatJSON` can be `null` for some events. - If both are `null`, this is a general testing message, but if just `heartbeatJSON` is `null` this is a certificate expiry. - - Please wrap the axios call into a - ```js - try { - let result = await axios.post(...); - if (result.status === ...) ... - } catch (error) { - this.throwGeneralAxiosError(error); - } - ``` - - `server/notification.js` is where the backend of the notification provider needs to be registered. - *If you have an idea how we can skip this step, we would love to hear about it ^^* - - `src/components/NotificationDialog.vue` you need to decide if the provider is a regional or a global one and add it with a name to the respective list - - `src/components/notifications/PROVIDER_NAME.vue` is where the frontend of each provider lives. - Please make sure that you have: - - used `HiddenInput` for secret credentials - - included all the necessary helptexts/placeholder/.. to make sure the notification provider is simple to setup for new users. - - include all translations (`{{ $t("Translation key") }}`, [`i18n-t keypath="Translation key">`](https://vue-i18n.intlify.dev/guide/advanced/component.html)) in `src/lang/en.json` to enable our translators to translate this - - `src/components/notifications/index.js` is where the frontend of the provider needs to be registered. - *If you have an idea how we can skip this step, we would love to hear about it ^^* - Offering notifications is close to the core of what we are as an uptime monitor. - Therefore, making sure that they work is also really important. - Because testing notification providers is quite time intensive, we mostly offload this onto the person contributing a notification provider. - - To make sure you have tested the notification provider, please include screenshots of the following events in the pull-request description: - - `UP`/`DOWN` - - Certificate Expiry via https://expired.badssl.com/ - - Testing (the test button on the notification provider setup page) - - Using the following way to format this is encouraged: - ```md - | Event | Before | After | - ------------------ - | `UP` | paste-image-here | paste-image-here | - | `DOWN` | paste-image-here | paste-image-here | - | Certificate-expiry | paste-image-here | paste-image-here | - | Testing | paste-image-here | paste-image-here | + - keep the PR as small as possible, fix only one thing at a time => keeping it + reviewable + - test that your code does what you claim it does. + + Because maintainer time is precious, junior maintainers may merge + uncontroversial PRs in this area. + +
++ + We use weblate to localise this project into many languages. If you are + unhappy with a translation this is the best start. On how to translate using + weblate, please see + [these instructions](https://github.com/louislam/uptime-kuma/blob/master/src/lang/README.md). + + There are two cases in which a change cannot be done in weblate and requires a + PR: + + - A text may not be currently localisable. In this case, **adding a new + language key** via `$t("languageKey")` might be nessesary + - language keys need to be **added to `en.json`** to be visible in weblate. If + this has not happened, a PR is appreciated. + - **Adding a new language** requires a new file see + [these instructions](https://github.com/louislam/uptime-kuma/blob/master/src/lang/README.md) + + Because maintainer time is precious, junior maintainers may merge + uncontroversial PRs in this area. + +
+
+
+ To set up a new notification provider these files need to be modified/created:
+
+ - `server/notification-providers/PROVIDER_NAME.js` is where the heart of the
+ notification provider lives.
+
+ - Both `monitorJSON` and `heartbeatJSON` can be `null` for some events. If
+
+ both are `null`, this is a general testing message, but if just
+ `heartbeatJSON` is `null` this is a certificate expiry.
+
+ - Please wrap the axios call into a
+
+ ```js
+ try {
+ let result = await axios.post(...);
+ if (result.status === ...) ...
+ } catch (error) {
+ this.throwGeneralAxiosError(error);
+ }
```
- Because maintainer time is precious, junior maintainers may merge uncontroversial PRs in this area.
+ - `server/notification.js` is where the backend of the notification provider
+ needs to be registered. _If you have an idea how we can skip this step, we
+ would love to hear about it ^^_
+
+ - `src/components/NotificationDialog.vue` you need to decide if the provider
+ is a regional or a global one and add it with a name to the respective list
+
+ - `src/components/notifications/PROVIDER_NAME.vue` is where the frontend of
+ each provider lives. Please make sure that you have:
+
+ - used `HiddenInput` for secret credentials
+ - included all the necessary helptexts/placeholder/.. to make sure the
+
+ notification provider is simple to setup for new users. - include all
+ translations (`{{ $t("Translation key") }}`,
+ [`i18n-t keypath="Translation key">`](https://vue-i18n.intlify.dev/guide/advanced/component.html))
+ in `src/lang/en.json` to enable our translators to translate this
+
+ - `src/components/notifications/index.js` is where the frontend of the
+ provider needs to be registered. _If you have an idea how we can skip this
+ step, we would love to hear about it ^^_
+
+ Offering notifications is close to the core of what we are as an uptime
+ monitor. Therefore, making sure that they work is also really important.
+ Because testing notification providers is quite time intensive, we mostly
+ offload this onto the person contributing a notification provider.
+
+ To make sure you have tested the notification provider, please include
+ screenshots of the following events in the pull-request description:
+
+ - `UP`/`DOWN`
+ - Certificate Expiry via
+
+ Using the following way to format this is encouraged:
+
+ ```md
+ | Event | Before | After |
+ | ------------------ | --------------------- | -------------------- |
+ | `UP` |  |  |
+ | `DOWN` |  |  |
+ | Certificate-expiry |  |  |
+ | Testing |  |  |
+ ```
+
+ Because maintainer time is precious, junior maintainers may merge
+ uncontroversial PRs in this area.
+
To set up a new notification provider these files need to be modified/created: - - `server/monitor-types/MONITORING_TYPE.js` is the core of each monitor. - the `async check(...)`-function should: - - throw an error for each fault that is detected with an actionable error message - - in the happy-path, you should set `heartbeat.msg` to a successful message and set `heartbeat.status = UP` - - `server/uptime-kuma-server.js` is where the monitoring backend needs to be registered. - *If you have an idea how we can skip this step, we would love to hear about it ^^* + + - `server/monitor-types/MONITORING_TYPE.js` is the core of each monitor. the + `async check(...)`-function should: + + - throw an error for each fault that is detected with an actionable error + + message - in the happy-path, you should set `heartbeat.msg` to a successful + message and set `heartbeat.status = UP` + + - `server/uptime-kuma-server.js` is where the monitoring backend needs to be + registered. _If you have an idea how we can skip this step, we would love to + hear about it ^^_ + - `src/pages/EditMonitor.vue` is the shared frontend users interact with. - Please make sure that you have: - - used `HiddenInput` for secret credentials - - included all the necessary helptexts/placeholder/.. to make sure the notification provider is simple to setup for new users. - - include all translations (`{{ $t("Translation key") }}`, [`i18n-t keypath="Translation key">`](https://vue-i18n.intlify.dev/guide/advanced/component.html)) in `src/lang/en.json` to enable our translators to translate this - - + Please make sure that you have: - used `HiddenInput` for secret + credentials - included all the necessary helptexts/placeholder/.. to make + sure the notification provider is simple to setup for new users. - include + all translations (`{{ $t("Translation key") }}`, + [`i18n-t keypath="Translation key">`](https://vue-i18n.intlify.dev/guide/advanced/component.html)) + in `src/lang/en.json` to enable our translators to translate this + Because maintainer time is precious, junior maintainers may merge + uncontroversial PRs in this area. - Because maintainer time is precious, junior maintainers may merge uncontroversial PRs in this area. -
-- - be sure to **create an empty draft pull request or open an issue, so we can have a discussion first**. - This is especially important for a large pull request or when you don't know if it will be merged or not. - - Because of the large impact of this work, only senior maintainers may merge PRs in this area.
+ + be sure to **create an empty draft pull request or open an issue, so we can + have a discussion first**. This is especially important for a large pull + request or when you don't know if it will be merged or not. + + Because of the large impact of this work, only senior maintainers may + merge PRs in this area. + +
+
+
+ ## Steps to Submit a Pull Request
+
+ 1. **Fork** the [Uptime-Kuma repository].
+
+ [Uptime-Kuma repository]: https://github.com/louislam/uptime-kuma/
+
+ 2. **Clone** your forked repository to your local machine.
+ 3. **Create a new branch** for your changes (e.g.,
+ `feature/add-new-notification-provider-signal`).
+ 4. **Initiate a discussion before making major changes** by creating an empty
+ commit:
+
+ ```sh
+ git commit -m "
+
+ A **work-in-progress (WIP) PR** must stay in **draft status** until everything
+ is finalized.
+
+ Since maintainer time is valuable, junior maintainers may merge
+ uncontroversial PRs.
+
+
- amd64, armv7 using local. - - arm64 using remote arm64 cpu, as the emulator is too slow and can no longer pass the `npm ci` command. - 1. Add the public key to the remote server. - 2. Add the remote context. The remote machine must be arm64 and installed Docker CE. - ``` - docker context create oracle-arm64-jp --docker "host=ssh://root@100.107.174.88" - ``` - 3. Create a new builder. - ``` - docker buildx create --name kuma-builder --platform linux/amd64,linux/arm/v7 - docker buildx use kuma-builder - docker buildx inspect --bootstrap - ``` - 4. Append the remote context to the builder. - ``` - docker buildx create --append --name kuma-builder --platform linux/arm64 oracle-arm64-jp - ``` - 5. Verify the builder and check if the builder is using `kuma-builder`. - ``` - docker buildx inspect kuma-builder - docker buildx ls - ``` + - arm64 using remote arm64 cpu, as the emulator is too slow and can no longer + pass the `npm ci` command. + + 1. Add the public key to the remote server. + 2. Add the remote context. The remote machine must be arm64 and installed + Docker CE. + + ```bash + docker context create oracle-arm64-jp --docker "host=ssh://root@100.107.174.88" + ``` + + 3. Create a new builder. + + ```bash + docker buildx create --name kuma-builder --platform linux/amd64,linux/arm/v7 + docker buildx use kuma-builder + docker buildx inspect --bootstrap + ``` + + 4. Append the remote context to the builder. + + ```bash + docker buildx create --append --name kuma-builder --platform linux/arm64 oracle-arm64-jp + ``` + + 5. Verify the builder and check if the builder is using `kuma-builder`. + `docker buildx inspect kuma-builder docker buildx ls` +
1. Draft a release note
2. Make sure the repo is cleared
- 3. If the healthcheck is updated, remember to re-compile it: `npm run build-docker-builder-go`
+ 3. If the healthcheck is updated, remember to re-compile it:
+ `npm run build-docker-builder-go`
4. `npm run release-final` with env vars: `VERSION` and `GITHUB_TOKEN`
5. Wait until the `Press any key to continue`
6. `git push`
@@ -463,13 +740,16 @@ We have a few procedures we follow. These are documented here:
These Items need to be checked:
- - [ ] Check all tags is fine on https://hub.docker.com/r/louislam/uptime-kuma/tags
- - [ ] Try the Docker image with tag 1.X.X (Clean install / amd64 / arm64 / armv7)
+ - [ ] Check all tags is fine on
+
1. Draft a release note, check `This is a pre-release` @@ -478,35 +758,37 @@ We have a few procedures we follow. These are documented here: 4. Wait until the `Press any key to continue` 5. Publish the release note as `1.X.X-beta.X` 6. Press any key to continue - +
**Setup Repo** - + ```bash git clone https://github.com/louislam/uptime-kuma-wiki.git cd uptime-kuma-wiki git remote add production https://github.com/louislam/uptime-kuma.wiki.git ``` - + **Push to Production Wiki** - + ```bash git pull git push production master ``` - +
master
to 1.23.X
master
to 1.23.X
(click to expand)
-
+
```bash
git rebase --onto