WIP
This commit is contained in:
File diff suppressed because one or more lines are too long
1455
docs/template-functions.md
Normal file
1455
docs/template-functions.md
Normal file
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,7 @@ import (
|
|||||||
"bufio"
|
"bufio"
|
||||||
"context"
|
"context"
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
|
_ "embed"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
@@ -3069,6 +3070,23 @@ func TestServer_MessageTemplate_UnsafeSprigFunctions(t *testing.T) {
|
|||||||
require.Equal(t, 40043, toHTTPError(t, response.Body.String()).Code)
|
require.Equal(t, 40043, toHTTPError(t, response.Body.String()).Code)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
//go:embed testdata/webhook_github_comment_created.json
|
||||||
|
githubCommentCreatedJSON string
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestServer_MessageTemplate_FromNamedTemplate(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
s := newTestServer(t, newTestConfig(t))
|
||||||
|
response := request(t, s, "POST", "/mytopic", githubCommentCreatedJSON, map[string]string{
|
||||||
|
"Template": "github",
|
||||||
|
})
|
||||||
|
require.Equal(t, 200, response.Code)
|
||||||
|
m := toMessage(t, response.Body.String())
|
||||||
|
require.Equal(t, "💬 New comment on issue #1389 — instant alerts without Pull to refresh", m.Title)
|
||||||
|
require.Equal(t, "💬 New comment on issue #1389 — instant alerts without Pull to refresh", m.Message)
|
||||||
|
}
|
||||||
|
|
||||||
func newTestConfig(t *testing.T) *Config {
|
func newTestConfig(t *testing.T) *Config {
|
||||||
conf := NewConfig()
|
conf := NewConfig()
|
||||||
conf.BaseURL = "http://127.0.0.1:12345"
|
conf.BaseURL = "http://127.0.0.1:12345"
|
||||||
|
|||||||
@@ -1,23 +1,32 @@
|
|||||||
|
title: |
|
||||||
|
{{- if .pull_request }}
|
||||||
|
Pull request {{ .action }}: #{{ .pull_request.number }} {{ .pull_request.title }}
|
||||||
|
{{- else if and .starred_at (eq .action "created")}}
|
||||||
|
⭐ {{ .sender.login }} starred {{ .repository.full_name }}
|
||||||
|
{{- else if and .comment (eq .action "created") }}
|
||||||
|
💬 New comment on issue #{{ .issue.number }} — {{ .issue.title }}
|
||||||
|
{{- else }}
|
||||||
|
Unsupported GitHub event type or action.
|
||||||
|
{{- end }}
|
||||||
message: |
|
message: |
|
||||||
{{- if .pull_request }}
|
{{- if .pull_request }}
|
||||||
🔀 PR {{ .action }}: #{{ .pull_request.number }} — {{ .pull_request.title }}
|
Repository: {{ .repository.full_name }}, branch {{ .pull_request.head.ref }} → {{ .pull_request.base.ref }}
|
||||||
📦 {{ .repository.full_name }}
|
Created by: {{ .pull_request.user.login }}
|
||||||
👤 {{ .pull_request.user.login }}
|
Link: {{ .pull_request.html_url }}
|
||||||
🌿 {{ .pull_request.head.ref }} → {{ .pull_request.base.ref }}
|
{{ if .pull_request.body }}Description:
|
||||||
🔗 {{ .pull_request.html_url }}
|
{{ .pull_request.body }}{{ end }}
|
||||||
📝 {{ .pull_request.body | default "(no description)" }}
|
{{- else if and .starred_at (eq .action "created")}}
|
||||||
{{- else if and .starred_at (eq .action "created")}}
|
⭐ {{ .sender.login }} starred {{ .repository.full_name }}
|
||||||
⭐ {{ .sender.login }} starred {{ .repository.full_name }}
|
📦 {{ .repository.description | default "(no description)" }}
|
||||||
📦 {{ .repository.description | default "(no description)" }}
|
🔗 {{ .repository.html_url }}
|
||||||
🔗 {{ .repository.html_url }}
|
📅 {{ .starred_at }}
|
||||||
📅 {{ .starred_at }}
|
{{- else if and .comment (eq .action "created") }}
|
||||||
{{- else if and .comment (eq .action "created") }}
|
💬 New comment on issue #{{ .issue.number }} — {{ .issue.title }}
|
||||||
💬 New comment on issue #{{ .issue.number }} — {{ .issue.title }}
|
📦 {{ .repository.full_name }}
|
||||||
📦 {{ .repository.full_name }}
|
👤 {{ .comment.user.login }}
|
||||||
👤 {{ .comment.user.login }}
|
🔗 {{ .comment.html_url }}
|
||||||
🔗 {{ .comment.html_url }}
|
📝 {{ .comment.body | default "(no comment body)" }}
|
||||||
📝 {{ .comment.body | default "(no comment body)" }}
|
{{- else }}
|
||||||
{{- else }}
|
{{ fail "Unsupported GitHub event type or action." }}
|
||||||
{{ fail "Unsupported GitHub event type or action." }}
|
{{- end }}
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
|
|||||||
261
server/testdata/webhook_github_comment_created.json
vendored
Normal file
261
server/testdata/webhook_github_comment_created.json
vendored
Normal file
@@ -0,0 +1,261 @@
|
|||||||
|
{
|
||||||
|
"action": "created",
|
||||||
|
"issue": {
|
||||||
|
"url": "https://api.github.com/repos/binwiederhier/ntfy/issues/1389",
|
||||||
|
"repository_url": "https://api.github.com/repos/binwiederhier/ntfy",
|
||||||
|
"labels_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/1389/labels{/name}",
|
||||||
|
"comments_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/1389/comments",
|
||||||
|
"events_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/1389/events",
|
||||||
|
"html_url": "https://github.com/binwiederhier/ntfy/issues/1389",
|
||||||
|
"id": 3230655753,
|
||||||
|
"node_id": "I_kwDOGRBhi87Aj-UJ",
|
||||||
|
"number": 1389,
|
||||||
|
"title": "instant alerts without Pull to refresh",
|
||||||
|
"user": {
|
||||||
|
"login": "edbraunh",
|
||||||
|
"id": 8795846,
|
||||||
|
"node_id": "MDQ6VXNlcjg3OTU4NDY=",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/8795846?v=4",
|
||||||
|
"gravatar_id": "",
|
||||||
|
"url": "https://api.github.com/users/edbraunh",
|
||||||
|
"html_url": "https://github.com/edbraunh",
|
||||||
|
"followers_url": "https://api.github.com/users/edbraunh/followers",
|
||||||
|
"following_url": "https://api.github.com/users/edbraunh/following{/other_user}",
|
||||||
|
"gists_url": "https://api.github.com/users/edbraunh/gists{/gist_id}",
|
||||||
|
"starred_url": "https://api.github.com/users/edbraunh/starred{/owner}{/repo}",
|
||||||
|
"subscriptions_url": "https://api.github.com/users/edbraunh/subscriptions",
|
||||||
|
"organizations_url": "https://api.github.com/users/edbraunh/orgs",
|
||||||
|
"repos_url": "https://api.github.com/users/edbraunh/repos",
|
||||||
|
"events_url": "https://api.github.com/users/edbraunh/events{/privacy}",
|
||||||
|
"received_events_url": "https://api.github.com/users/edbraunh/received_events",
|
||||||
|
"type": "User",
|
||||||
|
"user_view_type": "public",
|
||||||
|
"site_admin": false
|
||||||
|
},
|
||||||
|
"labels": [
|
||||||
|
{
|
||||||
|
"id": 3480884105,
|
||||||
|
"node_id": "LA_kwDOGRBhi87PehOJ",
|
||||||
|
"url": "https://api.github.com/repos/binwiederhier/ntfy/labels/enhancement",
|
||||||
|
"name": "enhancement",
|
||||||
|
"color": "a2eeef",
|
||||||
|
"default": true,
|
||||||
|
"description": "New feature or request"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"state": "open",
|
||||||
|
"locked": false,
|
||||||
|
"assignee": null,
|
||||||
|
"assignees": [
|
||||||
|
],
|
||||||
|
"milestone": null,
|
||||||
|
"comments": 3,
|
||||||
|
"created_at": "2025-07-15T03:46:30Z",
|
||||||
|
"updated_at": "2025-07-16T11:45:57Z",
|
||||||
|
"closed_at": null,
|
||||||
|
"author_association": "NONE",
|
||||||
|
"active_lock_reason": null,
|
||||||
|
"sub_issues_summary": {
|
||||||
|
"total": 0,
|
||||||
|
"completed": 0,
|
||||||
|
"percent_completed": 0
|
||||||
|
},
|
||||||
|
"body": "Hello ntfy Team,\n\nFirst off, thank you for developing such a powerful and lightweight notification app — it’s been invaluable for receiving timely alerts.\n\nI’m a user who relies heavily on ntfy for real-time trading alerts and have noticed that while push notifications arrive instantly, the in-app alert list does not automatically refresh with new messages. Currently, I need to manually pull-to-refresh the alert list to see the latest alerts.\n\nWould it be possible to add a feature that enables automatic refreshing of the alert list as new notifications arrive? This would greatly enhance usability and streamline the user experience, especially for users monitoring time-sensitive information.\n\nThank you for considering this request. I appreciate your hard work and look forward to future updates!",
|
||||||
|
"reactions": {
|
||||||
|
"url": "https://api.github.com/repos/binwiederhier/ntfy/issues/1389/reactions",
|
||||||
|
"total_count": 0,
|
||||||
|
"+1": 0,
|
||||||
|
"-1": 0,
|
||||||
|
"laugh": 0,
|
||||||
|
"hooray": 0,
|
||||||
|
"confused": 0,
|
||||||
|
"heart": 0,
|
||||||
|
"rocket": 0,
|
||||||
|
"eyes": 0
|
||||||
|
},
|
||||||
|
"timeline_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/1389/timeline",
|
||||||
|
"performed_via_github_app": null,
|
||||||
|
"state_reason": null
|
||||||
|
},
|
||||||
|
"comment": {
|
||||||
|
"url": "https://api.github.com/repos/binwiederhier/ntfy/issues/comments/3078214289",
|
||||||
|
"html_url": "https://github.com/binwiederhier/ntfy/issues/1389#issuecomment-3078214289",
|
||||||
|
"issue_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/1389",
|
||||||
|
"id": 3078214289,
|
||||||
|
"node_id": "IC_kwDOGRBhi863edKR",
|
||||||
|
"user": {
|
||||||
|
"login": "wunter8",
|
||||||
|
"id": 8421688,
|
||||||
|
"node_id": "MDQ6VXNlcjg0MjE2ODg=",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/8421688?v=4",
|
||||||
|
"gravatar_id": "",
|
||||||
|
"url": "https://api.github.com/users/wunter8",
|
||||||
|
"html_url": "https://github.com/wunter8",
|
||||||
|
"followers_url": "https://api.github.com/users/wunter8/followers",
|
||||||
|
"following_url": "https://api.github.com/users/wunter8/following{/other_user}",
|
||||||
|
"gists_url": "https://api.github.com/users/wunter8/gists{/gist_id}",
|
||||||
|
"starred_url": "https://api.github.com/users/wunter8/starred{/owner}{/repo}",
|
||||||
|
"subscriptions_url": "https://api.github.com/users/wunter8/subscriptions",
|
||||||
|
"organizations_url": "https://api.github.com/users/wunter8/orgs",
|
||||||
|
"repos_url": "https://api.github.com/users/wunter8/repos",
|
||||||
|
"events_url": "https://api.github.com/users/wunter8/events{/privacy}",
|
||||||
|
"received_events_url": "https://api.github.com/users/wunter8/received_events",
|
||||||
|
"type": "User",
|
||||||
|
"user_view_type": "public",
|
||||||
|
"site_admin": false
|
||||||
|
},
|
||||||
|
"created_at": "2025-07-16T11:45:57Z",
|
||||||
|
"updated_at": "2025-07-16T11:45:57Z",
|
||||||
|
"author_association": "CONTRIBUTOR",
|
||||||
|
"body": "These are the things you need to do to get iOS push notifications to work:\n1. open a browser to the web app of your ntfy instance and copy the URL (including \"http://\" or \"https://\", your domain or IP address, and any ports, and excluding any trailing slashes)\n2. put the URL you copied in the ntfy `base-url` config in server.yml or NTFY_BASE_URL in env variables\n3. put the URL you copied in the default server URL setting in the iOS ntfy app\n4. set `upstream-base-url` in server.yml or NTFY_UPSTREAM_BASE_URL in env variables to \"https://ntfy.sh\" (without a trailing slash)",
|
||||||
|
"reactions": {
|
||||||
|
"url": "https://api.github.com/repos/binwiederhier/ntfy/issues/comments/3078214289/reactions",
|
||||||
|
"total_count": 0,
|
||||||
|
"+1": 0,
|
||||||
|
"-1": 0,
|
||||||
|
"laugh": 0,
|
||||||
|
"hooray": 0,
|
||||||
|
"confused": 0,
|
||||||
|
"heart": 0,
|
||||||
|
"rocket": 0,
|
||||||
|
"eyes": 0
|
||||||
|
},
|
||||||
|
"performed_via_github_app": null
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"id": 420503947,
|
||||||
|
"node_id": "R_kgDOGRBhiw",
|
||||||
|
"name": "ntfy",
|
||||||
|
"full_name": "binwiederhier/ntfy",
|
||||||
|
"private": false,
|
||||||
|
"owner": {
|
||||||
|
"login": "binwiederhier",
|
||||||
|
"id": 664597,
|
||||||
|
"node_id": "MDQ6VXNlcjY2NDU5Nw==",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/664597?v=4",
|
||||||
|
"gravatar_id": "",
|
||||||
|
"url": "https://api.github.com/users/binwiederhier",
|
||||||
|
"html_url": "https://github.com/binwiederhier",
|
||||||
|
"followers_url": "https://api.github.com/users/binwiederhier/followers",
|
||||||
|
"following_url": "https://api.github.com/users/binwiederhier/following{/other_user}",
|
||||||
|
"gists_url": "https://api.github.com/users/binwiederhier/gists{/gist_id}",
|
||||||
|
"starred_url": "https://api.github.com/users/binwiederhier/starred{/owner}{/repo}",
|
||||||
|
"subscriptions_url": "https://api.github.com/users/binwiederhier/subscriptions",
|
||||||
|
"organizations_url": "https://api.github.com/users/binwiederhier/orgs",
|
||||||
|
"repos_url": "https://api.github.com/users/binwiederhier/repos",
|
||||||
|
"events_url": "https://api.github.com/users/binwiederhier/events{/privacy}",
|
||||||
|
"received_events_url": "https://api.github.com/users/binwiederhier/received_events",
|
||||||
|
"type": "User",
|
||||||
|
"user_view_type": "public",
|
||||||
|
"site_admin": false
|
||||||
|
},
|
||||||
|
"html_url": "https://github.com/binwiederhier/ntfy",
|
||||||
|
"description": "Send push notifications to your phone or desktop using PUT/POST",
|
||||||
|
"fork": false,
|
||||||
|
"url": "https://api.github.com/repos/binwiederhier/ntfy",
|
||||||
|
"forks_url": "https://api.github.com/repos/binwiederhier/ntfy/forks",
|
||||||
|
"keys_url": "https://api.github.com/repos/binwiederhier/ntfy/keys{/key_id}",
|
||||||
|
"collaborators_url": "https://api.github.com/repos/binwiederhier/ntfy/collaborators{/collaborator}",
|
||||||
|
"teams_url": "https://api.github.com/repos/binwiederhier/ntfy/teams",
|
||||||
|
"hooks_url": "https://api.github.com/repos/binwiederhier/ntfy/hooks",
|
||||||
|
"issue_events_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/events{/number}",
|
||||||
|
"events_url": "https://api.github.com/repos/binwiederhier/ntfy/events",
|
||||||
|
"assignees_url": "https://api.github.com/repos/binwiederhier/ntfy/assignees{/user}",
|
||||||
|
"branches_url": "https://api.github.com/repos/binwiederhier/ntfy/branches{/branch}",
|
||||||
|
"tags_url": "https://api.github.com/repos/binwiederhier/ntfy/tags",
|
||||||
|
"blobs_url": "https://api.github.com/repos/binwiederhier/ntfy/git/blobs{/sha}",
|
||||||
|
"git_tags_url": "https://api.github.com/repos/binwiederhier/ntfy/git/tags{/sha}",
|
||||||
|
"git_refs_url": "https://api.github.com/repos/binwiederhier/ntfy/git/refs{/sha}",
|
||||||
|
"trees_url": "https://api.github.com/repos/binwiederhier/ntfy/git/trees{/sha}",
|
||||||
|
"statuses_url": "https://api.github.com/repos/binwiederhier/ntfy/statuses/{sha}",
|
||||||
|
"languages_url": "https://api.github.com/repos/binwiederhier/ntfy/languages",
|
||||||
|
"stargazers_url": "https://api.github.com/repos/binwiederhier/ntfy/stargazers",
|
||||||
|
"contributors_url": "https://api.github.com/repos/binwiederhier/ntfy/contributors",
|
||||||
|
"subscribers_url": "https://api.github.com/repos/binwiederhier/ntfy/subscribers",
|
||||||
|
"subscription_url": "https://api.github.com/repos/binwiederhier/ntfy/subscription",
|
||||||
|
"commits_url": "https://api.github.com/repos/binwiederhier/ntfy/commits{/sha}",
|
||||||
|
"git_commits_url": "https://api.github.com/repos/binwiederhier/ntfy/git/commits{/sha}",
|
||||||
|
"comments_url": "https://api.github.com/repos/binwiederhier/ntfy/comments{/number}",
|
||||||
|
"issue_comment_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/comments{/number}",
|
||||||
|
"contents_url": "https://api.github.com/repos/binwiederhier/ntfy/contents/{+path}",
|
||||||
|
"compare_url": "https://api.github.com/repos/binwiederhier/ntfy/compare/{base}...{head}",
|
||||||
|
"merges_url": "https://api.github.com/repos/binwiederhier/ntfy/merges",
|
||||||
|
"archive_url": "https://api.github.com/repos/binwiederhier/ntfy/{archive_format}{/ref}",
|
||||||
|
"downloads_url": "https://api.github.com/repos/binwiederhier/ntfy/downloads",
|
||||||
|
"issues_url": "https://api.github.com/repos/binwiederhier/ntfy/issues{/number}",
|
||||||
|
"pulls_url": "https://api.github.com/repos/binwiederhier/ntfy/pulls{/number}",
|
||||||
|
"milestones_url": "https://api.github.com/repos/binwiederhier/ntfy/milestones{/number}",
|
||||||
|
"notifications_url": "https://api.github.com/repos/binwiederhier/ntfy/notifications{?since,all,participating}",
|
||||||
|
"labels_url": "https://api.github.com/repos/binwiederhier/ntfy/labels{/name}",
|
||||||
|
"releases_url": "https://api.github.com/repos/binwiederhier/ntfy/releases{/id}",
|
||||||
|
"deployments_url": "https://api.github.com/repos/binwiederhier/ntfy/deployments",
|
||||||
|
"created_at": "2021-10-23T19:25:32Z",
|
||||||
|
"updated_at": "2025-07-16T10:18:34Z",
|
||||||
|
"pushed_at": "2025-07-13T13:56:19Z",
|
||||||
|
"git_url": "git://github.com/binwiederhier/ntfy.git",
|
||||||
|
"ssh_url": "git@github.com:binwiederhier/ntfy.git",
|
||||||
|
"clone_url": "https://github.com/binwiederhier/ntfy.git",
|
||||||
|
"svn_url": "https://github.com/binwiederhier/ntfy",
|
||||||
|
"homepage": "https://ntfy.sh",
|
||||||
|
"size": 36740,
|
||||||
|
"stargazers_count": 25111,
|
||||||
|
"watchers_count": 25111,
|
||||||
|
"language": "Go",
|
||||||
|
"has_issues": true,
|
||||||
|
"has_projects": true,
|
||||||
|
"has_downloads": true,
|
||||||
|
"has_wiki": true,
|
||||||
|
"has_pages": false,
|
||||||
|
"has_discussions": false,
|
||||||
|
"forks_count": 984,
|
||||||
|
"mirror_url": null,
|
||||||
|
"archived": false,
|
||||||
|
"disabled": false,
|
||||||
|
"open_issues_count": 367,
|
||||||
|
"license": {
|
||||||
|
"key": "apache-2.0",
|
||||||
|
"name": "Apache License 2.0",
|
||||||
|
"spdx_id": "Apache-2.0",
|
||||||
|
"url": "https://api.github.com/licenses/apache-2.0",
|
||||||
|
"node_id": "MDc6TGljZW5zZTI="
|
||||||
|
},
|
||||||
|
"allow_forking": true,
|
||||||
|
"is_template": false,
|
||||||
|
"web_commit_signoff_required": false,
|
||||||
|
"topics": [
|
||||||
|
"curl",
|
||||||
|
"notifications",
|
||||||
|
"ntfy",
|
||||||
|
"ntfysh",
|
||||||
|
"pubsub",
|
||||||
|
"push-notifications",
|
||||||
|
"rest-api"
|
||||||
|
],
|
||||||
|
"visibility": "public",
|
||||||
|
"forks": 984,
|
||||||
|
"open_issues": 367,
|
||||||
|
"watchers": 25111,
|
||||||
|
"default_branch": "main"
|
||||||
|
},
|
||||||
|
"sender": {
|
||||||
|
"login": "wunter8",
|
||||||
|
"id": 8421688,
|
||||||
|
"node_id": "MDQ6VXNlcjg0MjE2ODg=",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/8421688?v=4",
|
||||||
|
"gravatar_id": "",
|
||||||
|
"url": "https://api.github.com/users/wunter8",
|
||||||
|
"html_url": "https://github.com/wunter8",
|
||||||
|
"followers_url": "https://api.github.com/users/wunter8/followers",
|
||||||
|
"following_url": "https://api.github.com/users/wunter8/following{/other_user}",
|
||||||
|
"gists_url": "https://api.github.com/users/wunter8/gists{/gist_id}",
|
||||||
|
"starred_url": "https://api.github.com/users/wunter8/starred{/owner}{/repo}",
|
||||||
|
"subscriptions_url": "https://api.github.com/users/wunter8/subscriptions",
|
||||||
|
"organizations_url": "https://api.github.com/users/wunter8/orgs",
|
||||||
|
"repos_url": "https://api.github.com/users/wunter8/repos",
|
||||||
|
"events_url": "https://api.github.com/users/wunter8/events{/privacy}",
|
||||||
|
"received_events_url": "https://api.github.com/users/wunter8/received_events",
|
||||||
|
"type": "User",
|
||||||
|
"user_view_type": "public",
|
||||||
|
"site_admin": false
|
||||||
|
}
|
||||||
|
}
|
||||||
541
server/testdata/webhook_github_pr_opened.json
vendored
Normal file
541
server/testdata/webhook_github_pr_opened.json
vendored
Normal file
@@ -0,0 +1,541 @@
|
|||||||
|
{
|
||||||
|
"action": "opened",
|
||||||
|
"number": 1390,
|
||||||
|
"pull_request": {
|
||||||
|
"url": "https://api.github.com/repos/binwiederhier/ntfy/pulls/1390",
|
||||||
|
"id": 2670425869,
|
||||||
|
"node_id": "PR_kwDOGRBhi86fK3cN",
|
||||||
|
"html_url": "https://github.com/binwiederhier/ntfy/pull/1390",
|
||||||
|
"diff_url": "https://github.com/binwiederhier/ntfy/pull/1390.diff",
|
||||||
|
"patch_url": "https://github.com/binwiederhier/ntfy/pull/1390.patch",
|
||||||
|
"issue_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/1390",
|
||||||
|
"number": 1390,
|
||||||
|
"state": "open",
|
||||||
|
"locked": false,
|
||||||
|
"title": "WIP Template dir",
|
||||||
|
"user": {
|
||||||
|
"login": "binwiederhier",
|
||||||
|
"id": 664597,
|
||||||
|
"node_id": "MDQ6VXNlcjY2NDU5Nw==",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/664597?v=4",
|
||||||
|
"gravatar_id": "",
|
||||||
|
"url": "https://api.github.com/users/binwiederhier",
|
||||||
|
"html_url": "https://github.com/binwiederhier",
|
||||||
|
"followers_url": "https://api.github.com/users/binwiederhier/followers",
|
||||||
|
"following_url": "https://api.github.com/users/binwiederhier/following{/other_user}",
|
||||||
|
"gists_url": "https://api.github.com/users/binwiederhier/gists{/gist_id}",
|
||||||
|
"starred_url": "https://api.github.com/users/binwiederhier/starred{/owner}{/repo}",
|
||||||
|
"subscriptions_url": "https://api.github.com/users/binwiederhier/subscriptions",
|
||||||
|
"organizations_url": "https://api.github.com/users/binwiederhier/orgs",
|
||||||
|
"repos_url": "https://api.github.com/users/binwiederhier/repos",
|
||||||
|
"events_url": "https://api.github.com/users/binwiederhier/events{/privacy}",
|
||||||
|
"received_events_url": "https://api.github.com/users/binwiederhier/received_events",
|
||||||
|
"type": "User",
|
||||||
|
"user_view_type": "public",
|
||||||
|
"site_admin": false
|
||||||
|
},
|
||||||
|
"body": null,
|
||||||
|
"created_at": "2025-07-16T11:49:31Z",
|
||||||
|
"updated_at": "2025-07-16T11:49:31Z",
|
||||||
|
"closed_at": null,
|
||||||
|
"merged_at": null,
|
||||||
|
"merge_commit_sha": null,
|
||||||
|
"assignee": null,
|
||||||
|
"assignees": [
|
||||||
|
],
|
||||||
|
"requested_reviewers": [
|
||||||
|
],
|
||||||
|
"requested_teams": [
|
||||||
|
],
|
||||||
|
"labels": [
|
||||||
|
],
|
||||||
|
"milestone": null,
|
||||||
|
"draft": false,
|
||||||
|
"commits_url": "https://api.github.com/repos/binwiederhier/ntfy/pulls/1390/commits",
|
||||||
|
"review_comments_url": "https://api.github.com/repos/binwiederhier/ntfy/pulls/1390/comments",
|
||||||
|
"review_comment_url": "https://api.github.com/repos/binwiederhier/ntfy/pulls/comments{/number}",
|
||||||
|
"comments_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/1390/comments",
|
||||||
|
"statuses_url": "https://api.github.com/repos/binwiederhier/ntfy/statuses/b1e935da45365c5e7e731d544a1ad4c7ea3643cd",
|
||||||
|
"head": {
|
||||||
|
"label": "binwiederhier:template-dir",
|
||||||
|
"ref": "template-dir",
|
||||||
|
"sha": "b1e935da45365c5e7e731d544a1ad4c7ea3643cd",
|
||||||
|
"user": {
|
||||||
|
"login": "binwiederhier",
|
||||||
|
"id": 664597,
|
||||||
|
"node_id": "MDQ6VXNlcjY2NDU5Nw==",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/664597?v=4",
|
||||||
|
"gravatar_id": "",
|
||||||
|
"url": "https://api.github.com/users/binwiederhier",
|
||||||
|
"html_url": "https://github.com/binwiederhier",
|
||||||
|
"followers_url": "https://api.github.com/users/binwiederhier/followers",
|
||||||
|
"following_url": "https://api.github.com/users/binwiederhier/following{/other_user}",
|
||||||
|
"gists_url": "https://api.github.com/users/binwiederhier/gists{/gist_id}",
|
||||||
|
"starred_url": "https://api.github.com/users/binwiederhier/starred{/owner}{/repo}",
|
||||||
|
"subscriptions_url": "https://api.github.com/users/binwiederhier/subscriptions",
|
||||||
|
"organizations_url": "https://api.github.com/users/binwiederhier/orgs",
|
||||||
|
"repos_url": "https://api.github.com/users/binwiederhier/repos",
|
||||||
|
"events_url": "https://api.github.com/users/binwiederhier/events{/privacy}",
|
||||||
|
"received_events_url": "https://api.github.com/users/binwiederhier/received_events",
|
||||||
|
"type": "User",
|
||||||
|
"user_view_type": "public",
|
||||||
|
"site_admin": false
|
||||||
|
},
|
||||||
|
"repo": {
|
||||||
|
"id": 420503947,
|
||||||
|
"node_id": "R_kgDOGRBhiw",
|
||||||
|
"name": "ntfy",
|
||||||
|
"full_name": "binwiederhier/ntfy",
|
||||||
|
"private": false,
|
||||||
|
"owner": {
|
||||||
|
"login": "binwiederhier",
|
||||||
|
"id": 664597,
|
||||||
|
"node_id": "MDQ6VXNlcjY2NDU5Nw==",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/664597?v=4",
|
||||||
|
"gravatar_id": "",
|
||||||
|
"url": "https://api.github.com/users/binwiederhier",
|
||||||
|
"html_url": "https://github.com/binwiederhier",
|
||||||
|
"followers_url": "https://api.github.com/users/binwiederhier/followers",
|
||||||
|
"following_url": "https://api.github.com/users/binwiederhier/following{/other_user}",
|
||||||
|
"gists_url": "https://api.github.com/users/binwiederhier/gists{/gist_id}",
|
||||||
|
"starred_url": "https://api.github.com/users/binwiederhier/starred{/owner}{/repo}",
|
||||||
|
"subscriptions_url": "https://api.github.com/users/binwiederhier/subscriptions",
|
||||||
|
"organizations_url": "https://api.github.com/users/binwiederhier/orgs",
|
||||||
|
"repos_url": "https://api.github.com/users/binwiederhier/repos",
|
||||||
|
"events_url": "https://api.github.com/users/binwiederhier/events{/privacy}",
|
||||||
|
"received_events_url": "https://api.github.com/users/binwiederhier/received_events",
|
||||||
|
"type": "User",
|
||||||
|
"user_view_type": "public",
|
||||||
|
"site_admin": false
|
||||||
|
},
|
||||||
|
"html_url": "https://github.com/binwiederhier/ntfy",
|
||||||
|
"description": "Send push notifications to your phone or desktop using PUT/POST",
|
||||||
|
"fork": false,
|
||||||
|
"url": "https://api.github.com/repos/binwiederhier/ntfy",
|
||||||
|
"forks_url": "https://api.github.com/repos/binwiederhier/ntfy/forks",
|
||||||
|
"keys_url": "https://api.github.com/repos/binwiederhier/ntfy/keys{/key_id}",
|
||||||
|
"collaborators_url": "https://api.github.com/repos/binwiederhier/ntfy/collaborators{/collaborator}",
|
||||||
|
"teams_url": "https://api.github.com/repos/binwiederhier/ntfy/teams",
|
||||||
|
"hooks_url": "https://api.github.com/repos/binwiederhier/ntfy/hooks",
|
||||||
|
"issue_events_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/events{/number}",
|
||||||
|
"events_url": "https://api.github.com/repos/binwiederhier/ntfy/events",
|
||||||
|
"assignees_url": "https://api.github.com/repos/binwiederhier/ntfy/assignees{/user}",
|
||||||
|
"branches_url": "https://api.github.com/repos/binwiederhier/ntfy/branches{/branch}",
|
||||||
|
"tags_url": "https://api.github.com/repos/binwiederhier/ntfy/tags",
|
||||||
|
"blobs_url": "https://api.github.com/repos/binwiederhier/ntfy/git/blobs{/sha}",
|
||||||
|
"git_tags_url": "https://api.github.com/repos/binwiederhier/ntfy/git/tags{/sha}",
|
||||||
|
"git_refs_url": "https://api.github.com/repos/binwiederhier/ntfy/git/refs{/sha}",
|
||||||
|
"trees_url": "https://api.github.com/repos/binwiederhier/ntfy/git/trees{/sha}",
|
||||||
|
"statuses_url": "https://api.github.com/repos/binwiederhier/ntfy/statuses/{sha}",
|
||||||
|
"languages_url": "https://api.github.com/repos/binwiederhier/ntfy/languages",
|
||||||
|
"stargazers_url": "https://api.github.com/repos/binwiederhier/ntfy/stargazers",
|
||||||
|
"contributors_url": "https://api.github.com/repos/binwiederhier/ntfy/contributors",
|
||||||
|
"subscribers_url": "https://api.github.com/repos/binwiederhier/ntfy/subscribers",
|
||||||
|
"subscription_url": "https://api.github.com/repos/binwiederhier/ntfy/subscription",
|
||||||
|
"commits_url": "https://api.github.com/repos/binwiederhier/ntfy/commits{/sha}",
|
||||||
|
"git_commits_url": "https://api.github.com/repos/binwiederhier/ntfy/git/commits{/sha}",
|
||||||
|
"comments_url": "https://api.github.com/repos/binwiederhier/ntfy/comments{/number}",
|
||||||
|
"issue_comment_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/comments{/number}",
|
||||||
|
"contents_url": "https://api.github.com/repos/binwiederhier/ntfy/contents/{+path}",
|
||||||
|
"compare_url": "https://api.github.com/repos/binwiederhier/ntfy/compare/{base}...{head}",
|
||||||
|
"merges_url": "https://api.github.com/repos/binwiederhier/ntfy/merges",
|
||||||
|
"archive_url": "https://api.github.com/repos/binwiederhier/ntfy/{archive_format}{/ref}",
|
||||||
|
"downloads_url": "https://api.github.com/repos/binwiederhier/ntfy/downloads",
|
||||||
|
"issues_url": "https://api.github.com/repos/binwiederhier/ntfy/issues{/number}",
|
||||||
|
"pulls_url": "https://api.github.com/repos/binwiederhier/ntfy/pulls{/number}",
|
||||||
|
"milestones_url": "https://api.github.com/repos/binwiederhier/ntfy/milestones{/number}",
|
||||||
|
"notifications_url": "https://api.github.com/repos/binwiederhier/ntfy/notifications{?since,all,participating}",
|
||||||
|
"labels_url": "https://api.github.com/repos/binwiederhier/ntfy/labels{/name}",
|
||||||
|
"releases_url": "https://api.github.com/repos/binwiederhier/ntfy/releases{/id}",
|
||||||
|
"deployments_url": "https://api.github.com/repos/binwiederhier/ntfy/deployments",
|
||||||
|
"created_at": "2021-10-23T19:25:32Z",
|
||||||
|
"updated_at": "2025-07-16T10:18:34Z",
|
||||||
|
"pushed_at": "2025-07-16T11:49:26Z",
|
||||||
|
"git_url": "git://github.com/binwiederhier/ntfy.git",
|
||||||
|
"ssh_url": "git@github.com:binwiederhier/ntfy.git",
|
||||||
|
"clone_url": "https://github.com/binwiederhier/ntfy.git",
|
||||||
|
"svn_url": "https://github.com/binwiederhier/ntfy",
|
||||||
|
"homepage": "https://ntfy.sh",
|
||||||
|
"size": 36740,
|
||||||
|
"stargazers_count": 25111,
|
||||||
|
"watchers_count": 25111,
|
||||||
|
"language": "Go",
|
||||||
|
"has_issues": true,
|
||||||
|
"has_projects": true,
|
||||||
|
"has_downloads": true,
|
||||||
|
"has_wiki": true,
|
||||||
|
"has_pages": false,
|
||||||
|
"has_discussions": false,
|
||||||
|
"forks_count": 984,
|
||||||
|
"mirror_url": null,
|
||||||
|
"archived": false,
|
||||||
|
"disabled": false,
|
||||||
|
"open_issues_count": 368,
|
||||||
|
"license": {
|
||||||
|
"key": "apache-2.0",
|
||||||
|
"name": "Apache License 2.0",
|
||||||
|
"spdx_id": "Apache-2.0",
|
||||||
|
"url": "https://api.github.com/licenses/apache-2.0",
|
||||||
|
"node_id": "MDc6TGljZW5zZTI="
|
||||||
|
},
|
||||||
|
"allow_forking": true,
|
||||||
|
"is_template": false,
|
||||||
|
"web_commit_signoff_required": false,
|
||||||
|
"topics": [
|
||||||
|
"curl",
|
||||||
|
"notifications",
|
||||||
|
"ntfy",
|
||||||
|
"ntfysh",
|
||||||
|
"pubsub",
|
||||||
|
"push-notifications",
|
||||||
|
"rest-api"
|
||||||
|
],
|
||||||
|
"visibility": "public",
|
||||||
|
"forks": 984,
|
||||||
|
"open_issues": 368,
|
||||||
|
"watchers": 25111,
|
||||||
|
"default_branch": "main",
|
||||||
|
"allow_squash_merge": true,
|
||||||
|
"allow_merge_commit": true,
|
||||||
|
"allow_rebase_merge": true,
|
||||||
|
"allow_auto_merge": true,
|
||||||
|
"delete_branch_on_merge": false,
|
||||||
|
"allow_update_branch": false,
|
||||||
|
"use_squash_pr_title_as_default": false,
|
||||||
|
"squash_merge_commit_message": "COMMIT_MESSAGES",
|
||||||
|
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
|
||||||
|
"merge_commit_message": "PR_TITLE",
|
||||||
|
"merge_commit_title": "MERGE_MESSAGE"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base": {
|
||||||
|
"label": "binwiederhier:main",
|
||||||
|
"ref": "main",
|
||||||
|
"sha": "81a486adc11fe24efcbedefb28ae946028597c2f",
|
||||||
|
"user": {
|
||||||
|
"login": "binwiederhier",
|
||||||
|
"id": 664597,
|
||||||
|
"node_id": "MDQ6VXNlcjY2NDU5Nw==",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/664597?v=4",
|
||||||
|
"gravatar_id": "",
|
||||||
|
"url": "https://api.github.com/users/binwiederhier",
|
||||||
|
"html_url": "https://github.com/binwiederhier",
|
||||||
|
"followers_url": "https://api.github.com/users/binwiederhier/followers",
|
||||||
|
"following_url": "https://api.github.com/users/binwiederhier/following{/other_user}",
|
||||||
|
"gists_url": "https://api.github.com/users/binwiederhier/gists{/gist_id}",
|
||||||
|
"starred_url": "https://api.github.com/users/binwiederhier/starred{/owner}{/repo}",
|
||||||
|
"subscriptions_url": "https://api.github.com/users/binwiederhier/subscriptions",
|
||||||
|
"organizations_url": "https://api.github.com/users/binwiederhier/orgs",
|
||||||
|
"repos_url": "https://api.github.com/users/binwiederhier/repos",
|
||||||
|
"events_url": "https://api.github.com/users/binwiederhier/events{/privacy}",
|
||||||
|
"received_events_url": "https://api.github.com/users/binwiederhier/received_events",
|
||||||
|
"type": "User",
|
||||||
|
"user_view_type": "public",
|
||||||
|
"site_admin": false
|
||||||
|
},
|
||||||
|
"repo": {
|
||||||
|
"id": 420503947,
|
||||||
|
"node_id": "R_kgDOGRBhiw",
|
||||||
|
"name": "ntfy",
|
||||||
|
"full_name": "binwiederhier/ntfy",
|
||||||
|
"private": false,
|
||||||
|
"owner": {
|
||||||
|
"login": "binwiederhier",
|
||||||
|
"id": 664597,
|
||||||
|
"node_id": "MDQ6VXNlcjY2NDU5Nw==",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/664597?v=4",
|
||||||
|
"gravatar_id": "",
|
||||||
|
"url": "https://api.github.com/users/binwiederhier",
|
||||||
|
"html_url": "https://github.com/binwiederhier",
|
||||||
|
"followers_url": "https://api.github.com/users/binwiederhier/followers",
|
||||||
|
"following_url": "https://api.github.com/users/binwiederhier/following{/other_user}",
|
||||||
|
"gists_url": "https://api.github.com/users/binwiederhier/gists{/gist_id}",
|
||||||
|
"starred_url": "https://api.github.com/users/binwiederhier/starred{/owner}{/repo}",
|
||||||
|
"subscriptions_url": "https://api.github.com/users/binwiederhier/subscriptions",
|
||||||
|
"organizations_url": "https://api.github.com/users/binwiederhier/orgs",
|
||||||
|
"repos_url": "https://api.github.com/users/binwiederhier/repos",
|
||||||
|
"events_url": "https://api.github.com/users/binwiederhier/events{/privacy}",
|
||||||
|
"received_events_url": "https://api.github.com/users/binwiederhier/received_events",
|
||||||
|
"type": "User",
|
||||||
|
"user_view_type": "public",
|
||||||
|
"site_admin": false
|
||||||
|
},
|
||||||
|
"html_url": "https://github.com/binwiederhier/ntfy",
|
||||||
|
"description": "Send push notifications to your phone or desktop using PUT/POST",
|
||||||
|
"fork": false,
|
||||||
|
"url": "https://api.github.com/repos/binwiederhier/ntfy",
|
||||||
|
"forks_url": "https://api.github.com/repos/binwiederhier/ntfy/forks",
|
||||||
|
"keys_url": "https://api.github.com/repos/binwiederhier/ntfy/keys{/key_id}",
|
||||||
|
"collaborators_url": "https://api.github.com/repos/binwiederhier/ntfy/collaborators{/collaborator}",
|
||||||
|
"teams_url": "https://api.github.com/repos/binwiederhier/ntfy/teams",
|
||||||
|
"hooks_url": "https://api.github.com/repos/binwiederhier/ntfy/hooks",
|
||||||
|
"issue_events_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/events{/number}",
|
||||||
|
"events_url": "https://api.github.com/repos/binwiederhier/ntfy/events",
|
||||||
|
"assignees_url": "https://api.github.com/repos/binwiederhier/ntfy/assignees{/user}",
|
||||||
|
"branches_url": "https://api.github.com/repos/binwiederhier/ntfy/branches{/branch}",
|
||||||
|
"tags_url": "https://api.github.com/repos/binwiederhier/ntfy/tags",
|
||||||
|
"blobs_url": "https://api.github.com/repos/binwiederhier/ntfy/git/blobs{/sha}",
|
||||||
|
"git_tags_url": "https://api.github.com/repos/binwiederhier/ntfy/git/tags{/sha}",
|
||||||
|
"git_refs_url": "https://api.github.com/repos/binwiederhier/ntfy/git/refs{/sha}",
|
||||||
|
"trees_url": "https://api.github.com/repos/binwiederhier/ntfy/git/trees{/sha}",
|
||||||
|
"statuses_url": "https://api.github.com/repos/binwiederhier/ntfy/statuses/{sha}",
|
||||||
|
"languages_url": "https://api.github.com/repos/binwiederhier/ntfy/languages",
|
||||||
|
"stargazers_url": "https://api.github.com/repos/binwiederhier/ntfy/stargazers",
|
||||||
|
"contributors_url": "https://api.github.com/repos/binwiederhier/ntfy/contributors",
|
||||||
|
"subscribers_url": "https://api.github.com/repos/binwiederhier/ntfy/subscribers",
|
||||||
|
"subscription_url": "https://api.github.com/repos/binwiederhier/ntfy/subscription",
|
||||||
|
"commits_url": "https://api.github.com/repos/binwiederhier/ntfy/commits{/sha}",
|
||||||
|
"git_commits_url": "https://api.github.com/repos/binwiederhier/ntfy/git/commits{/sha}",
|
||||||
|
"comments_url": "https://api.github.com/repos/binwiederhier/ntfy/comments{/number}",
|
||||||
|
"issue_comment_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/comments{/number}",
|
||||||
|
"contents_url": "https://api.github.com/repos/binwiederhier/ntfy/contents/{+path}",
|
||||||
|
"compare_url": "https://api.github.com/repos/binwiederhier/ntfy/compare/{base}...{head}",
|
||||||
|
"merges_url": "https://api.github.com/repos/binwiederhier/ntfy/merges",
|
||||||
|
"archive_url": "https://api.github.com/repos/binwiederhier/ntfy/{archive_format}{/ref}",
|
||||||
|
"downloads_url": "https://api.github.com/repos/binwiederhier/ntfy/downloads",
|
||||||
|
"issues_url": "https://api.github.com/repos/binwiederhier/ntfy/issues{/number}",
|
||||||
|
"pulls_url": "https://api.github.com/repos/binwiederhier/ntfy/pulls{/number}",
|
||||||
|
"milestones_url": "https://api.github.com/repos/binwiederhier/ntfy/milestones{/number}",
|
||||||
|
"notifications_url": "https://api.github.com/repos/binwiederhier/ntfy/notifications{?since,all,participating}",
|
||||||
|
"labels_url": "https://api.github.com/repos/binwiederhier/ntfy/labels{/name}",
|
||||||
|
"releases_url": "https://api.github.com/repos/binwiederhier/ntfy/releases{/id}",
|
||||||
|
"deployments_url": "https://api.github.com/repos/binwiederhier/ntfy/deployments",
|
||||||
|
"created_at": "2021-10-23T19:25:32Z",
|
||||||
|
"updated_at": "2025-07-16T10:18:34Z",
|
||||||
|
"pushed_at": "2025-07-16T11:49:26Z",
|
||||||
|
"git_url": "git://github.com/binwiederhier/ntfy.git",
|
||||||
|
"ssh_url": "git@github.com:binwiederhier/ntfy.git",
|
||||||
|
"clone_url": "https://github.com/binwiederhier/ntfy.git",
|
||||||
|
"svn_url": "https://github.com/binwiederhier/ntfy",
|
||||||
|
"homepage": "https://ntfy.sh",
|
||||||
|
"size": 36740,
|
||||||
|
"stargazers_count": 25111,
|
||||||
|
"watchers_count": 25111,
|
||||||
|
"language": "Go",
|
||||||
|
"has_issues": true,
|
||||||
|
"has_projects": true,
|
||||||
|
"has_downloads": true,
|
||||||
|
"has_wiki": true,
|
||||||
|
"has_pages": false,
|
||||||
|
"has_discussions": false,
|
||||||
|
"forks_count": 984,
|
||||||
|
"mirror_url": null,
|
||||||
|
"archived": false,
|
||||||
|
"disabled": false,
|
||||||
|
"open_issues_count": 368,
|
||||||
|
"license": {
|
||||||
|
"key": "apache-2.0",
|
||||||
|
"name": "Apache License 2.0",
|
||||||
|
"spdx_id": "Apache-2.0",
|
||||||
|
"url": "https://api.github.com/licenses/apache-2.0",
|
||||||
|
"node_id": "MDc6TGljZW5zZTI="
|
||||||
|
},
|
||||||
|
"allow_forking": true,
|
||||||
|
"is_template": false,
|
||||||
|
"web_commit_signoff_required": false,
|
||||||
|
"topics": [
|
||||||
|
"curl",
|
||||||
|
"notifications",
|
||||||
|
"ntfy",
|
||||||
|
"ntfysh",
|
||||||
|
"pubsub",
|
||||||
|
"push-notifications",
|
||||||
|
"rest-api"
|
||||||
|
],
|
||||||
|
"visibility": "public",
|
||||||
|
"forks": 984,
|
||||||
|
"open_issues": 368,
|
||||||
|
"watchers": 25111,
|
||||||
|
"default_branch": "main",
|
||||||
|
"allow_squash_merge": true,
|
||||||
|
"allow_merge_commit": true,
|
||||||
|
"allow_rebase_merge": true,
|
||||||
|
"allow_auto_merge": true,
|
||||||
|
"delete_branch_on_merge": false,
|
||||||
|
"allow_update_branch": false,
|
||||||
|
"use_squash_pr_title_as_default": false,
|
||||||
|
"squash_merge_commit_message": "COMMIT_MESSAGES",
|
||||||
|
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
|
||||||
|
"merge_commit_message": "PR_TITLE",
|
||||||
|
"merge_commit_title": "MERGE_MESSAGE"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_links": {
|
||||||
|
"self": {
|
||||||
|
"href": "https://api.github.com/repos/binwiederhier/ntfy/pulls/1390"
|
||||||
|
},
|
||||||
|
"html": {
|
||||||
|
"href": "https://github.com/binwiederhier/ntfy/pull/1390"
|
||||||
|
},
|
||||||
|
"issue": {
|
||||||
|
"href": "https://api.github.com/repos/binwiederhier/ntfy/issues/1390"
|
||||||
|
},
|
||||||
|
"comments": {
|
||||||
|
"href": "https://api.github.com/repos/binwiederhier/ntfy/issues/1390/comments"
|
||||||
|
},
|
||||||
|
"review_comments": {
|
||||||
|
"href": "https://api.github.com/repos/binwiederhier/ntfy/pulls/1390/comments"
|
||||||
|
},
|
||||||
|
"review_comment": {
|
||||||
|
"href": "https://api.github.com/repos/binwiederhier/ntfy/pulls/comments{/number}"
|
||||||
|
},
|
||||||
|
"commits": {
|
||||||
|
"href": "https://api.github.com/repos/binwiederhier/ntfy/pulls/1390/commits"
|
||||||
|
},
|
||||||
|
"statuses": {
|
||||||
|
"href": "https://api.github.com/repos/binwiederhier/ntfy/statuses/b1e935da45365c5e7e731d544a1ad4c7ea3643cd"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"author_association": "OWNER",
|
||||||
|
"auto_merge": null,
|
||||||
|
"active_lock_reason": null,
|
||||||
|
"merged": false,
|
||||||
|
"mergeable": null,
|
||||||
|
"rebaseable": null,
|
||||||
|
"mergeable_state": "unknown",
|
||||||
|
"merged_by": null,
|
||||||
|
"comments": 0,
|
||||||
|
"review_comments": 0,
|
||||||
|
"maintainer_can_modify": false,
|
||||||
|
"commits": 7,
|
||||||
|
"additions": 5506,
|
||||||
|
"deletions": 42,
|
||||||
|
"changed_files": 58
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"id": 420503947,
|
||||||
|
"node_id": "R_kgDOGRBhiw",
|
||||||
|
"name": "ntfy",
|
||||||
|
"full_name": "binwiederhier/ntfy",
|
||||||
|
"private": false,
|
||||||
|
"owner": {
|
||||||
|
"login": "binwiederhier",
|
||||||
|
"id": 664597,
|
||||||
|
"node_id": "MDQ6VXNlcjY2NDU5Nw==",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/664597?v=4",
|
||||||
|
"gravatar_id": "",
|
||||||
|
"url": "https://api.github.com/users/binwiederhier",
|
||||||
|
"html_url": "https://github.com/binwiederhier",
|
||||||
|
"followers_url": "https://api.github.com/users/binwiederhier/followers",
|
||||||
|
"following_url": "https://api.github.com/users/binwiederhier/following{/other_user}",
|
||||||
|
"gists_url": "https://api.github.com/users/binwiederhier/gists{/gist_id}",
|
||||||
|
"starred_url": "https://api.github.com/users/binwiederhier/starred{/owner}{/repo}",
|
||||||
|
"subscriptions_url": "https://api.github.com/users/binwiederhier/subscriptions",
|
||||||
|
"organizations_url": "https://api.github.com/users/binwiederhier/orgs",
|
||||||
|
"repos_url": "https://api.github.com/users/binwiederhier/repos",
|
||||||
|
"events_url": "https://api.github.com/users/binwiederhier/events{/privacy}",
|
||||||
|
"received_events_url": "https://api.github.com/users/binwiederhier/received_events",
|
||||||
|
"type": "User",
|
||||||
|
"user_view_type": "public",
|
||||||
|
"site_admin": false
|
||||||
|
},
|
||||||
|
"html_url": "https://github.com/binwiederhier/ntfy",
|
||||||
|
"description": "Send push notifications to your phone or desktop using PUT/POST",
|
||||||
|
"fork": false,
|
||||||
|
"url": "https://api.github.com/repos/binwiederhier/ntfy",
|
||||||
|
"forks_url": "https://api.github.com/repos/binwiederhier/ntfy/forks",
|
||||||
|
"keys_url": "https://api.github.com/repos/binwiederhier/ntfy/keys{/key_id}",
|
||||||
|
"collaborators_url": "https://api.github.com/repos/binwiederhier/ntfy/collaborators{/collaborator}",
|
||||||
|
"teams_url": "https://api.github.com/repos/binwiederhier/ntfy/teams",
|
||||||
|
"hooks_url": "https://api.github.com/repos/binwiederhier/ntfy/hooks",
|
||||||
|
"issue_events_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/events{/number}",
|
||||||
|
"events_url": "https://api.github.com/repos/binwiederhier/ntfy/events",
|
||||||
|
"assignees_url": "https://api.github.com/repos/binwiederhier/ntfy/assignees{/user}",
|
||||||
|
"branches_url": "https://api.github.com/repos/binwiederhier/ntfy/branches{/branch}",
|
||||||
|
"tags_url": "https://api.github.com/repos/binwiederhier/ntfy/tags",
|
||||||
|
"blobs_url": "https://api.github.com/repos/binwiederhier/ntfy/git/blobs{/sha}",
|
||||||
|
"git_tags_url": "https://api.github.com/repos/binwiederhier/ntfy/git/tags{/sha}",
|
||||||
|
"git_refs_url": "https://api.github.com/repos/binwiederhier/ntfy/git/refs{/sha}",
|
||||||
|
"trees_url": "https://api.github.com/repos/binwiederhier/ntfy/git/trees{/sha}",
|
||||||
|
"statuses_url": "https://api.github.com/repos/binwiederhier/ntfy/statuses/{sha}",
|
||||||
|
"languages_url": "https://api.github.com/repos/binwiederhier/ntfy/languages",
|
||||||
|
"stargazers_url": "https://api.github.com/repos/binwiederhier/ntfy/stargazers",
|
||||||
|
"contributors_url": "https://api.github.com/repos/binwiederhier/ntfy/contributors",
|
||||||
|
"subscribers_url": "https://api.github.com/repos/binwiederhier/ntfy/subscribers",
|
||||||
|
"subscription_url": "https://api.github.com/repos/binwiederhier/ntfy/subscription",
|
||||||
|
"commits_url": "https://api.github.com/repos/binwiederhier/ntfy/commits{/sha}",
|
||||||
|
"git_commits_url": "https://api.github.com/repos/binwiederhier/ntfy/git/commits{/sha}",
|
||||||
|
"comments_url": "https://api.github.com/repos/binwiederhier/ntfy/comments{/number}",
|
||||||
|
"issue_comment_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/comments{/number}",
|
||||||
|
"contents_url": "https://api.github.com/repos/binwiederhier/ntfy/contents/{+path}",
|
||||||
|
"compare_url": "https://api.github.com/repos/binwiederhier/ntfy/compare/{base}...{head}",
|
||||||
|
"merges_url": "https://api.github.com/repos/binwiederhier/ntfy/merges",
|
||||||
|
"archive_url": "https://api.github.com/repos/binwiederhier/ntfy/{archive_format}{/ref}",
|
||||||
|
"downloads_url": "https://api.github.com/repos/binwiederhier/ntfy/downloads",
|
||||||
|
"issues_url": "https://api.github.com/repos/binwiederhier/ntfy/issues{/number}",
|
||||||
|
"pulls_url": "https://api.github.com/repos/binwiederhier/ntfy/pulls{/number}",
|
||||||
|
"milestones_url": "https://api.github.com/repos/binwiederhier/ntfy/milestones{/number}",
|
||||||
|
"notifications_url": "https://api.github.com/repos/binwiederhier/ntfy/notifications{?since,all,participating}",
|
||||||
|
"labels_url": "https://api.github.com/repos/binwiederhier/ntfy/labels{/name}",
|
||||||
|
"releases_url": "https://api.github.com/repos/binwiederhier/ntfy/releases{/id}",
|
||||||
|
"deployments_url": "https://api.github.com/repos/binwiederhier/ntfy/deployments",
|
||||||
|
"created_at": "2021-10-23T19:25:32Z",
|
||||||
|
"updated_at": "2025-07-16T10:18:34Z",
|
||||||
|
"pushed_at": "2025-07-16T11:49:26Z",
|
||||||
|
"git_url": "git://github.com/binwiederhier/ntfy.git",
|
||||||
|
"ssh_url": "git@github.com:binwiederhier/ntfy.git",
|
||||||
|
"clone_url": "https://github.com/binwiederhier/ntfy.git",
|
||||||
|
"svn_url": "https://github.com/binwiederhier/ntfy",
|
||||||
|
"homepage": "https://ntfy.sh",
|
||||||
|
"size": 36740,
|
||||||
|
"stargazers_count": 25111,
|
||||||
|
"watchers_count": 25111,
|
||||||
|
"language": "Go",
|
||||||
|
"has_issues": true,
|
||||||
|
"has_projects": true,
|
||||||
|
"has_downloads": true,
|
||||||
|
"has_wiki": true,
|
||||||
|
"has_pages": false,
|
||||||
|
"has_discussions": false,
|
||||||
|
"forks_count": 984,
|
||||||
|
"mirror_url": null,
|
||||||
|
"archived": false,
|
||||||
|
"disabled": false,
|
||||||
|
"open_issues_count": 368,
|
||||||
|
"license": {
|
||||||
|
"key": "apache-2.0",
|
||||||
|
"name": "Apache License 2.0",
|
||||||
|
"spdx_id": "Apache-2.0",
|
||||||
|
"url": "https://api.github.com/licenses/apache-2.0",
|
||||||
|
"node_id": "MDc6TGljZW5zZTI="
|
||||||
|
},
|
||||||
|
"allow_forking": true,
|
||||||
|
"is_template": false,
|
||||||
|
"web_commit_signoff_required": false,
|
||||||
|
"topics": [
|
||||||
|
"curl",
|
||||||
|
"notifications",
|
||||||
|
"ntfy",
|
||||||
|
"ntfysh",
|
||||||
|
"pubsub",
|
||||||
|
"push-notifications",
|
||||||
|
"rest-api"
|
||||||
|
],
|
||||||
|
"visibility": "public",
|
||||||
|
"forks": 984,
|
||||||
|
"open_issues": 368,
|
||||||
|
"watchers": 25111,
|
||||||
|
"default_branch": "main"
|
||||||
|
},
|
||||||
|
"sender": {
|
||||||
|
"login": "binwiederhier",
|
||||||
|
"id": 664597,
|
||||||
|
"node_id": "MDQ6VXNlcjY2NDU5Nw==",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/664597?v=4",
|
||||||
|
"gravatar_id": "",
|
||||||
|
"url": "https://api.github.com/users/binwiederhier",
|
||||||
|
"html_url": "https://github.com/binwiederhier",
|
||||||
|
"followers_url": "https://api.github.com/users/binwiederhier/followers",
|
||||||
|
"following_url": "https://api.github.com/users/binwiederhier/following{/other_user}",
|
||||||
|
"gists_url": "https://api.github.com/users/binwiederhier/gists{/gist_id}",
|
||||||
|
"starred_url": "https://api.github.com/users/binwiederhier/starred{/owner}{/repo}",
|
||||||
|
"subscriptions_url": "https://api.github.com/users/binwiederhier/subscriptions",
|
||||||
|
"organizations_url": "https://api.github.com/users/binwiederhier/orgs",
|
||||||
|
"repos_url": "https://api.github.com/users/binwiederhier/repos",
|
||||||
|
"events_url": "https://api.github.com/users/binwiederhier/events{/privacy}",
|
||||||
|
"received_events_url": "https://api.github.com/users/binwiederhier/received_events",
|
||||||
|
"type": "User",
|
||||||
|
"user_view_type": "public",
|
||||||
|
"site_admin": false
|
||||||
|
}
|
||||||
|
}
|
||||||
141
server/testdata/webhook_github_star_created.json
vendored
Normal file
141
server/testdata/webhook_github_star_created.json
vendored
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
{
|
||||||
|
"action": "created",
|
||||||
|
"starred_at": "2025-07-16T12:57:43Z",
|
||||||
|
"repository": {
|
||||||
|
"id": 420503947,
|
||||||
|
"node_id": "R_kgDOGRBhiw",
|
||||||
|
"name": "ntfy",
|
||||||
|
"full_name": "binwiederhier/ntfy",
|
||||||
|
"private": false,
|
||||||
|
"owner": {
|
||||||
|
"login": "binwiederhier",
|
||||||
|
"id": 664597,
|
||||||
|
"node_id": "MDQ6VXNlcjY2NDU5Nw==",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/664597?v=4",
|
||||||
|
"gravatar_id": "",
|
||||||
|
"url": "https://api.github.com/users/binwiederhier",
|
||||||
|
"html_url": "https://github.com/binwiederhier",
|
||||||
|
"followers_url": "https://api.github.com/users/binwiederhier/followers",
|
||||||
|
"following_url": "https://api.github.com/users/binwiederhier/following{/other_user}",
|
||||||
|
"gists_url": "https://api.github.com/users/binwiederhier/gists{/gist_id}",
|
||||||
|
"starred_url": "https://api.github.com/users/binwiederhier/starred{/owner}{/repo}",
|
||||||
|
"subscriptions_url": "https://api.github.com/users/binwiederhier/subscriptions",
|
||||||
|
"organizations_url": "https://api.github.com/users/binwiederhier/orgs",
|
||||||
|
"repos_url": "https://api.github.com/users/binwiederhier/repos",
|
||||||
|
"events_url": "https://api.github.com/users/binwiederhier/events{/privacy}",
|
||||||
|
"received_events_url": "https://api.github.com/users/binwiederhier/received_events",
|
||||||
|
"type": "User",
|
||||||
|
"user_view_type": "public",
|
||||||
|
"site_admin": false
|
||||||
|
},
|
||||||
|
"html_url": "https://github.com/binwiederhier/ntfy",
|
||||||
|
"description": "Send push notifications to your phone or desktop using PUT/POST",
|
||||||
|
"fork": false,
|
||||||
|
"url": "https://api.github.com/repos/binwiederhier/ntfy",
|
||||||
|
"forks_url": "https://api.github.com/repos/binwiederhier/ntfy/forks",
|
||||||
|
"keys_url": "https://api.github.com/repos/binwiederhier/ntfy/keys{/key_id}",
|
||||||
|
"collaborators_url": "https://api.github.com/repos/binwiederhier/ntfy/collaborators{/collaborator}",
|
||||||
|
"teams_url": "https://api.github.com/repos/binwiederhier/ntfy/teams",
|
||||||
|
"hooks_url": "https://api.github.com/repos/binwiederhier/ntfy/hooks",
|
||||||
|
"issue_events_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/events{/number}",
|
||||||
|
"events_url": "https://api.github.com/repos/binwiederhier/ntfy/events",
|
||||||
|
"assignees_url": "https://api.github.com/repos/binwiederhier/ntfy/assignees{/user}",
|
||||||
|
"branches_url": "https://api.github.com/repos/binwiederhier/ntfy/branches{/branch}",
|
||||||
|
"tags_url": "https://api.github.com/repos/binwiederhier/ntfy/tags",
|
||||||
|
"blobs_url": "https://api.github.com/repos/binwiederhier/ntfy/git/blobs{/sha}",
|
||||||
|
"git_tags_url": "https://api.github.com/repos/binwiederhier/ntfy/git/tags{/sha}",
|
||||||
|
"git_refs_url": "https://api.github.com/repos/binwiederhier/ntfy/git/refs{/sha}",
|
||||||
|
"trees_url": "https://api.github.com/repos/binwiederhier/ntfy/git/trees{/sha}",
|
||||||
|
"statuses_url": "https://api.github.com/repos/binwiederhier/ntfy/statuses/{sha}",
|
||||||
|
"languages_url": "https://api.github.com/repos/binwiederhier/ntfy/languages",
|
||||||
|
"stargazers_url": "https://api.github.com/repos/binwiederhier/ntfy/stargazers",
|
||||||
|
"contributors_url": "https://api.github.com/repos/binwiederhier/ntfy/contributors",
|
||||||
|
"subscribers_url": "https://api.github.com/repos/binwiederhier/ntfy/subscribers",
|
||||||
|
"subscription_url": "https://api.github.com/repos/binwiederhier/ntfy/subscription",
|
||||||
|
"commits_url": "https://api.github.com/repos/binwiederhier/ntfy/commits{/sha}",
|
||||||
|
"git_commits_url": "https://api.github.com/repos/binwiederhier/ntfy/git/commits{/sha}",
|
||||||
|
"comments_url": "https://api.github.com/repos/binwiederhier/ntfy/comments{/number}",
|
||||||
|
"issue_comment_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/comments{/number}",
|
||||||
|
"contents_url": "https://api.github.com/repos/binwiederhier/ntfy/contents/{+path}",
|
||||||
|
"compare_url": "https://api.github.com/repos/binwiederhier/ntfy/compare/{base}...{head}",
|
||||||
|
"merges_url": "https://api.github.com/repos/binwiederhier/ntfy/merges",
|
||||||
|
"archive_url": "https://api.github.com/repos/binwiederhier/ntfy/{archive_format}{/ref}",
|
||||||
|
"downloads_url": "https://api.github.com/repos/binwiederhier/ntfy/downloads",
|
||||||
|
"issues_url": "https://api.github.com/repos/binwiederhier/ntfy/issues{/number}",
|
||||||
|
"pulls_url": "https://api.github.com/repos/binwiederhier/ntfy/pulls{/number}",
|
||||||
|
"milestones_url": "https://api.github.com/repos/binwiederhier/ntfy/milestones{/number}",
|
||||||
|
"notifications_url": "https://api.github.com/repos/binwiederhier/ntfy/notifications{?since,all,participating}",
|
||||||
|
"labels_url": "https://api.github.com/repos/binwiederhier/ntfy/labels{/name}",
|
||||||
|
"releases_url": "https://api.github.com/repos/binwiederhier/ntfy/releases{/id}",
|
||||||
|
"deployments_url": "https://api.github.com/repos/binwiederhier/ntfy/deployments",
|
||||||
|
"created_at": "2021-10-23T19:25:32Z",
|
||||||
|
"updated_at": "2025-07-16T12:57:43Z",
|
||||||
|
"pushed_at": "2025-07-16T11:49:26Z",
|
||||||
|
"git_url": "git://github.com/binwiederhier/ntfy.git",
|
||||||
|
"ssh_url": "git@github.com:binwiederhier/ntfy.git",
|
||||||
|
"clone_url": "https://github.com/binwiederhier/ntfy.git",
|
||||||
|
"svn_url": "https://github.com/binwiederhier/ntfy",
|
||||||
|
"homepage": "https://ntfy.sh",
|
||||||
|
"size": 36831,
|
||||||
|
"stargazers_count": 25112,
|
||||||
|
"watchers_count": 25112,
|
||||||
|
"language": "Go",
|
||||||
|
"has_issues": true,
|
||||||
|
"has_projects": true,
|
||||||
|
"has_downloads": true,
|
||||||
|
"has_wiki": true,
|
||||||
|
"has_pages": false,
|
||||||
|
"has_discussions": false,
|
||||||
|
"forks_count": 984,
|
||||||
|
"mirror_url": null,
|
||||||
|
"archived": false,
|
||||||
|
"disabled": false,
|
||||||
|
"open_issues_count": 368,
|
||||||
|
"license": {
|
||||||
|
"key": "apache-2.0",
|
||||||
|
"name": "Apache License 2.0",
|
||||||
|
"spdx_id": "Apache-2.0",
|
||||||
|
"url": "https://api.github.com/licenses/apache-2.0",
|
||||||
|
"node_id": "MDc6TGljZW5zZTI="
|
||||||
|
},
|
||||||
|
"allow_forking": true,
|
||||||
|
"is_template": false,
|
||||||
|
"web_commit_signoff_required": false,
|
||||||
|
"topics": [
|
||||||
|
"curl",
|
||||||
|
"notifications",
|
||||||
|
"ntfy",
|
||||||
|
"ntfysh",
|
||||||
|
"pubsub",
|
||||||
|
"push-notifications",
|
||||||
|
"rest-api"
|
||||||
|
],
|
||||||
|
"visibility": "public",
|
||||||
|
"forks": 984,
|
||||||
|
"open_issues": 368,
|
||||||
|
"watchers": 25112,
|
||||||
|
"default_branch": "main"
|
||||||
|
},
|
||||||
|
"sender": {
|
||||||
|
"login": "mbilby",
|
||||||
|
"id": 51273322,
|
||||||
|
"node_id": "MDQ6VXNlcjUxMjczMzIy",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/51273322?v=4",
|
||||||
|
"gravatar_id": "",
|
||||||
|
"url": "https://api.github.com/users/mbilby",
|
||||||
|
"html_url": "https://github.com/mbilby",
|
||||||
|
"followers_url": "https://api.github.com/users/mbilby/followers",
|
||||||
|
"following_url": "https://api.github.com/users/mbilby/following{/other_user}",
|
||||||
|
"gists_url": "https://api.github.com/users/mbilby/gists{/gist_id}",
|
||||||
|
"starred_url": "https://api.github.com/users/mbilby/starred{/owner}{/repo}",
|
||||||
|
"subscriptions_url": "https://api.github.com/users/mbilby/subscriptions",
|
||||||
|
"organizations_url": "https://api.github.com/users/mbilby/orgs",
|
||||||
|
"repos_url": "https://api.github.com/users/mbilby/repos",
|
||||||
|
"events_url": "https://api.github.com/users/mbilby/events{/privacy}",
|
||||||
|
"received_events_url": "https://api.github.com/users/mbilby/received_events",
|
||||||
|
"type": "User",
|
||||||
|
"user_view_type": "public",
|
||||||
|
"site_admin": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
139
server/testdata/webhook_github_watch_created.json
vendored
Normal file
139
server/testdata/webhook_github_watch_created.json
vendored
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
{
|
||||||
|
"action": "started",
|
||||||
|
"repository": {
|
||||||
|
"id": 420503947,
|
||||||
|
"node_id": "R_kgDOGRBhiw",
|
||||||
|
"name": "ntfy",
|
||||||
|
"full_name": "binwiederhier/ntfy",
|
||||||
|
"private": false,
|
||||||
|
"owner": {
|
||||||
|
"login": "binwiederhier",
|
||||||
|
"id": 664597,
|
||||||
|
"node_id": "MDQ6VXNlcjY2NDU5Nw==",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/664597?v=4",
|
||||||
|
"gravatar_id": "",
|
||||||
|
"url": "https://api.github.com/users/binwiederhier",
|
||||||
|
"html_url": "https://github.com/binwiederhier",
|
||||||
|
"followers_url": "https://api.github.com/users/binwiederhier/followers",
|
||||||
|
"following_url": "https://api.github.com/users/binwiederhier/following{/other_user}",
|
||||||
|
"gists_url": "https://api.github.com/users/binwiederhier/gists{/gist_id}",
|
||||||
|
"starred_url": "https://api.github.com/users/binwiederhier/starred{/owner}{/repo}",
|
||||||
|
"subscriptions_url": "https://api.github.com/users/binwiederhier/subscriptions",
|
||||||
|
"organizations_url": "https://api.github.com/users/binwiederhier/orgs",
|
||||||
|
"repos_url": "https://api.github.com/users/binwiederhier/repos",
|
||||||
|
"events_url": "https://api.github.com/users/binwiederhier/events{/privacy}",
|
||||||
|
"received_events_url": "https://api.github.com/users/binwiederhier/received_events",
|
||||||
|
"type": "User",
|
||||||
|
"user_view_type": "public",
|
||||||
|
"site_admin": false
|
||||||
|
},
|
||||||
|
"html_url": "https://github.com/binwiederhier/ntfy",
|
||||||
|
"description": "Send push notifications to your phone or desktop using PUT/POST",
|
||||||
|
"fork": false,
|
||||||
|
"url": "https://api.github.com/repos/binwiederhier/ntfy",
|
||||||
|
"forks_url": "https://api.github.com/repos/binwiederhier/ntfy/forks",
|
||||||
|
"keys_url": "https://api.github.com/repos/binwiederhier/ntfy/keys{/key_id}",
|
||||||
|
"collaborators_url": "https://api.github.com/repos/binwiederhier/ntfy/collaborators{/collaborator}",
|
||||||
|
"teams_url": "https://api.github.com/repos/binwiederhier/ntfy/teams",
|
||||||
|
"hooks_url": "https://api.github.com/repos/binwiederhier/ntfy/hooks",
|
||||||
|
"issue_events_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/events{/number}",
|
||||||
|
"events_url": "https://api.github.com/repos/binwiederhier/ntfy/events",
|
||||||
|
"assignees_url": "https://api.github.com/repos/binwiederhier/ntfy/assignees{/user}",
|
||||||
|
"branches_url": "https://api.github.com/repos/binwiederhier/ntfy/branches{/branch}",
|
||||||
|
"tags_url": "https://api.github.com/repos/binwiederhier/ntfy/tags",
|
||||||
|
"blobs_url": "https://api.github.com/repos/binwiederhier/ntfy/git/blobs{/sha}",
|
||||||
|
"git_tags_url": "https://api.github.com/repos/binwiederhier/ntfy/git/tags{/sha}",
|
||||||
|
"git_refs_url": "https://api.github.com/repos/binwiederhier/ntfy/git/refs{/sha}",
|
||||||
|
"trees_url": "https://api.github.com/repos/binwiederhier/ntfy/git/trees{/sha}",
|
||||||
|
"statuses_url": "https://api.github.com/repos/binwiederhier/ntfy/statuses/{sha}",
|
||||||
|
"languages_url": "https://api.github.com/repos/binwiederhier/ntfy/languages",
|
||||||
|
"stargazers_url": "https://api.github.com/repos/binwiederhier/ntfy/stargazers",
|
||||||
|
"contributors_url": "https://api.github.com/repos/binwiederhier/ntfy/contributors",
|
||||||
|
"subscribers_url": "https://api.github.com/repos/binwiederhier/ntfy/subscribers",
|
||||||
|
"subscription_url": "https://api.github.com/repos/binwiederhier/ntfy/subscription",
|
||||||
|
"commits_url": "https://api.github.com/repos/binwiederhier/ntfy/commits{/sha}",
|
||||||
|
"git_commits_url": "https://api.github.com/repos/binwiederhier/ntfy/git/commits{/sha}",
|
||||||
|
"comments_url": "https://api.github.com/repos/binwiederhier/ntfy/comments{/number}",
|
||||||
|
"issue_comment_url": "https://api.github.com/repos/binwiederhier/ntfy/issues/comments{/number}",
|
||||||
|
"contents_url": "https://api.github.com/repos/binwiederhier/ntfy/contents/{+path}",
|
||||||
|
"compare_url": "https://api.github.com/repos/binwiederhier/ntfy/compare/{base}...{head}",
|
||||||
|
"merges_url": "https://api.github.com/repos/binwiederhier/ntfy/merges",
|
||||||
|
"archive_url": "https://api.github.com/repos/binwiederhier/ntfy/{archive_format}{/ref}",
|
||||||
|
"downloads_url": "https://api.github.com/repos/binwiederhier/ntfy/downloads",
|
||||||
|
"issues_url": "https://api.github.com/repos/binwiederhier/ntfy/issues{/number}",
|
||||||
|
"pulls_url": "https://api.github.com/repos/binwiederhier/ntfy/pulls{/number}",
|
||||||
|
"milestones_url": "https://api.github.com/repos/binwiederhier/ntfy/milestones{/number}",
|
||||||
|
"notifications_url": "https://api.github.com/repos/binwiederhier/ntfy/notifications{?since,all,participating}",
|
||||||
|
"labels_url": "https://api.github.com/repos/binwiederhier/ntfy/labels{/name}",
|
||||||
|
"releases_url": "https://api.github.com/repos/binwiederhier/ntfy/releases{/id}",
|
||||||
|
"deployments_url": "https://api.github.com/repos/binwiederhier/ntfy/deployments",
|
||||||
|
"created_at": "2021-10-23T19:25:32Z",
|
||||||
|
"updated_at": "2025-07-16T12:57:43Z",
|
||||||
|
"pushed_at": "2025-07-16T11:49:26Z",
|
||||||
|
"git_url": "git://github.com/binwiederhier/ntfy.git",
|
||||||
|
"ssh_url": "git@github.com:binwiederhier/ntfy.git",
|
||||||
|
"clone_url": "https://github.com/binwiederhier/ntfy.git",
|
||||||
|
"svn_url": "https://github.com/binwiederhier/ntfy",
|
||||||
|
"homepage": "https://ntfy.sh",
|
||||||
|
"size": 36831,
|
||||||
|
"stargazers_count": 25112,
|
||||||
|
"watchers_count": 25112,
|
||||||
|
"language": "Go",
|
||||||
|
"has_issues": true,
|
||||||
|
"has_projects": true,
|
||||||
|
"has_downloads": true,
|
||||||
|
"has_wiki": true,
|
||||||
|
"has_pages": false,
|
||||||
|
"has_discussions": false,
|
||||||
|
"forks_count": 984,
|
||||||
|
"mirror_url": null,
|
||||||
|
"archived": false,
|
||||||
|
"disabled": false,
|
||||||
|
"open_issues_count": 368,
|
||||||
|
"license": {
|
||||||
|
"key": "apache-2.0",
|
||||||
|
"name": "Apache License 2.0",
|
||||||
|
"spdx_id": "Apache-2.0",
|
||||||
|
"url": "https://api.github.com/licenses/apache-2.0",
|
||||||
|
"node_id": "MDc6TGljZW5zZTI="
|
||||||
|
},
|
||||||
|
"allow_forking": true,
|
||||||
|
"is_template": false,
|
||||||
|
"web_commit_signoff_required": false,
|
||||||
|
"topics": [
|
||||||
|
"curl",
|
||||||
|
"notifications",
|
||||||
|
"ntfy",
|
||||||
|
"ntfysh",
|
||||||
|
"pubsub",
|
||||||
|
"push-notifications",
|
||||||
|
"rest-api"
|
||||||
|
],
|
||||||
|
"visibility": "public",
|
||||||
|
"forks": 984,
|
||||||
|
"open_issues": 368,
|
||||||
|
"watchers": 25112,
|
||||||
|
"default_branch": "main"
|
||||||
|
},
|
||||||
|
"sender": {
|
||||||
|
"login": "mbilby",
|
||||||
|
"id": 51273322,
|
||||||
|
"node_id": "MDQ6VXNlcjUxMjczMzIy",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/51273322?v=4",
|
||||||
|
"gravatar_id": "",
|
||||||
|
"url": "https://api.github.com/users/mbilby",
|
||||||
|
"html_url": "https://github.com/mbilby",
|
||||||
|
"followers_url": "https://api.github.com/users/mbilby/followers",
|
||||||
|
"following_url": "https://api.github.com/users/mbilby/following{/other_user}",
|
||||||
|
"gists_url": "https://api.github.com/users/mbilby/gists{/gist_id}",
|
||||||
|
"starred_url": "https://api.github.com/users/mbilby/starred{/owner}{/repo}",
|
||||||
|
"subscriptions_url": "https://api.github.com/users/mbilby/subscriptions",
|
||||||
|
"organizations_url": "https://api.github.com/users/mbilby/orgs",
|
||||||
|
"repos_url": "https://api.github.com/users/mbilby/repos",
|
||||||
|
"events_url": "https://api.github.com/users/mbilby/events{/privacy}",
|
||||||
|
"received_events_url": "https://api.github.com/users/mbilby/received_events",
|
||||||
|
"type": "User",
|
||||||
|
"user_view_type": "public",
|
||||||
|
"site_admin": false
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user