Compare commits

...

5 Commits

Author SHA1 Message Date
Tom Alexander
5fb1982930
Mark internal_tracker as optional.
Some checks failed
semver Build semver has succeeded
format Build format has succeeded
clippy Build clippy has failed
build Build build has succeeded
rust-test Build rust-test has succeeded
2025-09-23 21:09:24 -04:00
Tom Alexander
ac3c23e65a
Switch to local-path-provisioner.
Some checks failed
format Build format has succeeded
clippy Build clippy has failed
rust-test Build rust-test has succeeded
semver Build semver has succeeded
build Build build has succeeded
2025-08-31 18:35:48 -04:00
Tom Alexander
3f2bdda8cb
Add support for new fields in payload.
All checks were successful
semver Build semver has succeeded
format Build format has succeeded
clippy Build clippy has succeeded
rust-test Build rust-test has succeeded
build Build build has succeeded
2025-02-08 21:11:23 -05:00
Tom Alexander
e7eeeefa53
Add back in docker targets.
All checks were successful
semver Build semver has succeeded
format Build format has succeeded
build Build build has succeeded
clippy Build clippy has succeeded
rust-test Build rust-test has succeeded
2024-10-20 23:12:52 -04:00
Tom Alexander
a17f6502c0
Use linked copy. 2024-10-20 23:03:40 -04:00
10 changed files with 139 additions and 92 deletions

View File

@ -146,6 +146,8 @@ spec:
value: $(params.path-to-dockerfile) value: $(params.path-to-dockerfile)
- name: EXTRA_ARGS - name: EXTRA_ARGS
value: value:
- "--opt"
- "target=$(params.target-name)"
- --import-cache - --import-cache
- "type=registry,ref=$(params.image-name):buildcache" - "type=registry,ref=$(params.image-name):buildcache"
- --export-cache - --export-cache
@ -233,7 +235,7 @@ spec:
- name: git-source - name: git-source
volumeClaimTemplate: volumeClaimTemplate:
spec: spec:
storageClassName: "nfs-client" storageClassName: "local-path"
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
resources: resources:

View File

@ -114,6 +114,8 @@ spec:
value: $(params.path-to-dockerfile) value: $(params.path-to-dockerfile)
- name: EXTRA_ARGS - name: EXTRA_ARGS
value: value:
- "--opt"
- "target=$(params.target-name)"
- --import-cache - --import-cache
- "type=registry,ref=$(params.image-name):buildcache" - "type=registry,ref=$(params.image-name):buildcache"
- --export-cache - --export-cache
@ -308,7 +310,7 @@ spec:
- name: git-source - name: git-source
volumeClaimTemplate: volumeClaimTemplate:
spec: spec:
storageClassName: "nfs-client" storageClassName: "local-path"
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
resources: resources:

View File

@ -114,6 +114,8 @@ spec:
value: $(params.path-to-dockerfile) value: $(params.path-to-dockerfile)
- name: EXTRA_ARGS - name: EXTRA_ARGS
value: value:
- "--opt"
- "target=$(params.target-name)"
- --import-cache - --import-cache
- "type=registry,ref=$(params.image-name):buildcache" - "type=registry,ref=$(params.image-name):buildcache"
- --export-cache - --export-cache
@ -287,7 +289,7 @@ spec:
- name: git-source - name: git-source
volumeClaimTemplate: volumeClaimTemplate:
spec: spec:
storageClassName: "nfs-client" storageClassName: "local-path"
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
resources: resources:

View File

@ -114,6 +114,8 @@ spec:
value: $(params.path-to-dockerfile) value: $(params.path-to-dockerfile)
- name: EXTRA_ARGS - name: EXTRA_ARGS
value: value:
- "--opt"
- "target=$(params.target-name)"
- --import-cache - --import-cache
- "type=registry,ref=$(params.image-name):buildcache" - "type=registry,ref=$(params.image-name):buildcache"
- --export-cache - --export-cache
@ -277,7 +279,7 @@ spec:
- name: git-source - name: git-source
volumeClaimTemplate: volumeClaimTemplate:
spec: spec:
storageClassName: "nfs-client" storageClassName: "local-path"
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
resources: resources:

