{"id":20172998,"url":"https://github.com/humansignal/label-studio-client-generator","last_synced_at":"2025-04-10T03:15:57.275Z","repository":{"id":241111401,"uuid":"804340207","full_name":"HumanSignal/label-studio-client-generator","owner":"HumanSignal","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-07T08:47:17.000Z","size":408,"stargazers_count":0,"open_issues_count":5,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-10T03:15:42.664Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"MDX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HumanSignal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-22T12:12:09.000Z","updated_at":"2025-03-31T19:44:34.000Z","dependencies_parsed_at":"2024-05-22T13:45:12.900Z","dependency_job_id":"2cf52933-92be-4b8f-8b69-3c6d97b75429","html_url":"https://github.com/HumanSignal/label-studio-client-generator","commit_stats":null,"previous_names":["humansignal/label-studio-client-generator"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HumanSignal%2Flabel-studio-client-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HumanSignal%2Flabel-studio-client-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HumanSignal%2Flabel-studio-client-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HumanSignal%2Flabel-studio-client-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HumanSignal","download_url":"https://codeload.github.com/HumanSignal/label-studio-client-generator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248148244,"owners_count":21055548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T01:33:05.893Z","updated_at":"2025-04-10T03:15:57.239Z","avatar_url":"https://github.com/HumanSignal.png","language":"MDX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# label-studio-client-generator\n\n## How to Contribute\n1. Create a new or modify [YAML OpenAPI spec](https://swagger.io/docs/specification/about/) for Label Studio endpoints.\n   For example, `./fern/openapi/resources/comments.yaml`:\n   ```yaml\n   paths:\n    /api/comments:\n      get: ...\n  \t  post: ...\n   components:\n    schemas:\n      Comments: ...\n    requestBodies:\n      api_comments_create: ...\n   ```\n    - `paths` : contain API path\n    - `components` (optional): components to reuse in `responses`\n    - `requestBodies` (optional): request bodies specification to reuse in requests’ `requestBody`\n2. Add [`$ref` references](https://swagger.io/docs/specification/using-ref/) in `overrides.yaml`:\n   ```yaml\n   paths:\n    /api/comments/:\n      get:\n        $ref: \"./resources/comments.yaml#/paths/~1api~1comments/get\"\n        x-fern-sdk-group-name: comments\n        x-fern-sdk-method-name: list\n        x-fern-audiences:\n          - public\n      post:\n        $ref: \"./resources/comments.yaml#/paths/~1api~1comments/post\"\n        x-fern-sdk-group-name: comments\n        x-fern-sdk-method-name: create\n        x-fern-audiences:\n          - public\n   ```\n   this will define the public methods called `client.comments.list()` and `client.comments.create()`. Read more about [Fern's OpenAPI extensions](https://buildwithfern.com/learn/api-definition/openapi/extensions)\n3. Create a PR in `label-studio-client-generator` using [Follow-Merge workflow](https://www.notion.so/214a17976c254100a4c261ec800cf3e8?pvs=21). For example, push a branch called `fb-PRJ-123-update-comments-api` \n4. Ensure PR is created in `label-studio-sdk` and Label Studio repo\n5. Update added endpoints in Django code.\n6. Add integration tests with newly added functions in LS: `https://github.com/HumanSignal/label-studio/tree/develop/label_studio/tests/sdk`\n   \n\n### Create openapi.yaml\n\n```\nswagger2openapi --yaml --outfile ./fern/openapi/openapi.yaml http://localhost:8080/docs/api?format=openapi\n```\n\n### Generate docs\n\n```\nfern generate --docs\n```\n\n#### Generate docs locally\n```\nfern docs dev\n```\n\n## Add custom docs\n\nGo to `fern/openapi/overrides.yaml` and modify fields keeping the structure as in `fern/openapi/openapi.yaml`. For example\n\n```\npaths:\n  /api/projects/:\n    post:\n      summary: List of Projects\n```\n--\u003e\n```\npaths:\n  /api/projects/:\n    post:\n      summary: A new title to be replaced\n    get:\n      description: and another update in description `/get` endpoint.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhumansignal%2Flabel-studio-client-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhumansignal%2Flabel-studio-client-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhumansignal%2Flabel-studio-client-generator/lists"}