{"id":20156100,"url":"https://github.com/openfun/open-badges-client","last_synced_at":"2026-02-01T05:33:03.518Z","repository":{"id":65667475,"uuid":"596935148","full_name":"openfun/open-badges-client","owner":"openfun","description":":1st_place_medal: A python library that provides a standard API to interact with Open Badge platforms.","archived":false,"fork":false,"pushed_at":"2025-12-02T18:27:25.000Z","size":56,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-12-03T01:44:24.452Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/openfun.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-02-03T08:55:30.000Z","updated_at":"2025-01-17T00:32:37.000Z","dependencies_parsed_at":"2023-10-17T01:48:46.883Z","dependency_job_id":"e15f8959-4030-4d71-aedc-3702e02dc0b8","html_url":"https://github.com/openfun/open-badges-client","commit_stats":{"total_commits":10,"total_committers":2,"mean_commits":5.0,"dds":0.5,"last_synced_commit":"faa696f1d3724173ae8bb0ba0d3a6798d8d02df2"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/openfun/open-badges-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fopen-badges-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fopen-badges-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fopen-badges-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fopen-badges-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openfun","download_url":"https://codeload.github.com/openfun/open-badges-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fopen-badges-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28970031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T04:44:20.970Z","status":"ssl_error","status_checked_at":"2026-02-01T04:44:19.994Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-13T23:37:34.499Z","updated_at":"2026-02-01T05:33:03.503Z","avatar_url":"https://github.com/openfun.png","language":"Python","readme":"# OBC, the Open Badges Client\n\n`obc` is a python library that provides a standard API to interact with Open\nBadge platforms.\n\n## Quick start guide\n\n### Install OBC\n\n`obc` is distributed as a python package. It can be installed using `pip` (or\nany other package manager) from PyPI:\n\n```\n$ pip install obc\n```\n\n### Use providers in your application\n\nLet say you want to issue an existing Open Badge Factory badge for a list of\nrecipients, an example implementation would look like:\n\n```python\nfrom obc.providers.obf import BadgeIssue, BadgeQuery, OBF\n\n# Configure Open Badge Factory provider using your client identifier and secret\n# key\nobf = OBF(client_id=\"my_obf_client_id\", client_secret=\"super_secret\")\n\n# Get the badge with the \"badge_id\" identifier\nbadge = await anext(obf.badges.read(query=BadgeQuery(id=\"badge_id\")))\n\n# We want to issue a badge for the following recipients\nissue = BadgeIssue(\n    recipient=[\n      \"jane@example.org\",\n      \"tarzan@example.org\"\n    ]\n)\n\nissue = await obf.badges.issue(badge, issue)\n```\n\nMore details will follow in the upcoming documentation.\n\n### Hack on the project\n\nIf you want to start contributing on the project, use the `bootstrap` Makefile\ntarget to build the Docker development image:\n\n```\n$ make bootstrap\n```\n\nTo run tests, type:\n\n```\n$ make test\n```\n\nAnd to lint sources, there is also a command for that:\n\n```\n$ make lint\n```\n\nIf you had new dependencies to the project, you will have to rebuild the Docker\nimage (and the development environment):\n\n```\n$ make build \u0026\u0026 make dev\n```\n\nYou can explore all other target using:\n\n```\n$ make help\n```\n\n## Contributing\n\nThis project is intended to be community-driven, so please, do not hesitate to\nget in touch if you have any question related to our implementation or design\ndecisions.\n\nWe try to raise our code quality standards and expect contributors to follow\nthe recommandations from our\n[handbook](https://openfun.gitbooks.io/handbook/content).\n\n## License\n\nThis work is released under the MIT License (see [LICENSE](./LICENSE)).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfun%2Fopen-badges-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenfun%2Fopen-badges-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfun%2Fopen-badges-client/lists"}