View File

@ -177,7 +177,7 @@ spec:
- name: git-source - name: git-source
volumeClaimTemplate: volumeClaimTemplate:
spec: spec:
storageClassName: "nfs-client" storageClassName: "local-path"
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
resources: resources:

View File

@ -7,12 +7,12 @@ RUN apk add --no-cache musl-dev pkgconfig libressl-dev
RUN mkdir /source RUN mkdir /source
WORKDIR /source WORKDIR /source
COPY . . COPY --link . .
# TODO: Add static build, which currently errors due to proc_macro. RUSTFLAGS="-C target-feature=+crt-static" # TODO: Add static build, which currently errors due to proc_macro. RUSTFLAGS="-C target-feature=+crt-static"
RUN --mount=type=tmpfs,target=/tmp --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked CARGO_TARGET_DIR=/target cargo build --profile release-lto --bin webhook_bridge RUN --mount=type=tmpfs,target=/tmp --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked CARGO_TARGET_DIR=/target cargo build --profile release-lto --bin webhook_bridge
FROM alpine:$ALPINE_VERSION AS runner FROM alpine:$ALPINE_VERSION AS runner
COPY --from=builder /target/release-lto/webhook_bridge /usr/bin/ COPY --link --from=builder /target/release-lto/webhook_bridge /usr/bin/
ENTRYPOINT ["/usr/bin/webhook_bridge"] ENTRYPOINT ["/usr/bin/webhook_bridge"]

View File

