misskey-dev / misskey

🌎 A completely free and open interplanetary microblogging platform 🚀
https://misskey-hub.net/
GNU Affero General Public License v3.0
10.09k stars 1.38k forks source link

refactor: Proxyアカウントをシステムアカウントにしてわかりやすくした #15025

Closed sakuhanight closed 13 hours ago

sakuhanight commented 13 hours ago

What

Why

14857

Additional info (optional)

Checklist

codecov[bot] commented 13 hours ago

Codecov Report

Attention: Patch coverage is 46.94590% with 608 lines in your changes missing coverage. Please review.

Project coverage is 40.67%. Comparing base (0df6c79) to head (fde1733). Report is 23 commits behind head on develop.

Files with missing lines Patch % Lines
...server/api/endpoints/admin/update-proxy-account.ts 43.42% 198 Missing :warning:
packages/frontend/src/pages/admin/settings.vue 0.00% 122 Missing :warning:
packages/backend/src/core/UserBlockingService.ts 13.40% 84 Missing :warning:
...ackages/frontend/src/pages/settings/mute-block.vue 0.00% 48 Missing :warning:
...ver/api/endpoints/blocking-reaction-user/delete.ts 58.03% 47 Missing :warning:
...ver/api/endpoints/blocking-reaction-user/create.ts 58.55% 46 Missing :warning:
...erver/api/endpoints/blocking-reaction-user/list.ts 68.25% 20 Missing :warning:
packages/backend/src/core/ProxyAccountService.ts 38.70% 19 Missing :warning:
packages/frontend/src/scripts/get-user-menu.ts 0.00% 14 Missing :warning:
packages/backend/src/core/QueryService.ts 20.00% 4 Missing :warning:
... and 4 more
Additional details and impacted files ```diff @@ Coverage Diff @@ ## develop #15025 +/- ## =========================================== + Coverage 39.97% 40.67% +0.69% =========================================== Files 1561 1571 +10 Lines 197313 204637 +7324 Branches 3622 3365 -257 =========================================== + Hits 78878 83232 +4354 - Misses 117829 120794 +2965 - Partials 606 611 +5 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


🚨 Try these New Features:

github-actions[bot] commented 13 hours ago

このPRによるapi.jsonの差分

差分はこちら ```diff --- base +++ head @@ -4896,6 +4896,303 @@ } } }, + "/admin/update-proxy-account": { + "post": { + "operationId": "admin___update-proxy-account", + "summary": "admin/update-proxy-account", + "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:admin:update-proxy-account*", + "externalDocs": { + "description": "Source code", + "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/admin/update-proxy-account.ts" + }, + "tags": [ + "admin" + ], + "security": [ + { + "bearerAuth": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "minLength": 1, + "maxLength": 50 + }, + "description": { + "type": [ + "string", + "null" + ], + "minLength": 1, + "maxLength": 1500 + }, + "avatarId": { + "type": [ + "string", + "null" + ], + "format": "misskey:id" + }, + "bannerId": { + "type": [ + "string", + "null" + ], + "format": "misskey:id" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK (with results)", + "content": { + "application/json": { + "schema": { + "type": "object", + "$ref": "#/components/schemas/UserDetailed" + } + } + } + }, + "400": { + "description": "Client error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "NO_SUCH_AVATAR": { + "value": { + "error": { + "message": "No such avatar file.", + "code": "NO_SUCH_AVATAR", + "id": "539f3a45-f215-4f81-a9a8-31293640207f" + } + } + }, + "NO_SUCH_BANNER": { + "value": { + "error": { + "message": "No such banner file.", + "code": "NO_SUCH_BANNER", + "id": "0d8f5629-f210-41c2-9433-735831a58595" + } + } + }, + "AVATAR_NOT_AN_IMAGE": { + "value": { + "error": { + "message": "The file specified as an avatar is not an image.", + "code": "AVATAR_NOT_AN_IMAGE", + "id": "f419f9f8-2f4d-46b1-9fb4-49d3a2fd7191" + } + } + }, + "BANNER_NOT_AN_IMAGE": { + "value": { + "error": { + "message": "The file specified as a banner is not an image.", + "code": "BANNER_NOT_AN_IMAGE", + "id": "75aedb19-2afd-4e6d-87fc-67941256fa60" + } + } + }, + "NO_SUCH_PAGE": { + "value": { + "error": { + "message": "No such page.", + "code": "NO_SUCH_PAGE", + "id": "8e01b590-7eb9-431b-a239-860e086c408e" + } + } + }, + "INVALID_REGEXP": { + "value": { + "error": { + "message": "Invalid Regular Expression.", + "code": "INVALID_REGEXP", + "id": "0d786918-10df-41cd-8f33-8dec7d9a89a5" + } + } + }, + "TOO_MANY_MUTED_WORDS": { + "value": { + "error": { + "message": "Too many muted words.", + "code": "TOO_MANY_MUTED_WORDS", + "id": "010665b1-a211-42d2-bc64-8f6609d79785" + } + } + }, + "NO_SUCH_USER": { + "value": { + "error": { + "message": "No such user.", + "code": "NO_SUCH_USER", + "id": "fcd2eef9-a9b2-4c4f-8624-038099e90aa5" + } + } + }, + "URI_NULL": { + "value": { + "error": { + "message": "User ActivityPup URI is null.", + "code": "URI_NULL", + "id": "bf326f31-d430-4f97-9933-5d61e4d48a23" + } + } + }, + "FORBIDDEN_TO_SET_YOURSELF": { + "value": { + "error": { + "message": "You can't set yourself as your own alias.", + "code": "FORBIDDEN_TO_SET_YOURSELF", + "id": "25c90186-4ab0-49c8-9bba-a1fa6c202ba4" + } + } + }, + "RESTRICTED_BY_ROLE": { + "value": { + "error": { + "message": "This feature is restricted by your role.", + "code": "RESTRICTED_BY_ROLE", + "id": "8feff0ba-5ab5-585b-31f4-4df816663fad" + } + } + }, + "YOUR_NAME_CONTAINS_PROHIBITED_WORDS": { + "value": { + "error": { + "message": "Your new name contains prohibited words.", + "code": "YOUR_NAME_CONTAINS_PROHIBITED_WORDS", + "id": "0b3f9f6a-2f4d-4b1f-9fb4-49d3a2fd7191", + "httpStatusCode": 422 + } + } + }, + "ACCESS_DENIED": { + "value": { + "error": { + "message": "Only administrators can edit members of the role.", + "code": "ACCESS_DENIED", + "id": "25b5bc31-dc79-4ebd-9bd2-c84978fd052c" + } + } + }, + "INVALID_PARAM": { + "value": { + "error": { + "message": "Invalid param.", + "code": "INVALID_PARAM", + "id": "3d81ceae-475f-4600-b2a8-2bc116157532" + } + } + } + } + } + } + }, + "401": { + "description": "Authentication error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "CREDENTIAL_REQUIRED": { + "value": { + "error": { + "message": "Credential required.", + "code": "CREDENTIAL_REQUIRED", + "id": "1384574d-a912-4b81-8601-c7b1c4085df1" + } + } + } + } + } + } + }, + "403": { + "description": "Forbidden error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "AUTHENTICATION_FAILED": { + "value": { + "error": { + "message": "Authentication failed. Please ensure your token is correct.", + "code": "AUTHENTICATION_FAILED", + "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14" + } + } + } + } + } + } + }, + "418": { + "description": "I'm Ai", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "I_AM_AI": { + "value": { + "error": { + "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.", + "code": "I_AM_AI", + "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "INTERNAL_ERROR": { + "value": { + "error": { + "message": "Internal error occurred. Please contact us if the error persists.", + "code": "INTERNAL_ERROR", + "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac" + } + } + } + } + } + } + } + } + } + }, "/admin/unset-user-avatar": { "post": { "operationId": "admin___unset-user-avatar", @@ -20952,6 +21249,580 @@ } } }, + "/blocking-reaction-user/create": { + "post": { + "operationId": "blocking-reaction-user___create", + "summary": "blocking-reaction-user/create", + "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:blocks*", + "externalDocs": { + "description": "Source code", + "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/blocking-reaction-user/create.ts" + }, + "tags": [ + "account" + ], + "security": [ + { + "bearerAuth": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "misskey:id" + } + }, + "required": [ + "userId" + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK (with results)", + "content": { + "application/json": { + "schema": { + "type": "object", + "$ref": "#/components/schemas/UserDetailedNotMe" + } + } + } + }, + "400": { + "description": "Client error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "NO_SUCH_USER": { + "value": { + "error": { + "message": "No such user.", + "code": "NO_SUCH_USER", + "id": "7cc4f851-e2f1-4621-9633-ec9e1d00c01e" + } + } + }, + "BLOCKEE_IS_YOURSELF": { + "value": { + "error": { + "message": "Blockee is yourself.", + "code": "BLOCKEE_IS_YOURSELF", + "id": "88b19138-f28d-42c0-8499-6a31bbd0fdc6" + } + } + }, + "ALREADY_BLOCKING": { + "value": { + "error": { + "message": "You are already blocking that user.", + "code": "ALREADY_BLOCKING", + "id": "787fed64-acb9-464a-82eb-afbd745b9614" + } + } + }, + "INVALID_PARAM": { + "value": { + "error": { + "message": "Invalid param.", + "code": "INVALID_PARAM", + "id": "3d81ceae-475f-4600-b2a8-2bc116157532" + } + } + } + } + } + } + }, + "401": { + "description": "Authentication error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "CREDENTIAL_REQUIRED": { + "value": { + "error": { + "message": "Credential required.", + "code": "CREDENTIAL_REQUIRED", + "id": "1384574d-a912-4b81-8601-c7b1c4085df1" + } + } + } + } + } + } + }, + "403": { + "description": "Forbidden error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "AUTHENTICATION_FAILED": { + "value": { + "error": { + "message": "Authentication failed. Please ensure your token is correct.", + "code": "AUTHENTICATION_FAILED", + "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14" + } + } + } + } + } + } + }, + "418": { + "description": "I'm Ai", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "I_AM_AI": { + "value": { + "error": { + "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.", + "code": "I_AM_AI", + "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84" + } + } + } + } + } + } + }, + "429": { + "description": "To many requests", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "RATE_LIMIT_EXCEEDED": { + "value": { + "error": { + "message": "Rate limit exceeded. Please try again later.", + "code": "RATE_LIMIT_EXCEEDED", + "id": "d5826d14-3982-4d2e-8011-b9e9f02499ef" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "INTERNAL_ERROR": { + "value": { + "error": { + "message": "Internal error occurred. Please contact us if the error persists.", + "code": "INTERNAL_ERROR", + "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac" + } + } + } + } + } + } + } + } + } + }, + "/blocking-reaction-user/delete": { + "post": { + "operationId": "blocking-reaction-user___delete", + "summary": "blocking-reaction-user/delete", + "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:blocks*", + "externalDocs": { + "description": "Source code", + "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/blocking-reaction-user/delete.ts" + }, + "tags": [ + "account" + ], + "security": [ + { + "bearerAuth": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "format": "misskey:id" + } + }, + "required": [ + "userId" + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK (with results)", + "content": { + "application/json": { + "schema": { + "type": "object", + "$ref": "#/components/schemas/UserDetailedNotMe" + } + } + } + }, + "400": { + "description": "Client error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "NO_SUCH_USER": { + "value": { + "error": { + "message": "No such user.", + "code": "NO_SUCH_USER", + "id": "8621d8bf-c358-4303-a066-5ea78610eb3f" + } + } + }, + "BLOCKEE_IS_YOURSELF": { + "value": { + "error": { + "message": "Blockee is yourself.", + "code": "BLOCKEE_IS_YOURSELF", + "id": "06f6fac6-524b-473c-a354-e97a40ae6eac" + } + } + }, + "NOT_BLOCKING": { + "value": { + "error": { + "message": "You are not blocking that user.", + "code": "NOT_BLOCKING", + "id": "291b2efa-60c6-45c0-9f6a-045c8f9b02cd" + } + } + }, + "INVALID_PARAM": { + "value": { + "error": { + "message": "Invalid param.", + "code": "INVALID_PARAM", + "id": "3d81ceae-475f-4600-b2a8-2bc116157532" + } + } + } + } + } + } + }, + "401": { + "description": "Authentication error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "CREDENTIAL_REQUIRED": { + "value": { + "error": { + "message": "Credential required.", + "code": "CREDENTIAL_REQUIRED", + "id": "1384574d-a912-4b81-8601-c7b1c4085df1" + } + } + } + } + } + } + }, + "403": { + "description": "Forbidden error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "AUTHENTICATION_FAILED": { + "value": { + "error": { + "message": "Authentication failed. Please ensure your token is correct.", + "code": "AUTHENTICATION_FAILED", + "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14" + } + } + } + } + } + } + }, + "418": { + "description": "I'm Ai", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "I_AM_AI": { + "value": { + "error": { + "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.", + "code": "I_AM_AI", + "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84" + } + } + } + } + } + } + }, + "429": { + "description": "To many requests", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "RATE_LIMIT_EXCEEDED": { + "value": { + "error": { + "message": "Rate limit exceeded. Please try again later.", + "code": "RATE_LIMIT_EXCEEDED", + "id": "d5826d14-3982-4d2e-8011-b9e9f02499ef" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "INTERNAL_ERROR": { + "value": { + "error": { + "message": "Internal error occurred. Please contact us if the error persists.", + "code": "INTERNAL_ERROR", + "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac" + } + } + } + } + } + } + } + } + } + }, + "/blocking-reaction-user/list": { + "post": { + "operationId": "blocking-reaction-user___list", + "summary": "blocking-reaction-user/list", + "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *read:blocks*", + "externalDocs": { + "description": "Source code", + "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/blocking-reaction-user/list.ts" + }, + "tags": [ + "account" + ], + "security": [ + { + "bearerAuth": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "default": 30 + }, + "sinceId": { + "type": "string", + "format": "misskey:id" + }, + "untilId": { + "type": "string", + "format": "misskey:id" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK (with results)", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/components/schemas/Blocking" + } + } + } + } + }, + "400": { + "description": "Client error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "INVALID_PARAM": { + "value": { + "error": { + "message": "Invalid param.", + "code": "INVALID_PARAM", + "id": "3d81ceae-475f-4600-b2a8-2bc116157532" + } + } + } + } + } + } + }, + "401": { + "description": "Authentication error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "CREDENTIAL_REQUIRED": { + "value": { + "error": { + "message": "Credential required.", + "code": "CREDENTIAL_REQUIRED", + "id": "1384574d-a912-4b81-8601-c7b1c4085df1" + } + } + } + } + } + } + }, + "403": { + "description": "Forbidden error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "AUTHENTICATION_FAILED": { + "value": { + "error": { + "message": "Authentication failed. Please ensure your token is correct.", + "code": "AUTHENTICATION_FAILED", + "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14" + } + } + } + } + } + } + }, + "418": { + "description": "I'm Ai", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "I_AM_AI": { + "value": { + "error": { + "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.", + "code": "I_AM_AI", + "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "INTERNAL_ERROR": { + "value": { + "error": { + "message": "Internal error occurred. Please contact us if the error persists.", + "code": "INTERNAL_ERROR", + "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac" + } + } + } + } + } + } + } + } + } + }, "/channels/create": { "post": { "operationId": "channels___create", @@ -77751,6 +78622,12 @@ "isBlocked": { "type": "boolean" }, + "isReactionBlocking": { + "type": "boolean" + }, + "isReactionBlocked": { + "type": "boolean" + }, "isMuted": { "type": "boolean" }, @@ -80325,13 +81202,21 @@ "blockee": { "type": "object", "$ref": "#/components/schemas/UserDetailedNotMe" + }, + "blockType": { + "type": "string", + "enum": [ + "user", + "reaction" + ] } }, "required": [ "id", "createdAt", "blockeeId", - "blockee" + "blockee", + "blockType" ] }, "Hashtag": { ``` [Get diff files from Workflow Page](https://github.com/misskey-dev/misskey/actions/runs/11965504769)
sakuhanight commented 13 hours ago

PR元を間違えたためPR出し直します。