diff --git a/.github/workflows/auto-release.yml b/.forgejo/workflows/auto-release.yml similarity index 95% rename from .github/workflows/auto-release.yml rename to .forgejo/workflows/auto-release.yml index 50510f9..b30d5b6 100644 --- a/.github/workflows/auto-release.yml +++ b/.forgejo/workflows/auto-release.yml @@ -9,7 +9,7 @@ permissions: contents: write env: - GITHUB_TOKEN: ${{ secrets.RELEASE_IT_TOKEN }} + GITEA_TOKEN: ${{ secrets.RELEASE_IT_TOKEN }} jobs: check-and-release: @@ -39,13 +39,13 @@ jobs: - name: Configure Git User run: | - git config user.name "${{ github.actor }}" - git config user.email "${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com" + git config user.name "release-bot" + git config user.email "release-bot@users.noreply.codeberg.org" - name: Check release conditions id: check_conditions env: - RENOVATE_AUTHOR_EMAIL: "29139614+renovate[bot]@users.noreply.github.com" + RENOVATE_AUTHOR_EMAIL: "renovate[bot]@users.noreply.codeberg.org" run: | echo "Checking conditions for automated release..." SHOULD_RELEASE="false" diff --git a/.github/workflows/build.yml b/.forgejo/workflows/build.yml similarity index 100% rename from .github/workflows/build.yml rename to .forgejo/workflows/build.yml diff --git a/.github/workflows/publish.yml b/.forgejo/workflows/publish.yml similarity index 81% rename from .github/workflows/publish.yml rename to .forgejo/workflows/publish.yml index b88cb99..02ed58e 100644 --- a/.github/workflows/publish.yml +++ b/.forgejo/workflows/publish.yml @@ -10,7 +10,6 @@ jobs: permissions: contents: read - id-token: write steps: - name: Checkout repository @@ -29,9 +28,6 @@ jobs: registry-url: "https://registry.npmjs.org" scope: "@tf2pickup-org" - - name: Upgrade npm for trusted publishing - run: npm install -g npm@latest - - name: Install dependencies run: pnpm install @@ -45,4 +41,6 @@ jobs: run: pnpm build - name: Publish - run: pnpm publish --access public --no-git-checks --provenance + run: pnpm publish --access public --no-git-checks + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/release.yml b/.forgejo/workflows/release.yml similarity index 86% rename from .github/workflows/release.yml rename to .forgejo/workflows/release.yml index d86cbe4..3b9edee 100644 --- a/.github/workflows/release.yml +++ b/.forgejo/workflows/release.yml @@ -5,7 +5,7 @@ on: env: NODE_VERSION: 20.x - GITHUB_TOKEN: ${{ secrets.RELEASE_IT_TOKEN }} + GITEA_TOKEN: ${{ secrets.RELEASE_IT_TOKEN }} jobs: release: @@ -37,7 +37,7 @@ jobs: - name: Set git identity run: | git config user.name "release bot" - git config user.email "release-bot@users.noreply.github.com" + git config user.email "release-bot@users.noreply.codeberg.org" - name: Release run: pnpm exec release-it --ci diff --git a/.release-it.json b/.release-it.json index 2ebd101..25b53a0 100644 --- a/.release-it.json +++ b/.release-it.json @@ -2,8 +2,9 @@ "git": { "commitMessage": "chore: release version ${version}" }, - "github": { - "release": true + "gitea": { + "release": true, + "host": "https://codeberg.org" }, "npm": { "publish": false diff --git a/Mumble.proto b/Mumble.proto index 169c18a..deb6c17 100644 --- a/Mumble.proto +++ b/Mumble.proto @@ -96,6 +96,8 @@ message Reject { // The user did not provide a certificate but one is required. NoCertificate = 7; AuthenticatorFail = 8; + // The server is currently not accepting new connections + NoNewConnections = 9; } // Rejection type. optional RejectType type = 1; @@ -173,8 +175,12 @@ message UserRemove { optional uint32 actor = 2; // Reason for the kick, stored as the ban reason if the user is banned. optional string reason = 3; - // True if the kick should result in a ban. + // True if the user shall be banned, false if the user shall be kicked optional bool ban = 4; + // True if the user shall be banned by certificate. + optional bool ban_certificate = 5; + // True if the user shall be banned by IP. + optional bool ban_ip = 6; } // Sent by the server when it communicates new and changed users to client. @@ -513,6 +519,15 @@ message UserStats { optional uint32 resync = 4; } + message RollingStats { + // Rolling packet statistics time window as defined on the server. + optional uint32 time_window = 1; + // Rolling packet statistics for packets received from the client. + optional Stats from_client = 2; + // Rolling packet statistics for packets sent by the server. + optional Stats from_server = 3; + } + // User whose stats these are. optional uint32 session = 1; // True if the message contains only mutable stats (packets, ping). @@ -553,6 +568,9 @@ message UserStats { // True if the user has a strong certificate. optional bool strong_certificate = 18 [default = false]; optional bool opus = 19 [default = false]; + + // Rolling packet statistics + optional RollingStats rolling_stats = 20; } // Used by the client to request binary data from the server. By default large