@ -1,80 +1,115 @@
{ {
"ref": "refs/heads/main", "ref": "refs/heads/main",
"before": "f3b00c46ea57d5314063ad6fbfcaf9e38712cafe", "before": "69b891b59b1ee026e5bf2e7bee357eead5cbe546",
"after": "e991b259f2bdf3f24a2cba309a93d81f32ab7f50", "after": "5bd07a34780a5b4aaa9b5d0eef22b6e4ac1880a1",
"compare_url": "https://code.fizz.buzz/talexander/webhook_bridge/compare/f3b00c46ea57d5314063ad6fbfcaf9e38712cafe...e991b259f2bdf3f24a2cba309a93d81f32ab7f50", "compare_url": "https://code.fizz.buzz/mirror/org-mode/compare/69b891b59b1ee026e5bf2e7bee357eead5cbe546...5bd07a34780a5b4aaa9b5d0eef22b6e4ac1880a1",
"commits": [ "commits": [
{ {
"id": "e991b259f2bdf3f24a2cba309a93d81f32ab7f50", "id": "5bd07a34780a5b4aaa9b5d0eef22b6e4ac1880a1",
"message": "Add source_id to HookUser.\n\nThis must be a new field that gitea added in an update.\n", "message": "; Fix eaten escaping backslash in the documentation\n\n* lisp/org-keys.el (org-use-speed-commands): Add a missing backslash\nto the documentation string of the custom variable. Also, update\n`setq' to `setopt' and re-indent for clarity.\n",
"url": "https://code.fizz.buzz/talexander/webhook_bridge/commit/e991b259f2bdf3f24a2cba309a93d81f32ab7f50", "url": "https://code.fizz.buzz/mirror/org-mode/commit/5bd07a34780a5b4aaa9b5d0eef22b6e4ac1880a1",
"author": { "author": {
"name": "Tom Alexander", "name": "Rudolf Adamkovič",
"email": "tom@fizz.buzz", "email": "rudolf@adamkovic.org",
"username": "" "username": ""
}, },
"committer": { "committer": {
"name": "Tom Alexander", "name": "Rudolf Adamkovič",
"email": "tom@fizz.buzz", "email": "rudolf@adamkovic.org",
"username": "" "username": ""
}, },
"verification": null, "verification": null,
"timestamp": "2024-10-18T19:41:56-04:00", "timestamp": "2025-08-17T14:12:07+02:00",
"added": [], "added": [],
"removed": [], "removed": [],
"modified": [ "modified": [
".webhook_bridge/pipeline-build-semver.yaml", "lisp/org-keys.el"
".webhook_bridge/pipeline-format.yaml", ]
".webhook_bridge/pipeline-rust-clippy.yaml", },
".webhook_bridge/pipeline-rust-test.yaml", {
".webhook_bridge/pipeline-semver.yaml", "id": "b0f793ff0a31adb520fc5989b0399786663192ea",
"src/hook_push.rs" "message": "Support arrow keys and mouse wheel in export dispatcher\n\n* lisp/ox.el (org-export--dispatch-action): Translate down/up arrow\nkeys and scroll wheel to C-n/C-p, respectively.\n* etc/ORG-NEWS (Fancy HTML5 export uses ~<time>~ element for\ntimestamps): Document the change from the perspective of the user.\n",
"url": "https://code.fizz.buzz/mirror/org-mode/commit/b0f793ff0a31adb520fc5989b0399786663192ea",
"author": {
"name": "Rudolf Adamkovič",
"email": "rudolf@adamkovic.org",
"username": ""
},
"committer": {
"name": "Rudolf Adamkovič",
"email": "rudolf@adamkovic.org",
"username": ""
},
"verification": null,
"timestamp": "2025-08-11T16:44:59+02:00",
"added": [],
"removed": [],
"modified": [
"etc/ORG-NEWS",
"lisp/ox.el"
]
},
{
"id": "bea0bfc3d6eaddad13a3fb9106ff9e7faa73e970",
"message": "; Fix grammar and improve ol-info documentation\n\n* lisp/ol-info.el:\n(org-info--link-file-node):\n(org-info-description-as-command):\n(org-info-other-documents):\n(org-info-map-html-url):\n(org-info--expand-node-name):\n(org-info-export): Fix grammar, capitalize \"Info\", and improve wording\nof docstrings.\n",
"url": "https://code.fizz.buzz/mirror/org-mode/commit/bea0bfc3d6eaddad13a3fb9106ff9e7faa73e970",
"author": {
"name": "Steven Allen",
"email": "steven@stebalien.com",
"username": ""
},
"committer": {
"name": "Rudolf Adamkovič",
"email": "rudolf@adamkovic.org",
"username": ""
},
"verification": null,
"timestamp": "2025-09-17T17:13:51-07:00",
"added": [],
"removed": [],
"modified": [
"lisp/ol-info.el"
] ]
} }
], ],
"total_commits": 1, "total_commits": 3,
"head_commit": { "head_commit": {
"id": "e991b259f2bdf3f24a2cba309a93d81f32ab7f50", "id": "5bd07a34780a5b4aaa9b5d0eef22b6e4ac1880a1",
"message": "Add source_id to HookUser.\n\nThis must be a new field that gitea added in an update.\n", "message": "; Fix eaten escaping backslash in the documentation\n\n* lisp/org-keys.el (org-use-speed-commands): Add a missing backslash\nto the documentation string of the custom variable. Also, update\n`setq' to `setopt' and re-indent for clarity.\n",
"url": "https://code.fizz.buzz/talexander/webhook_bridge/commit/e991b259f2bdf3f24a2cba309a93d81f32ab7f50", "url": "https://code.fizz.buzz/mirror/org-mode/commit/5bd07a34780a5b4aaa9b5d0eef22b6e4ac1880a1",
"author": { "author": {
"name": "Tom Alexander", "name": "Rudolf Adamkovič",
"email": "tom@fizz.buzz", "email": "rudolf@adamkovic.org",
"username": "" "username": ""
}, },
"committer": { "committer": {
"name": "Tom Alexander", "name": "Rudolf Adamkovič",
"email": "tom@fizz.buzz", "email": "rudolf@adamkovic.org",
"username": "" "username": ""
}, },
"verification": null, "verification": null,
"timestamp": "2024-10-18T19:41:56-04:00", "timestamp": "2025-08-17T14:12:07+02:00",
"added": [], "added": [],
"removed": [], "removed": [],
"modified": [ "modified": [
".webhook_bridge/pipeline-build-semver.yaml", "lisp/org-keys.el"
".webhook_bridge/pipeline-format.yaml",
".webhook_bridge/pipeline-rust-clippy.yaml",
".webhook_bridge/pipeline-rust-test.yaml",
".webhook_bridge/pipeline-semver.yaml",
"src/hook_push.rs"
] ]
}, },
"repository": { "repository": {
"id": 21, "id": 24,
"owner": { "owner": {
"id": 1, "id": 3,
"login": "talexander", "login": "mirror",
"login_name": "", "login_name": "",
"source_id": 0, "source_id": 0,
"full_name": "", "full_name": "",
"email": "gitea@local.domain", "email": "",
"avatar_url": "https://code.fizz.buzz/avatars/9d402a89b5a0786f83c1b8c5486fc7ff3d083a54fe20e55c0a776a1932c30289", "avatar_url": "https://code.fizz.buzz/avatars/fbe322a89bc0ba531c3f0050e3935f28",
"html_url": "https://code.fizz.buzz/talexander", "html_url": "https://code.fizz.buzz/mirror",
"language": "", "language": "",
"is_admin": false, "is_admin": false,
"last_login": "0001-01-01T00:00:00Z", "last_login": "0001-01-01T00:00:00Z",
"created": "2023-07-05T22:03:28Z", "created": "2024-09-30T16:24:55Z",
"restricted": false, "restricted": false,
"active": false, "active": false,
"prohibit_login": false, "prohibit_login": false,
@ -85,26 +120,26 @@
"followers_count": 0, "followers_count": 0,
"following_count": 0, "following_count": 0,
"starred_repos_count": 0, "starred_repos_count": 0,
"username": "talexander" "username": "mirror"
}, },
"name": "webhook_bridge", "name": "org-mode",
"full_name": "talexander/webhook_bridge", "full_name": "mirror/org-mode",
"description": "A server that receives webhooks from gitea and fires off Tekton jobs in response.", "description": "This is a mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git for CI/development purposes because the upstream savannah git repo is flakey.",
"empty": false, "empty": false,
"private": false, "private": false,
"fork": false, "fork": false,
"template": false, "template": false,
"parent": null, "parent": null,
"mirror": false, "mirror": true,
"size": 151, "size": 119577,
"language": "", "language": "",
"languages_url": "https://code.fizz.buzz/api/v1/repos/talexander/webhook_bridge/languages", "languages_url": "https://code.fizz.buzz/api/v1/repos/mirror/org-mode/languages",
"html_url": "https://code.fizz.buzz/talexander/webhook_bridge", "html_url": "https://code.fizz.buzz/mirror/org-mode",
"url": "https://code.fizz.buzz/api/v1/repos/talexander/webhook_bridge", "url": "https://code.fizz.buzz/api/v1/repos/mirror/org-mode",
"link": "", "link": "",
"ssh_url": "git@code.fizz.buzz:talexander/webhook_bridge.git", "ssh_url": "git@code.fizz.buzz:mirror/org-mode.git",
"clone_url": "https://code.fizz.buzz/talexander/webhook_bridge.git", "clone_url": "https://code.fizz.buzz/mirror/org-mode.git",
"original_url": "", "original_url": "https://git.savannah.gnu.org/git/emacs/org-mode.git",
"website": "", "website": "",
"stars_count": 0, "stars_count": 0,
"forks_count": 0, "forks_count": 0,
@ -114,57 +149,54 @@
"release_counter": 0, "release_counter": 0,
"default_branch": "main", "default_branch": "main",
"archived": false, "archived": false,
"created_at": "2024-07-14T18:48:52Z", "created_at": "2024-09-30T16:27:01Z",
"updated_at": "2024-09-30T04:41:20Z", "updated_at": "2025-09-09T08:46:53Z",
"archived_at": "1970-01-01T00:00:00Z", "archived_at": "1970-01-01T00:00:00Z",
"permissions": { "permissions": {
"admin": true, "admin": true,
"push": true, "push": true,
"pull": true "pull": true
}, },
"has_issues": true, "has_issues": false,
"internal_tracker": {
"enable_time_tracker": true,
"allow_only_contributors_to_track_time": true,
"enable_issue_dependencies": true
},
"has_wiki": false, "has_wiki": false,
"has_pull_requests": true, "has_pull_requests": false,
"has_projects": false, "has_projects": false,
"projects_mode": "all", "projects_mode": "all",
"has_releases": true, "has_releases": false,
"has_packages": false, "has_packages": false,
"has_actions": false, "has_actions": false,
"ignore_whitespace_conflicts": false, "ignore_whitespace_conflicts": false,
"allow_merge_commits": true, "allow_merge_commits": false,
"allow_rebase": true, "allow_rebase": false,
"allow_rebase_explicit": true, "allow_rebase_explicit": false,
"allow_squash_merge": true, "allow_squash_merge": false,
"allow_fast_forward_only_merge": false, "allow_fast_forward_only_merge": false,
"allow_rebase_update": true, "allow_rebase_update": false,
"default_delete_branch_after_merge": false, "default_delete_branch_after_merge": false,
"default_merge_style": "merge", "default_merge_style": "merge",
"default_allow_maintainer_edit": false, "default_allow_maintainer_edit": false,
"avatar_url": "", "avatar_url": "",
"internal": false, "internal": false,
"mirror_interval": "", "mirror_interval": "24h0m0s",
"object_format_name": "sha1", "object_format_name": "sha1",
"mirror_updated": "0001-01-01T00:00:00Z", "mirror_updated": "2025-09-24T00:51:19Z",
"repo_transfer": null "repo_transfer": null,
"topics": null,
"licenses": null
}, },
"pusher": { "pusher": {
"id": 1, "id": 3,
"login": "talexander", "login": "mirror",
"login_name": "", "login_name": "",
"source_id": 0, "source_id": 0,
"full_name": "", "full_name": "",
"email": "talexander@noreply.code.fizz.buzz", "email": "mirror@noreply.code.fizz.buzz",
"avatar_url": "https://code.fizz.buzz/avatars/9d402a89b5a0786f83c1b8c5486fc7ff3d083a54fe20e55c0a776a1932c30289", "avatar_url": "https://code.fizz.buzz/avatars/fbe322a89bc0ba531c3f0050e3935f28",
"html_url": "https://code.fizz.buzz/talexander", "html_url": "https://code.fizz.buzz/mirror",
"language": "", "language": "",
"is_admin": false, "is_admin": false,
"last_login": "0001-01-01T00:00:00Z", "last_login": "0001-01-01T00:00:00Z",
"created": "2023-07-05T22:03:28Z", "created": "2024-09-30T16:24:55Z",
"restricted": false, "restricted": false,
"active": false, "active": false,
"prohibit_login": false, "prohibit_login": false,
@ -175,21 +207,21 @@
"followers_count": 0, "followers_count": 0,
"following_count": 0, "following_count": 0,
"starred_repos_count": 0, "starred_repos_count": 0,
"username": "talexander" "username": "mirror"
}, },
"sender": { "sender": {
"id": 1, "id": 3,
"login": "talexander", "login": "mirror",
"login_name": "", "login_name": "",
"source_id": 0, "source_id": 0,
"full_name": "", "full_name": "",
"email": "talexander@noreply.code.fizz.buzz", "email": "mirror@noreply.code.fizz.buzz",
"avatar_url": "https://code.fizz.buzz/avatars/9d402a89b5a0786f83c1b8c5486fc7ff3d083a54fe20e55c0a776a1932c30289", "avatar_url": "https://code.fizz.buzz/avatars/fbe322a89bc0ba531c3f0050e3935f28",
"html_url": "https://code.fizz.buzz/talexander", "html_url": "https://code.fizz.buzz/mirror",
"language": "", "language": "",
"is_admin": false, "is_admin": false,
"last_login": "0001-01-01T00:00:00Z", "last_login": "0001-01-01T00:00:00Z",
"created": "2023-07-05T22:03:28Z", "created": "2024-09-30T16:24:55Z",
"restricted": false, "restricted": false,
"active": false, "active": false,
"prohibit_login": false, "prohibit_login": false,
@ -200,6 +232,6 @@
"followers_count": 0, "followers_count": 0,
"following_count": 0, "following_count": 0,
"starred_repos_count": 0, "starred_repos_count": 0,
"username": "talexander" "username": "mirror"
} }
} }

View File

@ -4,4 +4,4 @@ set -euo pipefail
IFS=$'\n\t' IFS=$'\n\t'
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
RUST_LOG=webhook_bridge=DEBUG WEBHOOK_BRIDGE_API_ROOT="https://code.fizz.buzz/api" WEBHOOK_BRIDGE_HMAC_SECRET=$(cat /bridge/git/mrmanager/k8s/webhook-bridge/secrets/webhook-bridge/webhook-bridge/HMAC_TOKEN) WEBHOOK_BRIDGE_OAUTH_TOKEN=$(cat /bridge/git/mrmanager/k8s/webhook-bridge/secrets/webhook-bridge/webhook-bridge/OAUTH_TOKEN) cargo run exec env RUST_LOG=webhook_bridge=DEBUG WEBHOOK_BRIDGE_API_ROOT="https://code.fizz.buzz/api" WEBHOOK_BRIDGE_HMAC_SECRET=$(cat /bridge/git/mrmanager/k8s/webhook_bridge/secrets/webhook-bridge/webhook-bridge/HMAC_TOKEN) WEBHOOK_BRIDGE_OAUTH_TOKEN=$(cat /bridge/git/mrmanager/k8s/webhook_bridge/secrets/webhook-bridge/webhook-bridge/OAUTH_TOKEN) WEBHOOK_BRIDGE_REPO_WHITELIST="talexander/webhook_bridge,talexander/homepage,talexander/natter,talexander/poudboot,talexander/ta_waybar_pipewire,talexander/organic" cargo run "${@}"

4
rust-toolchain.toml Normal file
View File

@ -0,0 +1,4 @@
[toolchain]
channel = "nightly"
profile = "default"
components = ["clippy", "rustfmt"]

View File

@ -89,7 +89,8 @@ pub(crate) struct HookRepository {
archived_at: String, // TODO: parse to datetime archived_at: String, // TODO: parse to datetime
permissions: HookRepositoryPermissions, permissions: HookRepositoryPermissions,
has_issues: bool, has_issues: bool,
internal_tracker: HookRepositoryInternalTracker, #[serde(default, skip_serializing_if = "Option::is_none")]
internal_tracker: Option<HookRepositoryInternalTracker>,
has_wiki: bool, has_wiki: bool,
has_pull_requests: bool, has_pull_requests: bool,
has_projects: bool, has_projects: bool,
@ -113,6 +114,8 @@ pub(crate) struct HookRepository {
object_format_name: String, object_format_name: String,
mirror_updated: String, // TODO: parse to datetime mirror_updated: String, // TODO: parse to datetime
repo_transfer: Value, // Was null in test hook repo_transfer: Value, // Was null in test hook
topics: Value, // Was null in test hook
licenses: Value, // Was null in test hook
} }
#[allow(dead_code)] #[allow(dead_code)]